Input file
adamantine supports Boost INFO format and json. The input file is assumed to use the INFO format unless the file extension is .json
.
The following options are available:
boundary (required)
- type: type of boundary:
adiabatic
,radiative
,convective
and since 1.1clamped
andtraction_free
. Multiple types can be chosen simultaneously by separating them by comma (required) - boundary_X: property tree describing the boundary condition of the faces with a boundary id of X (optional, since 1.1)
- boundary_X.type: type of the boundary (required if the property tree boundary_X is present)
- printed_surface: property tree describing the boundary condition of the surface being printed (optional, since 1.1)
- printed_surface.type: type of the boundary (required if the property tree printed_surface is present)
discretization (required):
- thermal (required if physics.thermal is true):
- fe_degree: degree of the finite element used (required)
- quadrature: quadrature used:
gauss
orlobatto
(default value:gauss
)
- mechanical (required if physics.mechanical is true):
- fe_degree: degree of the finite element used (required)
geometry (required):
- dim: the dimension of the problem (2 or 3, required)
- import_mesh: true or false (required)
- if import_mesh is true:
- mesh_file: The filename for the mesh file (required)
- mesh_format:
abaqus
,assimp
,unv
,ucd
,dbmesh
,gmsh
,tecplot
,xda
,vtk
,vtu
,exodus
, ordefault
, i.e., use the file suffix to try to determine the mesh format (required) - mesh_scale_factor: Apply a uniform scaling factor to the mesh (e.g. if the mesh is defined
in mm or inches instead of m) (default value: 1, removed in 1.1, use
units.mesh
instead) - reset_material_id: Clear the material IDs defined in the mesh and set them all to zero so
all material properties are given by the
material_0
input block: true or false (default value: false)
- if import_mesh is false:
- length: the length of the domain in meters (required)
- height: the height of the domain in meters (required)
- width: the width of the domain in meters (only in 3D)
- length_origin: the reference location in the length direction (default value: 0)
- height_origin: the reference location in the height direction (default value: 0)
- width_origin: the reference location in the width direction (only in 3D) (default value: 0)
- length_divisions: number of cell layers in length (default value: 10)
- height_divisions: number of cell layers in the height (default value: 10)
- width_divisions: number of cell layers in width (only in 3D) (default value: 10)
- material_height: below this height the domain contains material. Above this height the domain is empty. The height is in meters (default value: 1e9)
- use_powder: the additive manufacturing process use powder: true or false (default value: false)
- if use_powder is true:
- powder_layer: thickness of the initial layer of powder in meters (required)
- material_deposition: material is deposed during the simulation: true or false (default value: false)
- if material_deposition is true:
- material_deposition_method:
file
orscan_paths
- if material_deposition_method is file:
- material_deposition_file: material deposition filename
- if material_deposition_method is scan_paths:
- deposition_length: length of material deposition boxes along the scan direction in meters (required)
- deposition_width: width of material deposition boxes (in the plane of the material, normal to the scan direction, 3D only) in meters (required)
- deposition_height: height of material deposition boxes (out of the plane of the material) in meters (required)
- deposition_lead_time: amount of time before the scan path reaches a point that the material is added in seconds (required)
- deposition_time: add the material in bigger lumps in seconds (optional)
- material_deposition_method:
materials (required):
- n_materials: number of materials (required)
- property_format: format of the material property:
table
orpolynomial
. Fortable
, the format of the material properties is as follows:temperature_1,value_1|temperature_2,value_2|...
withtemperature_1 < temperature_2
. Forpolynomial
, the format is as follows:coeff_0,coeff_1,coeff_2
wherecoeff_0
is the coefficient ofT^0
,coeff_1
is the coefficient ofT^1
, etc (required) - initial_temperature: initial temperature of all the materials in kelvins (default value: 300)
- new_material_temperature: temperature of all the material that is being added during the process in kelvins (default value: 300)
- material_X: property tree for the material with number X
- material_X.Y: property tree where Y is either liquid, powder, or solid (one is required)
- material_X.Y.Z: Z can be (all the properties are optional):
- density in kg/m^3
- specific_heat in J/(K*kg)
- thermal_conductivity_x, resp.
y
orz
, in the directionx
, resp.y
orz
(in 2D onlyx
andz
are used), in W/(m*K) - emissivity in W/(m^2*K)
- convection_heat_transfer_coef in W/(m^2*K)
- lame_first_parameter in Pa
- lame_second_parameter in Pa
- thermal_expansion_coef in 1/K
- plastic_modulus in Pa
- isotropic_hardening, a coefficients coefficient between 0 (no isotropic hardening) and 1 (no kinematic hardening)
- elastic_limit in Pa
- material_X.A: A is either
solidus
in kelvins,liquidus
in kelvins,latent_heat
inJ/kg
,radiation_temperature_infty
in kelvins, orconvection_temperature_infty
in kelvins (optional)
physics (required):
- thermal: thermal simulation: true or false (required)
- mechanical: mechanical simulation: true or false (required)
- if both thermal and mechanical parameters are true, solve a coupled thermo-mechanics problem
post_processor (required):
- filename_prefix: prefix of output files (required)
- time_steps_between_output: number of time steps between the fields being written to the output files (default value: 1)
- additional_output_refinement: additional levels of refinement for the output (default: 0)
- output_on_data_assimilation: output fields just before and just after data assimilation (default: true, since 1.1)
refinement (required):
- n_refinements: number of times the cells on the paths of the beams are refined (default value: 2)
- beam_cutoff: the cutoff value of the heat source terms above which beam-based refinement occurs (default value: 1e-15, removed in 1.1)
- coarsen_after_beam: whether to coarsen cells where the beam has already passed (default value: false)
- time_steps_between_refinement: number of time steps after which the refinement process is performed (default value: 2)
sources (required):
- n_beams: number of heat source beams (required)
- beam_X: property tree for the beam with number X
- beam_X.type: type of heat source:
goldak
,electron_beam
, orcube
(required) - beam_X.scan_path_file: scan path filename (required)
- beam_X.scan_path_file_format: format of the scan path:
segment
orevent_series
(required) - beam_X.max_power: maximum power of the beam in watts (required)
- beam_X.depth: maximum depth reached by the electron beam in meters (required)
- beam_X.absorption_efficiency: absorption efficiency of the beam equivalent
to
energy_conversion_efficiency * control_efficiency
for electon beam. Number between 0 and 1 (required). - beam_X.diameter: diameter of the beam in meters (default value: 2e-3)
time_stepping (required):
- method: name of the method to use for the time integration:
forward_euler
,rk_third_order
, orrk_fourth_order
(required) - scan_path_for_duration: if the flag is true, the duration of the simulation is determined by the duration of the scan path. In this case the scan path file needs to contain SCAN_PATH_END to terminate the simulation. If the flag is false, the duration of the simulation is determined by the duration input (default value: false, since 1.1)
- duration: duration of the simulation in seconds (required for 1.0, since 1.1 only required if scan_path_for_duration is false)
- time_step: length of the time steps used for the simulation in seconds (required)
checkpoint (optional):
- time_steps_between_checkpoint: number of time steps after which checkpointing is performed (required)
- filename_prefix: prefix of the checkpoint files (required)
- overwrite_files: if true the checkpoint files are overwritten by newer ones. If false, the time steps is added to the filename prefix (required)
data_assimilation (optional):
- assimilate_data: whether to perform data assimilation (default value: false)
- localization_cutoff_function: function used to decrease the sample covariance as the relevant points become farther away: gaspari_cohn, step_function, none (default: none)
- localization_cutoff_distance: distance at which sample covariance entries are set to zero (default: infinity)
- augment_with_beam_0_absorption: whether to augment the state vector with the beam 0 absorption efficiency (default: false)
- augment_with_beam_0_max_power: whether to augment the state vector with the beam 0 max power (default: false)
- solver:
- max_number_of_temp_vectors: maximum number of temporary vectors for the GMRES solve (optional)
- max_iterations: maximum number of iterations for the GMRES solve (optional)
- convergence_tolerance: convergence tolerance for the GMRES solve (optional)
ensemble (optional):
- ensemble_simulation: whether to perform an ensemble of simulations (default value: false)
- ensemble_size: number of ensemble members for the ensemble Kalman filter (EnKF) (default value: 5)
- initial_temperature_stddev: standard deviation for the initial temperature of the material (default value: 0.0, removed in 1.1)
- new_material_temperature_stddev: standard deviation for the temperature of material added during the process (default value: 0.0, removed in 1.1)
- beam_0_max_power_stddev: standard deviation for the max power for beam 0 (if it exists) (default value: 0.0, removed in 1.1)
- beam_0_absorption_efficiency_stddev: standard deviation for the absorption efficiency for beam 0 (if it exists) (default value: 0.0, removed in 1.1)
- variable_stddev: standard deviation associated to
variable
.variable
is an other entry in the input file, for instancesources.beam_0.max_power
. The input file accepts multiplevariable_stddev
at once. Note that this only works for scalar value and therefore it does not work for temperature dependent variables (since 1.1).
experiment (optional):
- read_in_experimental_data: whether to read in experimental data (default: false)
- file: format of the file names. The format is pretty arbitrary, the keywords #frame and #camera are replaced by the frame and the camera number. The format of the file itself should be csv. (required)
- format: format of the experimental data, either
point_cloud
, with(x, y, z, temperature)
per line, orray
, with(pt0_x, pt0_y, pt0_z, pt1_x, pt1_y, pt1_z, temperature)
per line, where the ray starts atpt0
and passes throughpt1
. For both the format, the first line is an arbitrary header that is ignored (required) - first_frame: number associated to the first frame (default value: 0)
- last_frame: number associated to the last frame (required)
- first_camera_id: number associated to the first camera (required)
- last_camera_id: number associated to the last camera (required)
- log_filename: the (full) filename of the log file that lists the timestamps for each frame from each camera. The format of file is
frame_id, frame time of the first camera, frame time of the second camera, etc.
Note that the timestamps are not assumed to match the simulation time frame. Thefirst_frame_temporal_offset
parameter controls the simulation time corresponding to the first camera frame (required) - first_frame_temporal_offset: a uniform shift to the timestamps from all cameras to match the simulation time (default value: 0.0)
- estimated_uncertainty: the estimate of the uncertainty in the experimental data points as given by a standard deviation (under the simplifying assumption that the error is normally distributed and independent for each data point) (default value: 0.0).
- output_experiment_on_mesh: whether to output the experimental data projected onto the simulation mesh at each experiment time stamp (default: true)
memory_space (optional):
device
(use GPU if Kokkos was compiled with GPU support) orhost
(use CPU) (default value: host)
microstructure (optional):
- filename_prefix: prefix of the output file of the temperature gradient, the cooling rate, and the interface velocity at the liquidus. The format of the file is x y (z) temperature gradient (K/m) cooling rate (K/s) the inteface velocity (m/s) (required, since 1.1)
profiling (optional):
- timer: output timing information (default value: false)
- caliper: configuration string for Caliper (optional)
restart (optional):
- filename_prefix: prefix of the restart files (required)
units (optional):
Change the unit of some inputs (since 1.1)
- mesh: unit used for the mesh. Either millimeter, centimeter, inch, or meter (default value: meter)
- heat_source (optional):
- power: unit used for the power of the heat sources. Either milliwatt or watt (default value: watt)
- velocity: unit used for the velocity of the heat sources. Either millimeter/second, centimeter/second, or meter/second (default value: meter/second)
- dimension: unit used for the dimension of the heat sources. Either millimeter, centimeter, inch, or meter (default value: meter)
- scan_path: unit used for the scan path of the heat sources. Either millimeter, centimeter, inch, or meter (default value: meter)
verbose_output (optional):
- true or false (default value: false)