public class Parser
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private boolean |
automaticCollections
|
private int |
binsLevels
See
getBinsLevels() . |
private java.lang.String |
calculationMode
See
getCalculationMode() . |
private java.lang.String |
calculationType
See
getCalculationType() . |
private int |
cartSizeX
See
getCartSizeX() . |
private int |
cartSizeY
See
getCartSizeY() . |
private int |
cartSizeZ
See
getCartSizeZ() . |
private java.lang.String |
catalysisAdsorption
|
private java.lang.String |
catalysisDesorption
|
private java.lang.String |
catalysisDiffusion
|
private boolean |
catalysisO2Dissociation
|
private java.lang.String |
catalysisReaction
|
private java.lang.String |
catalysisStart
See
#calalysisStart() |
private boolean[] |
catalysisTree
Attribute to control the use of trees for catalysis.
|
private double |
coverage
See
getCoverage() . |
private double |
depositionFlux
See
getDepositionFlux() . |
private boolean |
devita
See
useDevita() |
private boolean |
doIslandDiffusion
See
() . |
private boolean |
doMultiAtomDiffusion
See
() . |
private double |
endTime
See
getEndTime() . |
private org.json.JSONArray |
evaluator |
private EvaluatorType |
evaluatorType
To have the possibility to choose between different evaluators.
|
private java.lang.String |
evolutionaryAlgorithm
Can be original or dcma.
|
private java.lang.String |
evolutionarySearchType
Search for "rates" or "energies".
|
private boolean |
expDistribution
Chooses between exponential distribution of the random genes (true) or linear distribution
(false).
|
private int |
extraLevels
See
getExtraLevels() . |
private boolean |
fixDiffusion
Decides if diffusion must be fixed.
|
private boolean |
forceNucleation
|
private double |
goMultiplier
Gets O desorption rate multiplied by a factor for plotting resolution problems.
|
private java.lang.String |
hierarchyEvaluator
If a hierarchy evaluator has been chosen, select the type of hierarchy evaluator.
|
private boolean |
justCentralFlake
See
justCentralFlake() . |
private java.lang.String |
listType
See
getListType() . |
private double |
maxValueGene
Maximum possible value that a gene can have.
|
private int |
millerX |
private int |
millerY |
private int |
millerZ |
private double |
minValueGene
Minimum possible value that a gene can have.
|
private boolean |
multithreaded |
private int |
numberOfCo2
See
getNumberOfCo2() . |
private int |
numberOfSimulations
|
private long |
numberOfSteps
See
getNumberOfSteps() . |
private long |
numericFormatCode
This numbers reflect the power of two and gives the chance to choose between inclusively among
TXT(0), MKO(1), PNG(2), EXTRA(3), AE(4), XYZ(5), EXTRA2(6), CAT(7), AETOTAL(8) and SVG(9).
|
private long |
numericStatusCode
This numbers reflect the power of two and gives the chance to choose between inclusively among
PSD(0), TIME(1) and HIERARCHY(2).
|
private int |
offspringSize |
private boolean |
outputData
See
outputData() and getOutputFormats() . |
private org.json.JSONArray |
outputDataFormat |
private int |
outputEvery
See {@link #getOutputEvery()].
|
private OutputType |
outputType
See
getOutputFormats() . |
private boolean |
parallelEvaluator
Can be serial or threaded.
|
private java.lang.String |
perimeterType
See
getPerimeterType() . |
private boolean |
periodicSingleFlake
|
private int |
populationReplacement |
private int |
populationSize |
private double |
pressureCO
See
getPressureO2() and getPressureCO() . |
private double |
pressureO2 |
private boolean |
printAllIterations
|
private boolean |
printToImage
See
printToImage() . |
private boolean |
psd
See
doPsd() . |
private double |
psdExtend
See
getPsdExtend() . |
private double |
psdScale
See
getPsdScale() . |
private boolean |
psdSymmetry
See
isPsdSymmetric() . |
private boolean |
randomSeed
See
randomSeed() . |
private java.lang.String |
ratesLibrary
See
getRatesLibrary() . |
private boolean |
readReference |
private int |
repetitions |
private Restart |
restart
Restart object to read "parameters" file.
|
private double |
stopError |
private java.lang.String |
surfaceType
See
getSurfaceType() . |
private float |
temperature
See
getTemperature() . |
private int |
totalIterations
See
getTotalIterations() . |
private boolean |
useMaxPerimeter
See
useMaxPerimeter() . |
private boolean |
visualise
See
visualise() . |
private boolean |
withGui
See
withGui() . |
Constructor and Description |
---|
Parser()
Constructor
|
Modifier and Type | Method and Description |
---|---|
boolean |
areCollectionsAutomatic()
Allow to change between tree and array collections, when the code decides to do so.
|
java.lang.String |
catalysisStart()
Starts a catalysis run given coverage.
|
private void |
computeTree() |
boolean |
doCatalysisAdsorption()
Adsorb atoms during catalysis simulation.
|
boolean |
doCatalysisDesorption()
Desorb atoms during catalysis simulation.
|
boolean |
doCatalysisDiffusion()
Diffuse atom during catalysis simulation.
|
boolean |
doCatalysisO2Dissociation()
Dissociates O2 atoms during catalysis simulation
Input "parameters" variable:
catalysisO2Dissociation . |
boolean |
doCatalysisReaction()
Allow to react atoms during catalysis simulation.
|
boolean |
doIslandDiffusion()
In concerted calculation mode, allow to island to move.
|
boolean |
doMultiAtomDiffusion()
In concerted calculation mode, allow to atoms on the edge to move.
|
boolean |
doPrintAllIterations()
Print all iterations during catalysis simulation.
|
boolean |
doPsd()
Selects to do a PSD analysis of the simulated system.
|
boolean |
forceNucleation()
If two terraces are together freeze them, in multi-flake
simulation mode.
|
int |
getBinsLevels()
Selects the number of bin levels.
|
java.lang.String |
getCalculationMode()
Selects the type of system to be calculated.
|
java.lang.String |
getCalculationType()
Morphokinetics has two main calculation modes: one called batch, for arbitrarily chosen input
parameters, and the other called evolutionary, which tries to find the best input parameters
for a target system.
|
int |
getCartSizeX()
Selects the Cartesian size in X direction.
|
int |
getCartSizeY()
Selects the Cartesian size in Y direction.
|
int |
getCartSizeZ()
Selects the Cartesian size in Z direction.
|
double |
getCoverage()
Returns the maximum coverage until a simulation is allowed to grow.
|
double |
getDepositionFlux()
Number of atoms that is coming per second and per area.
|
double |
getEndTime()
Returns the maximum simulation time that each run has to do or -1 if there is no time limit.
|
java.util.EnumSet<EvaluatorType.evaluatorFlag> |
getEvaluatorTypes()
To have the possibility to choose between different evaluators in genetic algorithm runs.
|
java.lang.String |
getEvolutionaryAlgorithm() |
java.lang.String |
getEvolutionarySearchType() |
int |
getExtraLevels() |
double |
getGOMultiplier()
GO multiplier for plotting resolution problem solving.
|
int |
getHexaSizeI()
Selects the lattice size in I direction.
|
int |
getHexaSizeJ()
Selects the lattice size in J direction.
|
java.lang.String |
getHierarchyEvaluator()
If a hierarchy evaluator has been chosen, select the type of hierarchy evaluator.
|
java.lang.String |
getListType()
Selects the internal list type to be used between linear and binned.
|
double |
getMaxValueGene()
For evolutionary algorithm, maximum possible value of a gene.
|
int |
getMillerX() |
int |
getMillerY() |
int |
getMillerZ() |
double |
getMinValueGene()
For evolutionary algorithm, minimum possible value of a gene.
|
int |
getNumberOfCo2()
Selects the number of CO2 molecules that will be created at most. -1 by default, which means that
it will run until another criteria is reached.
|
int |
getNumberOfSimulations()
Selects the number of simulations that has to be done with the same parameters.
|
long |
getNumberOfSteps()
Selects the number of steps that each simulation will at most. -1 by default, which means that
it will run until another criteria is reached.
|
int |
getOffspringSize() |
int |
getOutputEvery()
How frequently should be printed extra file of catalysis.
|
java.util.EnumSet<OutputType.formatFlag> |
getOutputFormats()
To have the possibility to output to different file formats.
|
short |
getPerimeterType()
Input "parameters" variable:
perimeterType . |
int |
getPopulationReplacement() |
int |
getPopulationSize() |
double |
getPressureCO()
Partial pressure for CO in atm.
|
double |
getPressureO2()
Partial pressure for O2 in atm.
|
(package private) double |
getPsdExtend()
Factor which has to be added as empty area to the surface.
|
double |
getPsdScale()
Factor with which has to be multiplied the size of the surface to calculate the PSD.
|
java.lang.String |
getRatesLibrary()
Selects which rates are used for the simulation.
|
boolean |
getReadReference()
Chooses between to read a reference PSD or doing an initial run to be the objective for the
Evolutionary run
|
int |
getRepetitions()
Number of repetitions or evaluations that a single Gene has to do.
|
double |
getStopError()
For evolutionary algorithm run mode target minimum error
|
java.lang.String |
getSurfaceType()
The options below are for "Ag" calculationMode (see
getCalculationMode() ). |
float |
getTemperature()
Simulation temperature.
|
int |
getTotalIterations()
Total number of iterations that the evolutionary algorithm has to do.
|
boolean |
isDiffusionFixed()
Decides if diffusion must be fixed.
|
boolean |
isEnergySearch() |
boolean |
isEvaluatorParallel() |
boolean |
isExpDistribution()
Chooses between exponential distribution of the random genes (true) or linear distribution (false)
|
boolean |
isMultithreaded() |
boolean |
isPeriodicSingleFlake()
Returns if single-flake simulation is periodic.
|
boolean |
isPsdSymmetric()
Returns if the PSD (
doPsd() ) has to be symmetrised. |
boolean |
justCentralFlake()
Selects to run a single flake simulation (faster and usually with Devita acceleration) or not.
|
boolean |
outputData()
Chooses to output data or not.
|
void |
print()
Prints all the parameters; either read from "parameter" file or the default value.
|
boolean |
printToImage()
Selects to print the simulated system (the canvas of the frame) to a PNG file.
|
boolean |
randomSeed()
Selects to use randomSeed, based on the current time in ms.
|
int |
readFile(java.lang.String fileName)
Read the execution parameters from the given file.
|
void |
setBinsLevels(int binsLevels) |
void |
setCalculationMode(java.lang.String mode) |
void |
setCartSizeX(int sizeX) |
void |
setCartSizeY(int sizeY) |
void |
setCartSizeZ(int sizeZ) |
void |
setEvolutionaryAlgorithm(java.lang.String name) |
void |
setExtraLevels(int extraLevels) |
void |
setListType(java.lang.String listType)
Sets the internal list type to be used.
|
void |
setMillerX(int sizeX) |
void |
setMillerY(int sizeY) |
void |
setMillerZ(int sizeZ) |
void |
setNumberOfSimulations(int numberOfSimulations) |
void |
setPopulation(int populationSize) |
void |
setTemperature(float temperature) |
boolean |
useCatalysisTree(byte process)
Instead of writing "true", one can use the word "tree" to use a tree to store catalysis
processes.
|
boolean |
useDevita()
Devita accelerator makes execution much faster, it may change results a bit.
|
boolean |
useMaxPerimeter()
In single flake simulation mode (
justCentralFlake() ) selects the initial size of the
simulation area. |
boolean |
visualise()
If GUI is enabled (see
withGui() ), selects to visualise the GUI. |
boolean |
withGui()
Selects to enable all the GUI with its windows.
|
private boolean[] catalysisTree
private final Restart restart
private java.lang.String calculationType
getCalculationType()
.private java.lang.String ratesLibrary
getRatesLibrary()
.private java.lang.String listType
getListType()
.private java.lang.String perimeterType
getPerimeterType()
.private java.lang.String calculationMode
getCalculationMode()
.private java.lang.String surfaceType
getSurfaceType()
.private float temperature
getTemperature()
.private double pressureCO
getPressureO2()
and getPressureCO()
.private double pressureO2
private double depositionFlux
getDepositionFlux()
.private double endTime
getEndTime()
.private double coverage
getCoverage()
.private double psdScale
getPsdScale()
.private double psdExtend
getPsdExtend()
.private int numberOfSimulations
private long numberOfSteps
getNumberOfSteps()
.private int numberOfCo2
getNumberOfCo2()
.private int cartSizeX
getCartSizeX()
.private int cartSizeY
getCartSizeY()
.private int cartSizeZ
getCartSizeZ()
.private int millerX
private int millerY
private int millerZ
private int binsLevels
getBinsLevels()
.private int extraLevels
getExtraLevels()
.private boolean multithreaded
private boolean visualise
visualise()
.private boolean withGui
withGui()
.private boolean justCentralFlake
justCentralFlake()
.private boolean printToImage
printToImage()
.private boolean psd
doPsd()
.private boolean psdSymmetry
isPsdSymmetric()
.private boolean periodicSingleFlake
private boolean outputData
outputData()
and getOutputFormats()
.private boolean randomSeed
randomSeed()
.private boolean useMaxPerimeter
useMaxPerimeter()
.private boolean forceNucleation
private boolean devita
useDevita()
private java.lang.String catalysisAdsorption
private java.lang.String catalysisDesorption
private java.lang.String catalysisReaction
private java.lang.String catalysisDiffusion
private java.lang.String catalysisStart
#calalysisStart()
private boolean printAllIterations
private boolean catalysisO2Dissociation
private boolean automaticCollections
private boolean doIslandDiffusion
()
.private boolean doMultiAtomDiffusion
()
.private org.json.JSONArray outputDataFormat
private final OutputType outputType
getOutputFormats()
.private long numericFormatCode
private int outputEvery
private java.lang.String evolutionaryAlgorithm
private boolean parallelEvaluator
private int populationSize
private int offspringSize
private int populationReplacement
private int totalIterations
getTotalIterations()
.private int repetitions
private boolean readReference
private double stopError
private double minValueGene
private double maxValueGene
private double goMultiplier
private boolean expDistribution
private final EvaluatorType evaluatorType
private long numericStatusCode
private org.json.JSONArray evaluator
private java.lang.String hierarchyEvaluator
private java.lang.String evolutionarySearchType
private boolean fixDiffusion
public int readFile(java.lang.String fileName) throws org.json.JSONException
fileName
- org.json.JSONException
public void print() throws org.json.JSONException
org.json.JSONException
public java.lang.String getCalculationType()
calculationType
.public java.lang.String getRatesLibrary()
ratesLibrary
.public java.lang.String getListType()
listType
.public void setListType(java.lang.String listType)
listType
- linear or binned.public short getPerimeterType()
perimeterType
.public void setTemperature(float temperature)
public float getTemperature()
temperature
.public double getPressureO2()
public double getGOMultiplier()
public double getPressureCO()
public double getDepositionFlux()
depositionFlux
.IRates.getDepositionRatePerSite()
public double getEndTime()
endTime
.public double getCoverage()
coverage
.public double getPsdScale()
'H
:H ;HH;
HH. #HH
HH`#HHH` #HHHHH
.HHHHHH ,HHHHH
#HHHH;H;` #H'`` HHH`
HHHHH#H` HHHH` #HHH#HHHHH
:#HHHHHHH ` :H;;#H ;:`:#HHHHH;:
#HHHHH :HH; :HHH :HHHHHHHHHHH;
HHHHHHHH` :#H; HHHHHH;,HHHH;
#HHHHHHHHHHH #HHHHHH#H HHHH`
:HHHHHHHHHHHHHHHHHH` :H:`
:HH` HHHHHHH HHHHHH
HH` :HHH::HHH:`#HHHH:`
HHHHHHH`#HHHH #HHH`
HHH;#HH; HHH;
HHHHHH
#HHHH`
:#'` :HH'
:HHH#HHHH;
;HHHHHHH`
`.+HHHHH`
to this smaller one:
H H.
`HHH HHH
;HHH: H'; ;H:
,HHH;;.H+; #`HHH,
+HHH +H .HH';HH'
+HHHHHHH#H ..
+ ,H'+# HH+
HHHH`+.
H+#
;HHHH
;HH
double getPsdExtend()
:::::::::::::::::::::::::
:::::::::::::::::::::::::
::::@::@.::::::::::::::::
::::`@@@:::@@@:::::::::::
:::::;@@@:::@';::::::;@::
::::::,@@@;;.@+;:#`@@@,::
::::::::+@@@ +@:.@@';@@':
:::::::::+@@@@@@@#@:::..:
:::::::::+ ,@'+# @@+:::::
::::::::::@@@@,+.::::::::
:::::::::::@+#:::::::::::
::::::::;@@@@::::::::::::
::::::::::;@@::::::::::::
:::::::::::::::::::::::::
:::::::::::::::::::::::::
:::::::::::::::::::::::::
and this filled one:
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::@::::::::::::::::::::::::::::::
::::::::::::::::,@:;@:::::::::::::::::::::::::::::
:::::::::::::::::'@@.:::+@::::::::,.::::::::::::::
:::::::::::::::::::@@@@::@+@:::@@@@@::::::::::::::
::::::::::::::::::::'@@@+ @.:@@@@'@.::::::::::::::
::::::::::::::::::::::@@@@@;@@@:::#@::::::::::::::
:::::::::::::::::::::.@ @@@@ @@@::::::::::::::::::
::::::::::::::::::::::#@@@:@@::;::::::::::::::::::
::::::::::::::::::::::::@@::::::::::::::::::::::::
::::::::::::::::::::.@+@@:::::::::::::::::::::::::
:::::::::::::::::::::'@@@,::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
kineticMonteCarlo.kmcCore.growth.AbstractGrowthKmc#increaseEmptyArea(float[][], double)
public void setNumberOfSimulations(int numberOfSimulations)
public int getNumberOfSimulations()
numberOfSimulations
.public long getNumberOfSteps()
numberOfSteps
.public int getNumberOfCo2()
numberOfCo2
.public int getCartSizeX()
cartSizeX
.public void setCartSizeX(int sizeX)
public int getCartSizeY()
cartSizeY
.public void setCartSizeY(int sizeY)
public int getCartSizeZ()
cartSizeZ
.public void setCartSizeZ(int sizeZ)
public int getMillerX()
public void setMillerX(int sizeX)
public int getMillerY()
public void setMillerY(int sizeY)
public int getMillerZ()
public void setMillerZ(int sizeZ)
public int getHexaSizeI()
public int getHexaSizeJ()
public int getBinsLevels()
binsLevels
.public void setBinsLevels(int binsLevels)
public int getExtraLevels()
public void setExtraLevels(int extraLevels)
public boolean isMultithreaded()
public boolean visualise()
withGui()
), selects to visualise the GUI.
Input "parameters" variable: visualise
.public boolean justCentralFlake()
justCentralFlake
.public boolean withGui()
withGui
.
See also visualise()
to also show the GUI.public boolean printToImage()
withGui()
).
Input "parameters" variable: printToImage
.public java.lang.String getCalculationMode()
getRatesLibrary()
.
The temperature (getTemperature()
) has to be between 120 and 180 for Ag, between 120
and 220 for basic and 1273 for graphene.
Input "parameters" variable: calculationMode
.public java.lang.String getSurfaceType()
getCalculationMode()
). Instead of
using this calculation mode, it is recommended to use "AgUc" calculation mode, which has the
correct periodicity and shape.
Can be "cartesian" or "periodic". If "cartesian" is chosen, the surface (islands) will have the
same shape as in the GUI, but the periodicity will not be correct in top-bottom (there is a
shift of 60º). If "periodic" is chosen, the shape will be shifted by 60º and periodicity will
be correct in 2D. This option will change the PSD; "cartesian" will have vertical and
horizontal symmetry and in "periodic" the symmetry will be shifted by 60º.
This variable can be also used for the PSD utility (see getCalculationType()
) to
choose between to do the tents for the surfaces or not.public boolean doPsd()
getNumberOfSimulations()
), the PSD will be smoother and better defined. I recommend to
use getPsdScale()
== 1 and getPsdExtend()
== 1.
Input "parameters" variable: doPsd
.public boolean isPsdSymmetric()
doPsd()
) has to be symmetrised. If the periodicity is correctly
implemented, the PSD tents to be symmetric circularly. If this option is enabled, helps to that
symmetry. Or, the other way around, one can obtain properly defined PSD with less repetitions
(getNumberOfSimulations()
)
Input "parameters" variable: isPsdSymmetric
.public boolean isPeriodicSingleFlake()
periodicSingleFlake
.public boolean outputData()
outputData
. It has to be used in combination with
getOutputFormats()
to chose the proper format for the output.public java.util.EnumSet<OutputType.formatFlag> getOutputFormats()
outputDataFormat
.public int getOutputEvery()
public boolean randomSeed()
randomSeed
.public boolean useMaxPerimeter()
justCentralFlake()
) selects the initial size of the
simulation area. If this option is enabled, biggest possible area is used since the beginning.
Input "parameters" variable: useMaxPerimeter
.public boolean forceNucleation()
forceNucleation
.public boolean useDevita()
devita
.public boolean doCatalysisAdsorption()
catalysisAdsorption
.public boolean doCatalysisDesorption()
catalysisDesorption
.public boolean doPrintAllIterations()
printAllIterations
.public boolean doCatalysisReaction()
catalysisReaction
.public boolean doCatalysisDiffusion()
catalysisDiffusion
.private void computeTree()
public boolean useCatalysisTree(byte process)
process
- public java.lang.String catalysisStart()
catalysisStart
.public boolean doCatalysisO2Dissociation()
catalysisO2Dissociation
.public boolean areCollectionsAutomatic()
automaticCollections
.public boolean doIslandDiffusion()
doIslandDiffusion
.public boolean doMultiAtomDiffusion()
doMultiAtomDiffusion
.public java.lang.String getEvolutionaryAlgorithm()
public boolean isEvaluatorParallel()
public int getPopulationSize()
public int getOffspringSize()
public int getPopulationReplacement()
public int getTotalIterations()
public int getRepetitions()
public boolean getReadReference()
public void setCalculationMode(java.lang.String mode)
public void setPopulation(int populationSize)
public void setEvolutionaryAlgorithm(java.lang.String name)
public double getStopError()
public double getMinValueGene()
public double getMaxValueGene()
public boolean isExpDistribution()
public java.util.EnumSet<EvaluatorType.evaluatorFlag> getEvaluatorTypes()
public java.lang.String getHierarchyEvaluator()
public java.lang.String getEvolutionarySearchType()
public boolean isEnergySearch()
public boolean isDiffusionFixed()