Model parameter¶
Explanation of parameters¶
MoCSI can be controlled fully through setting parameters in the ini files present in the /ini_files/ folder of the code. There are two types of ini files: core ini files and module ini files.
Only two of the ini files in that folder belong to the core, the default.ini and the run.ini. The default.ini must always be present, as it contains all the parameters that need to be set for the model to run with their default parameters. To change these default values, you should overwrite them with the run.ini as all values within that ini file can be used to overwrite the default values. It is advised to not change any value within the default.ini and only work with the run.ini.
Each module ini files belongs to the corresponding module with which it shares a name. These ini files can only be used to change behavior within the correspondig module. Despite there being parameters which some modules share, each have to be set within their own ini file.
List of available parameters¶
The following is a list of all parameters for all ini files:
Core ini file¶
default.ini
Time Parameters:
time_delta- The time step length in seconds (s).time_max- The total simulation time in seconds (s).
Inner iteration options:
inner_iterations- The maximum number of internal iterations ran to achieve convergence for non-linear models (if not achieved in the specified number, a warning will be passed to the user).epsilon_inner_iterations- The allowed difference between to inner iteration steps to be considered converged in Kelvin (K). Once \(T_{inner, i+1} - T_{inner, i} \leq \epsilon\), it will accept the time step.
Grid options:
spatial_dimension- Only"1D"currently implemented. If set to"1D"andused_shape_file = true, will look for a shape model to load undershape_model_path.cell_length- The length of each Finite Element Method element when using a uniform grid. Is used during uniform grid creation together withnumerical_layers. (Either this ormax_depthneeds to be present together withnumerical_layers.)numerical_layers- The number of temperature nodes (not elements) within each facet.max_depth- The maximum depth of a facet domain in meters (m). Is used during uniform grid creation together withnumerical_layers. (Either this orcell_lengthneeds to be present together withnumerical_layers).grid- A path to a file containing the node depths to be used for the grid creation. Can be any form of non-uniform grid.
Initial temperature
initial_temperature- The initialization temperature of the model in Kelvin (K).
Ini folder path
ini_folder_path- The (relative) path where the model should look for the rest of the ini files. Usually it is best practice to have all at the same place, as it looks for the default ini file in"../ini_files/".
Shape model
use_shape_file- Whether a shape file should be loaded or not.shape_model_option- Currently, only “1D” is implemented. Whenuse_shape_fileis set to true, will run a 1D heat transfer equation simulation on each facet of the shape model. Higher dimensions will be supported in the future.shape_model_path- A path to a file containing a VTK readable mesh file (VTK must be installed on your machine for it to work), being .ply/.vtp/.obj/.stl/.vtk/.g file formats.
Finite Element Method options
cell_type- The type of element to be used in the Finite Element Method. Currently only"OneDimLinearElement"implemented.
Boundary condition options
top_boundary_condition_type- The top domain boundary condition for each facet. Currently implemented:"BCTopSurfaceEnergyBalance","BCSinusoidalTemperature","BCConstantHeatFlux".bottom_boundary_condition_type- The bottom domain boundary condition for each facet. Currently implemented:"BCTopSurfaceEnergyBalance","BCSinusoidalTemperature","BCConstantHeatFlux".boundary_temperture- A helper field needed for when the boundary condition also needs to be iterated. Chose"IterativeSurfaceTemperature"in this case and"Temperature"else.top_boundary_heat_flux- The amount of heat flux in Watt per square meter (W m\(^{-2}\)), for when"BCConstantHeatFluxis chosen as the top boundary condition.bottom_boundary_heat_flux- The amount of heat flux in Watt per square meter (W m\(^{-2}\)), for when"BCConstantHeatFluxis chosen as the bottom boundary condition.top_temperature_amplitude- The amplitude of the sinusoidal temperature wave in Kelvin (K), for when"BCSinusoidalTemperatureis chosen as the top boundary condition.bottom_temperature_amplitude- The amplitude of the sinusoidal temperature wave in Kelvin (K), for when"BCSinusoidalTemperatureis chosen as the bottom boundary condition.top_period- The period of the sinusoidal temperature wave in seconds (s), for when"BCSinusoidalTemperatureis chosen as the top boundary condition.bottom_period- The period of the sinusoidal temperature wave in seconds (s), for when"BCSinusoidalTemperatureis chosen as the bottom boundary condition.
Snapshot options
snapshot- Path to the MoCSI snapshot file that should be loaded for this simulation_snaphsot_keep_sim- Prohibits overwrite of the currentdefault.iniandrun.inivalues when loading the snapshot._snaphsot_keep_module- Prohibits overwrite of all current module ini file values when loading the snapshot.snapshot_save_file- Path to save MoCSI snapshot at simulation end.
run.ini
All options from
default.iniare allowed in this ini file. Values in this ini file always take priority over default values.
Module ini files¶
Albedo.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
AlbedoConstantCustom.ini
user_supplied_albedo- The custom bolometric Bond albedo value.submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
Density
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
DensityConstantCustom
user_suplied_density- The custom bulk density value in kilogram per cubic meters (kg m\(^{-3}\)).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
DensityConstantGundlach2013RegolithSolidAsteroidType
asteroid_type- The spectral class of the target asteroid type. Currently implemented are"S","M","C"and"Q".volume_filling_factor- The volume filling factor of the regolith.submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
Emissivity.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
EmissivityConstantCustom.ini
user_supplied_emissivity- The custom emissivity value in the thermal infrared.submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
FluxSmoothingTool.ini
upper_threshold- The factor that determines when flux smoothing is triggered when the temperature of the current time step overshoots the temperature of the previous timestep times the upper threshold.lower_threshold- The factor that determines when flux smoothing is triggered when the temperature of the current time step undershoots the temperature of the previous timestep times the lower threshold.chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
HeatCapacity.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
HeatCapacityConstantCustom.ini
user_supplied_heat_capacity- The custom specific heat capacity value in Joule per kilogram and Kelvin (J kg\(^{-1}\) K\(^{-1}\)).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatCapacityConstantOpeil2010NonPorousRockSolidAsteroidType
asteroid_type- The spectral class of the target asteroid type. Currently implemented are"S","M","C"and"Q".submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatConductivity.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
HeatConductivityConstantCustom.ini
user_supplied_heat_conductivity- The custom bulk heat conductivity value in Watt per meter and Kelvin (W m\(^{-1}\) K\(^{-1}\)).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatConductivityConstantMaxwell1873PorousRockSolid.ini
porosity- The porosity (1 - volume filling factor) of the rock.submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatConductivityTwoLayers
transition_depth- The depth of the layer transition in meter (m).use_upper_hc_on_node- If true, the heat conductivity of the upper layer will be used, if the layer transition falls exactly on a node. Uses the lower layer one if false.submodules- There have to be two submodules loaded for the module to function correctly. The first loaded module is used in the upper layer (surface totransition_depth) and the second loaded module is used in the lower layer (transition_depthto maximum depth)dependencies- The modules dependencies, if there are any.
HeatConductivityVariableGundlach2013NonPorousRockSolidAsteroidType
asteroid_type- The spectral class of the target asteroid type. Currently implemented are"S","M","C"and"Q".submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatConductivityVariableGundlach2013RegolithSolid.ini
poissons_ration- Poisson’s ratio of the material.youngs_modulus- The Young’s modulus of the material.f1- The \(f_1\) fit parameter from Gundlach and Blum (2012).f2- The \(f_2\) fit parameter from Gundlach and Blum (2012).chi- The angular and polydisperse particle adaption factor from Gundlach and Blum (2013).e1- The \(e1\) fit parameter from Gundlach and Blum (2012).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeatSource.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
HeatSourceConstantCustom.ini
user_supplied_heat_source- The custom heat source or sink value in Watt per meter squared (W m\(^{-2}\)).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeliocentricDistance.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
HeliocentricDistanceConstant.ini
user_supplied_heliocentric_distance- The custom heliocentric distance value in astromicals units (AU).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
HeliocentricDistanceVariableSpice.ini
spice_metakernel_path- The path to the SPICE metakernel file.object_id- The SPICE object ID of the target body.reference_frame_id- The SPICE reference frame (usually"J2000").start_time_utc- The starting time for the simulation of the target body in UTC format (YYYY-MM-DDThh:mm:ss).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
OutputToolCsv.ini
file_path- The path and name of the csv file that will be saved.save_fields- The names of the field values to be saved, separated by commas.save_mode- How the selected fields should be saved. Currently implemented:"specific_time_steps", saves the fields on the time steps specified insave_time_steps."interval"saves the fields on a specific interval specified byinterval."interval_surface"saves only the surface values of the fields on a specific interval specified byinterval.interval- The interval of time steps at which the field values should be saved, if the correspondingsave_modewas selected.save_time_steps- The time steps at which the field values should be saved, if the correspondingsave_modewas selected.chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
RuntimeProgressTool.ini
iteration_interval- Number of time steps between progress reports.chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
SolarFlux.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
SolarFluxConstantCustom.ini
user_supplied_solar_flux- The custom incoming solar flux value in Watt per meter squared (W m\(^{-2}\)).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
SolarFluxVariableCustomSinusoidal
period- The period of the day-night-cycle in seconds (s).declination- The declination of the surface on a sphere in degrees (°).latitude- The latitude of the surface on a sphere in degrees (°).slope_angle- The slope angle of the surface against the normal of the sphere in degrees (°).azimuth_topo_grad- Azimuth of the topographic gradient agains a specified prime meridian in degrees (°).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
SolarFluxVariablePotter2023Radiosity
submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
SolarVector.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.
SolarVectorConstant.ini
polar_angle- Angle between the solar vector and the z-axis in degrees (°).azimuth- Angle in x-y axis measured from the x-axis in degrees (°).submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
SolarVectorSpice.ini
spice_metakernel_path- The path to the SPICE metakernel file.object_id- The SPICE object ID of the target body.reference_frame_id- The SPICE reference frame (usually"J2000").start_time_utc- The starting time for the simulation of the target body in UTC format (YYYY-MM-DDThh:mm:ss).rotating_frame_id- The SPICE frame ID of the body-fixed frame of the target body.submodules- The submodules to be loaded beneath this module, if there are any.dependencies- The modules dependencies, if there are any.
TemperatureSaverIterationsTool.ini
chain_insertion- The Module Insertion Points in which this managing module should be loaded. Default available chains are"InitChain","PreTimeStepChain","PostTimeStepChain","PostNonLinIterChain"and"OutputChain". If this managing module should not be loaded, use"None".submodules- The submodules to be loaded beneath this module. If there are none, use"None".dependencies- The modules dependencies, if there are any.