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.1 clamped and traction_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 or lobatto (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, or default, 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 or scan_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)

materials (required):

  • n_materials: number of materials (required)
  • property_format: format of the material property: table or polynomial. For table, the format of the material properties is as follows: temperature_1,value_1|temperature_2,value_2|... with temperature_1 < temperature_2. For polynomial, the format is as follows: coeff_0,coeff_1,coeff_2 where coeff_0 is the coefficient of T^0, coeff_1 is the coefficient of T^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 or z, in the direction x, resp. y or z (in 2D only x and z 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 in J/kg, radiation_temperature_infty in kelvins, or convection_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, or cube (required)
  • beam_X.scan_path_file: scan path filename (required)
  • beam_X.scan_path_file_format: format of the scan path: segment or event_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, or rk_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 instance sources.beam_0.max_power. The input file accepts multiple variable_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, or ray, with (pt0_x, pt0_y, pt0_z, pt1_x, pt1_y, pt1_z, temperature) per line, where the ray starts at pt0 and passes through pt1. 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. The first_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) or host (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)