How To: Metadata and Physics Types

The metadata object contains solver parameters and configuration options that control the accuracy and speed of simulations.

Metadata Fields

  • resolution or cell_size: resolution is the target number of finite elements. An iterative process determines a cell_size that achieves approximately the specified number of elements. You can directly specify cell_size instead of resolution. Note that decreasing cell_size can quickly result in large numbers of finite elements and long solve times. resolution is recommended for most cases.

  • units: Sets the unit system for the scenario (geometry and results will be in this unit). Note that materials are always specified in MKS units. Available options: "MeterKilogramSecond" (default), "CentimeterGramSecond", "MillimeterMegagramSecond", "FootPoundSecond", "InchPoundSecond".

  • basis_order: The type of finite element used. Default is 1 (linear elements). 2 is for quadratic elements.

  • solver_override: Explicitly specify the solver to use. Default for linear elasticity and modal is AMGCL_amg_rigid_body. Default for thermal is AMGCL_amg. Available options: AMGCL_cg, AMGCL_ilu0_cg, AMGCL_damped_jacobi_cg, AMGCL_amg, AMGCL_amg_rigid_body, Eigen_SparseLU, MKL_PardisoLDLT, MKL_PardisoLLT, MKL_PardisoLU.

  • integrator_override: For some physics types, multiple integrator implementations are available. In general, the default choice is the best choice. Available options: IntactModal, IntactLinearElasticity, MPCStaticThermal, MPCLinearElasticity, LinearBuckling, MPCThermoLinearElasticity.

  • tolerance: The tolerance for iterative solvers. Default is 1e-20 for high accuracy. Increasing the tolerance will decrease solve time but yield less accurate results.

  • max_iterations_multiplier: Changes the max iterations for iterative solvers; scales with the number of degrees of freedom. Use a parameter less than one for faster solve times, with the tradeoff of accuracy.

  • omega_cutoff: A parameter to tune the use of solution structure method for enforcing boundary conditions. By default, there is no cutoff. It is not recommended to tune this parameter without additional input from Intact Solutions.

  • use_caching: By default, Intact.simulation will cache all quadrature rules and material properties for each cell. This can use significant memory for problems with many elements. Set to false to decrease memory footprint at the cost of additional runtime.

  • verbose_solver: Some sparse linear solvers can provide feedback about their progress. Default is false. If set to true, some solvers will report progress to standard output.

Example with all metadata fields:

{
  "metadata": {
    "resolution": 10000,
    "units": "MeterKilogramSecond",
    "basis_order": 2,
    "solver_override": "AMGCL_amg_rigid_body",
    "integrator_override": "MPCLinearElasticity",
    "tolerance": 1e-20,
    "max_iterations_multiplier": 1.0,
    "omega_cutoff": 0.1,
    "use_caching": true,
    "verbose_solver": false
  }
}

Physics Types

Linear Elasticity

Linear elasticity simulations require "type": "LinearElasticity" in the scenario JSON.

Supported Materials: Isotropic, Orthotropic

Supported Boundary Conditions: Fixed, Fixed Vector, Sliding, Vector Force, Torque Force, Pressure Force, Bearing Force, Hydrostatic Load, Flexible Remote Load

Supported Internal Conditions: Body Load (Linear Acceleration/Gravity), Rotational Load

{
  "type": "LinearElasticity",
  "scenario_name": "cantilever_beam",
  "geometry": { },
  "materials": { },
  "boundary_conditions": [ ],
  "internal_conditions": [ ],
  "metadata": {
    "resolution": 10000,
    "units": "MeterKilogramSecond"
  }
}

Linear Buckling

Linear buckling simulations require "type": "LinearBuckling" in the scenario JSON. A linear buckling simulation first performs a linear elasticity simulation, then solves a generalized eigenvalue problem to determine the critical load factors.

Additional Required Metadata:

  • desired_eigenvalues: The integer number of critical load factors to solve for. Each eigenvalue corresponds to a critical load factor, which when multiplied by the applied load, determines the critical load. For each critical load factor, a corresponding displacement field (buckling mode shape) will be calculated. Generally, the first critical load factor is most useful; a small number of additional modes may be useful to examine.

Supported Materials: Isotropic, Orthotropic

Supported Boundary Conditions: Any linear elasticity boundary conditions

Supported Internal Conditions: Any linear elasticity internal conditions

Note: The solver_override metadata controls the solver type for the underlying linear elasticity simulation. The linear buckling solver is selected automatically.

{
  "type": "LinearBuckling",
  "scenario_name": "buckling_analysis",
  "geometry": { },
  "materials": { },
  "boundary_conditions": [ ],
  "internal_conditions": [ ],
  "metadata": {
    "resolution": 10000,
    "desired_eigenvalues": 3
  }
}

Static Thermal

Static thermal simulations require "type": "StaticThermal" in the scenario JSON.

Additional Required Metadata:

  • environment_temperature: The temperature of the surrounding environment.

Supported Materials: Thermal materials (must specify thermal_conductivity, specific_heat, and optionally expansion_coefficient)

Supported Boundary Conditions: Fixed Temperature, Convection, Constant Flux

Supported Internal Conditions: Constant Heat (body heat flux)

{
  "type": "StaticThermal",
  "scenario_name": "thermal_analysis",
  "geometry": { },
  "materials": { },
  "boundary_conditions": [ ],
  "internal_conditions": [ ],
  "metadata": {
    "resolution": 10000,
    "environment_temperature": 300.0
  }
}

Thermoelasticity

Thermo linear elasticity scenarios perform a static thermal and linear elasticity simulation, taking into account the strain induced by thermal effects. A thermo linear elasticity scenario is configured with two scenario JSON files.

Additional Required Configuration:

  • thermal_scenario: Path to the static thermal scenario JSON file that will be solved first.

Supported Materials: Materials must have thermal properties defined with expansion_coefficient

Supported Boundary Conditions: Any linear elasticity boundary conditions

Supported Internal Conditions: Any linear elasticity internal conditions

Important Notes:

  • For best results, the thermal scenario resolution should be the same or less than the stress scenario resolution.

  • Ensure that the material has an expansion_coefficient defined so the calculated thermal field can be used to determine thermally induced strain.

  • A thermo linear elasticity scenario will create a sampled solution containing both the temperature field and the displacement, strain, and stress fields expected from a structural analysis.

{
  "type": "ThermoLinearElasticity",
  "scenario_name": "thermoelastic_analysis",
  "thermal_scenario": "thermal_scenario.json",
  "geometry": { },
  "materials": { },
  "boundary_conditions": [ ],
  "internal_conditions": [ ],
  "metadata": {
    "resolution": 10000
  }
}