Getting Started

A simple example of running a structural simulation using the Intact CLI. This guide walks through the JSON structure needed to define a cantilever beam simulation.

Typical Workflow

  1. Set up the input JSON and provide the geometry file (.VDB, .PLY, .STL) and boundary condition faces (.STL, .PLY)

  2. Execute intact CLI: $ intact -s "path to json file" --save-solution --refinement-level 0.02

  3. A successful run will result in a *_samples.vtu result file

  4. You can visualize the result in Paraview (an open source program, see instructions below)

  5. Resample the saved solution on a new geometry (sections or cuts)

    • Modify geometry file in the original JSON to the new geometry that you want to resample on

    • Execute: $ intact -s "path to json file" --load-solution-file --refinement-level 0.02

JSON Structure

An Intact CLI simulation is defined by a JSON file that brings together all the components of your analysis. The JSON file has the following main sections:

{
  "type": "LinearElasticity",
  "scenario_name": "my_simulation",
  "geometry": { },
  "materials": { },
  "boundary_conditions": [ ],
  "internal_conditions": [ ],
  "metadata": { }
}

Main Sections:

  • type: Specifies the physics type for the simulation (e.g., "LinearElasticity", "Modal", "LinearBuckling", "StaticThermal", "ThermoLinearElasticity"). See How To: Metadata and Physics Types for details on each physics type.

  • scenario_name: A descriptive name for your simulation.

  • geometry: Defines the geometric model including components and assembly. See How To: Units, Geometry, and Materials for detailed geometry specification.

  • materials: Specifies material properties (isotropic, orthotropic, or thermal materials). See How To: Units, Geometry, and Materials for material definitions.

  • boundary_conditions: Array of boundary conditions applied to surfaces (restraints, loads, thermal conditions). See How To: Boundary Conditions for all available boundary condition types.

  • internal_conditions: Array of internal conditions applied to volumes (body loads, rotational loads, heat generation). See How To: Internal Conditions for details.

  • metadata: Solver parameters and configuration options (resolution, units, solver type, etc.). See How To: Metadata and Physics Types for all metadata options.

The following sections provide a simple example of each component to get you started.

Create Geometry

Geometry is specified in the geometry object, which contains two parts: components and assembly.

{
  "geometry": {
    "components": [
      {
        "file": "beam.stl",
        "geometry_type": "Mesh",
        "id": 0,
        "material": "steel"
      }
    ],
    "assembly": [
      {
        "component": 0,
        "instance_id": "simple_cantilever",
        "type": "Component"
      }
    ]
  }
}

Create Material

Materials are defined in the materials object. Each material must specify a type and relevant properties.

{
  "materials": {
    "steel": {
      "type": "Isotropic",
      "failure_criterion": "VonMises",
      "density": 7800.0,
      "youngs_modulus": 2.1e11,
      "poisson_ratio": 0.3,
      "yield_strength": 330000000.0,
      "tensile_strength": 0.0,
      "compressive_strength": 0.0
    }
  }
}

Create Boundary Conditions

Boundary conditions are specified in the boundary_conditions array. Each boundary condition requires a type and a boundary surface file.

{
  "boundary_conditions": [
    {
      "boundary": "fixed_face.ply",
      "type": "fixed"
    },
    {
      "boundary": "load_face.ply",
      "type": "vector_force",
      "direction": [0, -1, 0],
      "magnitude": 1000,
      "units": "MeterKilogramSecond"
    }
  ]
}

Setup Simulation

Finally, specify the metadata to control solver parameters:

{
  "metadata": {
    "resolution": 10000,
    "units": "MeterKilogramSecond"
  }
}

Complete Example

A complete cantilever beam simulation example is available for download:

More Examples

Demo examples with both Mesh and VDB geometry are available for download:

These examples demonstrate various simulation types and boundary conditions.

Viewing Results

The intact command line outputs VTK files. These are fairly standard, and can be manipulated in a variety of programming languages. For more information about official VTK resources please check out their homepage.

VTK - The Visualization Toolkit

There are a number of third-party libraries for working with VTK files in other languages.

We recommend using the Paraview application for viewing and manipulating these results in most cases. Paraview is an industry-standard scientific data analysis and visualization tool that is free and open-source. More information, and builds for most operating systems, are available from the Paraview home page.

Paraview Quick-start

Opening Paraview should yield an interface that looks roughly like this.

paraview.png

The intact command line tool will place the samples in the results directory (by default, the same directory as the json file). Look for a samples *.vtu file and open it in Paraview.

paraview_open_files.png

Make sure the samples are visible in the pipeline browser by clicking the eye icon.

paraview_pipeline_browser.png

The sampled fields are available in the properties dropdown. For example the following would be typical of a linear elasticity scenario.

paraview_properties.png

Here is how stress results would look. One can rotate and pan the viewport.

paraview_results.png