Genetic algorithm optimiser for Mulassis
The total ionising, displacement damage, and radiological dose
environments of Jupiter are strongly affected by the trapped electron
population. High atomic number (high-Z) materials are more effective at
shielding electrons, as these particles undergo greater multiple
scattering than in lower-Z materials. However, bremsstrahlung photon
production increases with increasing Z number. It is possible to use
combinations of low- and high-Z materials so that the electrons are
first slowed in a low-Z layer with minimal production of bremsstrahlung,
and then a high-Z material layer which stops the final low-energy
electrons, while also providing better attenuation for any X-rays [3].
Per unit areal mass, such graded shields can provide over an order of
magnitude improvement in TID attenuation compared to a shield comprising
a single material. However, determination of the optimal composition of
such shields is non-trivial, requiring numerous detailed simulations.
The search for the optimum shield can be automated using a Genetic
Algorithm (GA).
A GA mimics real life by applying a process of natural selection to
select designs which are better adapted to meet specific criteria,
solving problems by specifying "genes", each of which are associated
with various parameters of the simulation.
This tool combines the detailed Geant4-based [4], multi-layered
shielding tool Mulassis with a genetic algorithm package based on
D.L. Carroll's GA Fortran driver [5] to optimise shielding against space
radiation.
In this application, the set of genes which form the chromosomes consists
of:
the number of different layers in the shield,
the combination of shielding materials, and
the density and thickness of each layer.
An initial population of chromosomes is generated randomly and Mulassis
is used to determine the efficiency of each candidate shield. The
population is refined progressively by selecting via a "fitness
function" the better performing shields and applying "gene-splicing" and
mutation to form new chromosomes.
The generic GA process is as follows:
Define a population with various (random) values for the
characteristics to optimise.
Define the characteristics to optimise (number of layers, materials
and layer thickness) as chromosomes.
Define the reproduction of the population (i.e. how the chromosomes
will cross-over, mutate).
Select groups of two chromosomes, based on predefined criteria for
the most appropriate candidates for reproduction.
Define how the population will evolve (children replacing the
parents, or random death, or elitist death).
Define a criteria or formula to assess the fitness of the members of
the population. This is generally done after a simulation analysis.
In this particular application Mulassis is invoked to estimate Total
Ionising Dose and NIEL values behind the candidate shield.
Define the rate of random mutation to allow the system to explore solutions not belonging to or not a combination of the parent genome.
Fitness function
The radiation dose measured in a thin layer of silicon behind the shield,
together with the total mass and thickness of the shield, are used to
formulate a ‘fitness function’ which assigns a value to each shield that
the GA can use to select the best candidates.
The GA assesses the fitness of an individual (shield candidate) in terms
of a single parameter that represents a parametrised function of the
total dose and NIEL behind the shield and the mass (in terms of areal
density) and thickness of the shield. The radiation dose, mass and
thickness, are characteristics of the material composition of the
shield’s component layers.
The space environment relevant to a particular mission (e.g. electron
and proton spectra) is generated with the respective models in SPENVIS.
The following parametrised boundary conditions will be applied for any
given case study:
The maximum allowed total ionising dose (in rad).
The maximum allowed NIEL dose (in rad).
The maximum mass allowed will be defined as the equivalent mass of a given thickness of Aluminium (in mm).
The maximum total thickness of the shield in mm.
Candidate shields that exceed any of these limits will be declared
off-spec and assigned to the weak part of the population. In particular,
checks for compliance with the total mass and thickness boundary
conditions are encapsulated within the software module performing the
test, before execution of the Mulassis simulation. The radiation dose
calculation is not performed if a candidate is already declared off-spec
by failing any of the other boundary conditions.
The default function defining the fitness parameter f is of the
(linear) form:
f = A x Dose + B x NIEL +
C x ArealDensity + D x Thickness
with units of rad, rad, g cm
-2 and mm for each term,
respectively. The interpretation of this figure of merit
f , is
that the lower its value the fitter the candidate. As the GA used looks
for a maximum rather than a minimum, the fitness value
F output
by the GA programme is
F = 1 -
f .
It is possible to change the weight of the four contributions to the
value of F , therefore "constants" A , B , C
and D are defined as:
A = w d / maxDose
B = w n / maxNIEL
B = w m / maxArealDensity
B = w t / maxThickness
The default values for the weighting factors
w are set equal to
1/4, but these can be modified by the user to suit each particular
application, depending on which is the stronger constraint.
A variation on the default fitness function is to square all terms. This
results in higher fitness values more quickly and can lead to faster
convergence:
Again, F = 1 - f and
A = w d / maxDose 2
B = w n / maxNIEL 2
B = w m / maxArealDensity 2
B = w t / maxThickness 2
Shield configuration
The user can select:
shield geometry: slab or spherical—this corresponds to the two
choices available within Mulassis;
materials: the user can compile a list of materials and select which
ones should be considered/excluded in a GA run;
number of layers;
minimum layer thickness:
expressed in microns of an equivalent Aluminium layer (same areal mass
density);
maximum layer thickness: expressed in microns of an equivalent
Aluminium layer (same areal mass density);
number of range divisions: number layer thickness values between the
minimum and maximum thicknesses.
Genetic algorithm parameters
The user can select:
the number of individuals in a population;
the number of generations;
use the micro GA option, or not: the micro GA option overrides
certain parameters, e.g. creep and jump mutation are set to 0 (see [1]
for further detail);
the number of children per parent pair (1 or 2);
the probability of creep mutation: 0.0–1.0;
the probability of cross-over: 0.0–1.0;
the probability of jump mutation: 0.0–1.0.
Environment specification
Using the check boxes, the user can specify which environment spectra
should be used for the Mulassis simulations. If no environment spectrum
are available, the respective check box is disabled and an environment
model should be run first. The user can select:
the number of trapped electrons, trapped protons and solar protons.
For each species, if selected, Mulassis will be run with the particle
spectrum generated by SPENVIS for the specified number of particles;
print modulo: the number of particles in the simulation after which
results are written to output file.
Processing flow
The processing flow of the GA optimiser for Mulassis is implemented in
practice as follows:
Input generation by the user.
Use SPENVIS to define the mission and obtain the relevant particle
spectra or to upload it.
Use SPENVIS to generate the required input files to select the
materials list and the GA Mulassis optimiser options including shield
characteristics, GA parameters, fitness function criteria and Mulassis
parameters.
Alternatively to using SPENVIS, the required input files can be
edited locally by the user (e.g. to run the GA optimiser as a
standalone tool).
Execution of the GA driver programme.
Set up and initialisation.
The user input is read from the namelist file
userSetup.inp
, which is generated by SPENVIS.
The number of chromosomes required to specify a shield is
established according to user selection of the number of materials, the
number of layers and the range of layer thickness.
The materials information is read from the materials.inp
file, which is also generated by SPENVIS.
The population of the first generation of ‘individuals’ (i.e.
candidate shields) is randomly established.
The layer thickness is assigned in units of g cm-2
by a random engine from a set a discrete values on a logarithmic scale,
within the range specified by the user in terms of minimum and maximum
Al equivalent thickness expressed in μm. In this way, the actual
linear thickness of a layer is material dependent.
Candidate shield specification and evaluation, looping over the
selected number of generations.
For every individual member (candidate shield) of a generation the
total areal density and linear thickness is calculated by summing over
the various layers.
Candidate shields which comply with the total mass equivalent and
overall thickness boundary conditions are evaluated for radiation levels
behind the shield, i.e. TID/NIEL in rads.
A shield geometry is generated and written to an output file
shieldGeometry.g4mac
in a format which is compliant with
the requirements of a Geant4 Mulassis input macro file. This file
includes analysis options (TID and NIEL) and control and execute
commands to trigger separate runs for the selected particle types. The
size of the run is independently set by the user for each type of
particle.
A Mulassis run is executed via a system call with input macro file
shieldGeometry.g4mac
. This produces separate output files
for each type of particle selected by the user (trapped electrons,
trapped protons and/or solar protons).
The main GA programme regains control and reads the TID and NIEL
values resulting from the Mulassis run(s) and co-adds the various
contributions. These are checked against the values entered by the user
as the maximum TID and NIEL allowed behind the shield.
If all the boundary conditions are satisfied, i.e. the candidate
shield has total areal density and linear thickness within range
specified by the user, and performs within the user specifications for
radiation levels, the shield is ‘graded’ according to a fitness function
that assigns a numerical value to each qualifying individual.
The fitness values of a population are then used to produce the next
generation according to the GA options in use.
The results are written to file ga.out
and the current
status (last generation computed ) to file ga.restart
to
enable continuation of the calculation over further generations (this
option is not available in SPENVIS).
The calculation stops when the specified number of generations has
been reached.
The logical and processing flow of the application are represented in the
diagrams below.
Macro files and outputs
Pressing the
button will run an intermediate
application that generates the necessary input files for GARSO. A new
page will appear where the user can download the environment spectra in
Geant4 GPS format, the material list and the macro file for GARSO. With
these inputs, a local run of GARSO can be performed, as running the
application on the SPENVIS server will likely result in a time out due to
the limitations on CPU time.
Pressing the
button will start the main calculation
and bring up the results page. The main GARSO application produces
only one output file: ga.out
.
Output files generated by GARSO
File name
Description
ga.out
Main output file
materials.inp
List of shield materials
userSetup.inp
Namelist parameters for the main application
specElectron.g4mac
Trapped electron spectrum in Geant4 GPS macro format
specProton.g4mac
Trapped proton spectrum in Geant4 GPS macro format
specsolarproton.g4mac
Solar proton spectrum in Geant4 GPS macro format