diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/404.html b/404.html new file mode 100644 index 00000000..c34898fa --- /dev/null +++ b/404.html @@ -0,0 +1,982 @@ + + + +
+ + + + + + + + + + + + + + + +/
(object
)
/
+
/geometry
(list
)/geometry
+
/geometry/*
/geometry/*
+
/geometry/*/mesh
(file
)/geometry/*/mesh
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection
+
Extensions: ['.txt']
Default: None
+
/geometry/*/volume_selection/id_offset
(int
)/geometry/*/volume_selection/id_offset
+
Default: 0
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*
+
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/box
(list
)/geometry/*/volume_selection/*/box
+
/geometry/*/volume_selection/*/box/*
(list
)/geometry/*/volume_selection/*/box/*
+
/geometry/*/volume_selection/*/box/*/*
(float
)/geometry/*/volume_selection/*/box/*/*
+
Default: 0
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/center
(list
)/geometry/*/volume_selection/*/center
+
/geometry/*/volume_selection/*/center/*
(float
)/geometry/*/volume_selection/*/center/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/p1
(list
)/geometry/*/volume_selection/*/p1
+
/geometry/*/volume_selection/*/p1/*
(float
)/geometry/*/volume_selection/*/p1/*
+
/geometry/*/volume_selection/*/p2
(list
)/geometry/*/volume_selection/*/p2
+
/geometry/*/volume_selection/*/p2/*
(float
)/geometry/*/volume_selection/*/p2/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/point
(list
)/geometry/*/volume_selection/*/point
+
/geometry/*/volume_selection/*/point/*
(float
)/geometry/*/volume_selection/*/point/*
+
/geometry/*/volume_selection/*/normal
(list
)/geometry/*/volume_selection/*/normal
+
/geometry/*/volume_selection/*/normal/*
(float
)/geometry/*/volume_selection/*/normal/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis
+
/geometry/*/volume_selection/*/position
(float
)/geometry/*/volume_selection/*/position
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection
+
Extensions: ['.txt']
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*
+
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/box
(list
)/geometry/*/surface_selection/*/box
+
/geometry/*/surface_selection/*/box/*
(list
)/geometry/*/surface_selection/*/box/*
+
/geometry/*/surface_selection/*/box/*/*
(float
)/geometry/*/surface_selection/*/box/*/*
+
Default: 0
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/center
(list
)/geometry/*/surface_selection/*/center
+
/geometry/*/surface_selection/*/center/*
(float
)/geometry/*/surface_selection/*/center/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/p1
(list
)/geometry/*/surface_selection/*/p1
+
/geometry/*/surface_selection/*/p1/*
(float
)/geometry/*/surface_selection/*/p1/*
+
/geometry/*/surface_selection/*/p2
(list
)/geometry/*/surface_selection/*/p2
+
/geometry/*/surface_selection/*/p2/*
(float
)/geometry/*/surface_selection/*/p2/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/point
(list
)/geometry/*/surface_selection/*/point
+
/geometry/*/surface_selection/*/point/*
(float
)/geometry/*/surface_selection/*/point/*
+
/geometry/*/surface_selection/*/normal
(list
)/geometry/*/surface_selection/*/normal
+
/geometry/*/surface_selection/*/normal/*
(float
)/geometry/*/surface_selection/*/normal/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis
+
/geometry/*/surface_selection/*/position
(float
)/geometry/*/surface_selection/*/position
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/threshold
(float
)/geometry/*/surface_selection/*/threshold
+
/geometry/*/surface_selection/*/id_offset
(int
)/geometry/*/surface_selection/*/id_offset
+
Default: 0
/geometry/*/curve_selection
(object
)/geometry/*/curve_selection
+
Default: None
/geometry/*/point_selection
/geometry/*/point_selection
+
Extensions: ['.txt']
/geometry/*/point_selection/*
/geometry/*/point_selection/*
+
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/box
(list
)/geometry/*/point_selection/*/box
+
/geometry/*/point_selection/*/box/*
(list
)/geometry/*/point_selection/*/box/*
+
/geometry/*/point_selection/*/box/*/*
(float
)/geometry/*/point_selection/*/box/*/*
+
Default: 0
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/center
(list
)/geometry/*/point_selection/*/center
+
/geometry/*/point_selection/*/center/*
(float
)/geometry/*/point_selection/*/center/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/p1
(list
)/geometry/*/point_selection/*/p1
+
/geometry/*/point_selection/*/p1/*
(float
)/geometry/*/point_selection/*/p1/*
+
/geometry/*/point_selection/*/p2
(list
)/geometry/*/point_selection/*/p2
+
/geometry/*/point_selection/*/p2/*
(float
)/geometry/*/point_selection/*/p2/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/point
(list
)/geometry/*/point_selection/*/point
+
/geometry/*/point_selection/*/point/*
(float
)/geometry/*/point_selection/*/point/*
+
/geometry/*/point_selection/*/normal
(list
)/geometry/*/point_selection/*/normal
+
/geometry/*/point_selection/*/normal/*
(float
)/geometry/*/point_selection/*/normal/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis
+
/geometry/*/point_selection/*/position
(float
)/geometry/*/point_selection/*/position
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/threshold
(float
)/geometry/*/point_selection/*/threshold
+
/geometry/*/point_selection/*/id_offset
(int
)/geometry/*/point_selection/*/id_offset
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: mesh_array +
/geometry/*/mesh
(file
)/geometry/*/mesh
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/array
(object
)/geometry/*/array
+
/geometry/*/array/offset
(float
)/geometry/*/array/offset
+
/geometry/*/array/size
(list
)/geometry/*/array/size
+
/geometry/*/array/size/*
(int
)/geometry/*/array/size/*
+
Range: [1, inf]
/geometry/*/array/relative
(bool
)/geometry/*/array/relative
+
Default: False
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection
+
Extensions: ['.txt']
Default: None
+
/geometry/*/volume_selection/id_offset
(int
)/geometry/*/volume_selection/id_offset
+
Default: 0
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*
+
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/box
(list
)/geometry/*/volume_selection/*/box
+
/geometry/*/volume_selection/*/box/*
(list
)/geometry/*/volume_selection/*/box/*
+
/geometry/*/volume_selection/*/box/*/*
(float
)/geometry/*/volume_selection/*/box/*/*
+
Default: 0
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/center
(list
)/geometry/*/volume_selection/*/center
+
/geometry/*/volume_selection/*/center/*
(float
)/geometry/*/volume_selection/*/center/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/p1
(list
)/geometry/*/volume_selection/*/p1
+
/geometry/*/volume_selection/*/p1/*
(float
)/geometry/*/volume_selection/*/p1/*
+
/geometry/*/volume_selection/*/p2
(list
)/geometry/*/volume_selection/*/p2
+
/geometry/*/volume_selection/*/p2/*
(float
)/geometry/*/volume_selection/*/p2/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/point
(list
)/geometry/*/volume_selection/*/point
+
/geometry/*/volume_selection/*/point/*
(float
)/geometry/*/volume_selection/*/point/*
+
/geometry/*/volume_selection/*/normal
(list
)/geometry/*/volume_selection/*/normal
+
/geometry/*/volume_selection/*/normal/*
(float
)/geometry/*/volume_selection/*/normal/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis
+
/geometry/*/volume_selection/*/position
(float
)/geometry/*/volume_selection/*/position
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection
+
Extensions: ['.txt']
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*
+
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/box
(list
)/geometry/*/surface_selection/*/box
+
/geometry/*/surface_selection/*/box/*
(list
)/geometry/*/surface_selection/*/box/*
+
/geometry/*/surface_selection/*/box/*/*
(float
)/geometry/*/surface_selection/*/box/*/*
+
Default: 0
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/center
(list
)/geometry/*/surface_selection/*/center
+
/geometry/*/surface_selection/*/center/*
(float
)/geometry/*/surface_selection/*/center/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/p1
(list
)/geometry/*/surface_selection/*/p1
+
/geometry/*/surface_selection/*/p1/*
(float
)/geometry/*/surface_selection/*/p1/*
+
/geometry/*/surface_selection/*/p2
(list
)/geometry/*/surface_selection/*/p2
+
/geometry/*/surface_selection/*/p2/*
(float
)/geometry/*/surface_selection/*/p2/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/point
(list
)/geometry/*/surface_selection/*/point
+
/geometry/*/surface_selection/*/point/*
(float
)/geometry/*/surface_selection/*/point/*
+
/geometry/*/surface_selection/*/normal
(list
)/geometry/*/surface_selection/*/normal
+
/geometry/*/surface_selection/*/normal/*
(float
)/geometry/*/surface_selection/*/normal/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis
+
/geometry/*/surface_selection/*/position
(float
)/geometry/*/surface_selection/*/position
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/threshold
(float
)/geometry/*/surface_selection/*/threshold
+
/geometry/*/surface_selection/*/id_offset
(int
)/geometry/*/surface_selection/*/id_offset
+
Default: 0
/geometry/*/curve_selection
(object
)/geometry/*/curve_selection
+
Default: None
/geometry/*/point_selection
/geometry/*/point_selection
+
Extensions: ['.txt']
/geometry/*/point_selection/*
/geometry/*/point_selection/*
+
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/box
(list
)/geometry/*/point_selection/*/box
+
/geometry/*/point_selection/*/box/*
(list
)/geometry/*/point_selection/*/box/*
+
/geometry/*/point_selection/*/box/*/*
(float
)/geometry/*/point_selection/*/box/*/*
+
Default: 0
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/center
(list
)/geometry/*/point_selection/*/center
+
/geometry/*/point_selection/*/center/*
(float
)/geometry/*/point_selection/*/center/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/p1
(list
)/geometry/*/point_selection/*/p1
+
/geometry/*/point_selection/*/p1/*
(float
)/geometry/*/point_selection/*/p1/*
+
/geometry/*/point_selection/*/p2
(list
)/geometry/*/point_selection/*/p2
+
/geometry/*/point_selection/*/p2/*
(float
)/geometry/*/point_selection/*/p2/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/point
(list
)/geometry/*/point_selection/*/point
+
/geometry/*/point_selection/*/point/*
(float
)/geometry/*/point_selection/*/point/*
+
/geometry/*/point_selection/*/normal
(list
)/geometry/*/point_selection/*/normal
+
/geometry/*/point_selection/*/normal/*
(float
)/geometry/*/point_selection/*/normal/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis
+
/geometry/*/point_selection/*/position
(float
)/geometry/*/point_selection/*/position
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/threshold
(float
)/geometry/*/point_selection/*/threshold
+
/geometry/*/point_selection/*/id_offset
(int
)/geometry/*/point_selection/*/id_offset
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: plane +
/geometry/*/point
(list
)/geometry/*/point
+
/geometry/*/point/*
(float
)/geometry/*/point/*
+
/geometry/*/normal
(list
)/geometry/*/normal
+
/geometry/*/normal/*
(float
)/geometry/*/normal/*
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: ground +
/geometry/*/height
(float
)/geometry/*/height
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: mesh_sequence +
/geometry/*/mesh_sequence
/geometry/*/mesh_sequence
+
/geometry/*/mesh_sequence/*
(file
)/geometry/*/mesh_sequence/*
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/fps
(int
)/geometry/*/fps
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
/materials
(list
)/materials
+
/materials/*
/materials/*
+
Type: NeoHookean +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: NeoHookean +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: MooneyRivlin +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: MooneyRivlin3Param +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/c3
/materials/*/c3
+
/materials/*/c3/value
/materials/*/c3/value
+
/materials/*/c3/unit
(string
)/materials/*/c3/unit
+
/materials/*/d1
/materials/*/d1
+
/materials/*/d1/value
/materials/*/d1/value
+
/materials/*/d1/unit
(string
)/materials/*/d1/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: MooneyRivlin3ParamSymbolic +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/c3
/materials/*/c3
+
/materials/*/c3/value
/materials/*/c3/value
+
/materials/*/c3/unit
(string
)/materials/*/c3/unit
+
/materials/*/d1
/materials/*/d1
+
/materials/*/d1/value
/materials/*/d1/value
+
/materials/*/d1/unit
(string
)/materials/*/d1/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: UnconstrainedOgden +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/alphas
/materials/*/alphas
+
/materials/*/alphas/value
/materials/*/alphas/value
+
/materials/*/alphas/unit
(string
)/materials/*/alphas/unit
+
/materials/*/mus
(list
)/materials/*/mus
+
/materials/*/mus/*
/materials/*/mus/*
+
/materials/*/mus/*/value
/materials/*/mus/*/value
+
/materials/*/mus/*/unit
(string
)/materials/*/mus/*/unit
+
/materials/*/Ds
(list
)/materials/*/Ds
+
/materials/*/Ds/*
/materials/*/Ds/*
+
/materials/*/Ds/*/value
/materials/*/Ds/*/value
+
/materials/*/Ds/*/unit
(string
)/materials/*/Ds/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleOgden +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c
/materials/*/c
+
/materials/*/c/value
/materials/*/c/value
+
/materials/*/c/unit
(string
)/materials/*/c/unit
+
/materials/*/c/*
/materials/*/c/*
+
/materials/*/c/*/value
/materials/*/c/*/value
+
/materials/*/c/*/unit
(string
)/materials/*/c/*/unit
+
/materials/*/m
/materials/*/m
+
/materials/*/m/value
/materials/*/m/value
+
/materials/*/m/unit
(string
)/materials/*/m/unit
+
/materials/*/m/*
/materials/*/m/*
+
/materials/*/m/*/value
/materials/*/m/*/value
+
/materials/*/m/*/unit
(string
)/materials/*/m/*/unit
+
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: LinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: LinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: HookeLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: HookeLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
)/materials/*/elasticity_tensor
+
/materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*
+
Default: 0
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value
+
/materials/*/elasticity_tensor/*/unit
(string
)/materials/*/elasticity_tensor/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: SaintVenant +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: SaintVenant +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
)/materials/*/elasticity_tensor
+
/materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*
+
Default: 0
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value
+
/materials/*/elasticity_tensor/*/unit
(string
)/materials/*/elasticity_tensor/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: Stokes +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: NavierStokes +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: OperatorSplitting +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Laplacian +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Helmholtz +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Bilaplacian +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: AMIPS +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
Type: FixedCorotational +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: FixedCorotational +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
/units
(object
)/units
+
Default: None
+
/units/length
(string
)/units/length
+
Default: 'm'
/units/mass
(string
)/units/mass
+
Default: 'kg'
/units/time
(string
)/units/time
+
Default: 's'
/units/characteristic_length
(float
)/units/characteristic_length
+
Default: 1
/preset_problem
/preset_problem
+
Type: Linear +
Default: 'skip'
+
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Quadratic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Cubic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Sine +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Franke +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FrankeOld +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: GenericScalarExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
Type: Zero_BC +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Elastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Walk +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TorsionElastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante
(int
)/preset_problem/axis_coordiante
+
Default: 2
/preset_problem/n_turns
(float
)/preset_problem/n_turns
+
Default: 0.5
/preset_problem/fixed_boundary
(int
)/preset_problem/fixed_boundary
+
Default: 5
/preset_problem/turning_boundary
(int
)/preset_problem/turning_boundary
+
Default: 6
/preset_problem/bbox_center
(list
)/preset_problem/bbox_center
+
/preset_problem/bbox_center/*
(float
)/preset_problem/bbox_center/*
+
Default: 0
Type: DoubleTorsionElastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante0
(int
)/preset_problem/axis_coordiante0
+
Default: 2
/preset_problem/axis_coordiante1
(int
)/preset_problem/axis_coordiante1
+
Default: 2
/preset_problem/angular_v0
(float
)/preset_problem/angular_v0
+
Default: 0.5
/preset_problem/angular_v1
(float
)/preset_problem/angular_v1
+
Default: -0.5
/preset_problem/turning_boundary0
(int
)/preset_problem/turning_boundary0
+
Default: 5
/preset_problem/turning_boundary1
(int
)/preset_problem/turning_boundary1
+
Default: 6
/preset_problem/bbox_center
(list
)/preset_problem/bbox_center
+
/preset_problem/bbox_center/*
(float
)/preset_problem/bbox_center/*
+
Default: 0
Type: ElasticZeroBC +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticCantileverExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CompressionElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: QuadraticElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: LinearElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: PointBasedTensor +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Kernel +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/formulation
(string
)/preset_problem/formulation
+
Default: ''
/preset_problem/n_kernels
(int
)/preset_problem/n_kernels
+
Default: 0
/preset_problem/kernel_distance
(float
)/preset_problem/kernel_distance
+
Default: 0
/preset_problem/kernel_weights
(string
)/preset_problem/kernel_weights
+
Default: ''
Type: Node +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TimeDependentScalar +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: MinSurf +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Gravity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ConstantVelocity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TwoSpheres +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavityC0 +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavitySmooth +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Flow +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FlowWithObstacle +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CornerFlow +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: UnitFlowWithObstacle +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: StokesLaw +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: TaylorGreenVortex +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: SimpleStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
Type: SineStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TransientStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: Kovnaszy +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: Airfoil +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Lshape +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TestProblem +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: BilaplacianProblemWithSolution +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/common
(file
)/common
+
Default: ''
Extensions: ['.json']
/root_path
(string
)/root_path
+
Default: ''
/space
(object
)/space
+
Default: None
+
/space/discr_order
/space/discr_order
+
Default: 1
Extensions: ['.txt', '.bin']
/space/discr_order/*
(object
)/space/discr_order/*
+
/space/discr_order/*/id
/space/discr_order/*/id
+
/space/discr_order/*/id/*
(int
)/space/discr_order/*/id/*
+
/space/discr_order/*/order
(int
)/space/discr_order/*/order
+
/space/pressure_discr_order
(int
)/space/pressure_discr_order
+
Default: 1
/space/basis_type
(string
)/space/basis_type
+
Default: 'Lagrange'
Options: ['Lagrange', 'Spline', 'Serendipity']
/space/poly_basis_type
(string
)/space/poly_basis_type
+
Default: 'MFSHarmonic'
Options: ['MFSHarmonic', 'MeanValue', 'Wachspress']
/space/use_p_ref
(bool
)/space/use_p_ref
+
Default: False
/space/remesh
(object
)/space/remesh
+
Default: None
+
/space/remesh/enabled
(bool
)/space/remesh/enabled
+
Default: False
/space/remesh/split
(object
)/space/remesh/split
+
Default: None
+
/space/remesh/split/enabled
(bool
)/space/remesh/split/enabled
+
Default: True
/space/remesh/split/acceptance_tolerance
(float
)/space/remesh/split/acceptance_tolerance
+
Default: 0.001
Range: [0, inf]
/space/remesh/split/culling_threshold
(float
)/space/remesh/split/culling_threshold
+
Default: 0.95
Range: [0, 1]
/space/remesh/split/max_depth
(int
)/space/remesh/split/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/split/min_edge_length
(float
)/space/remesh/split/min_edge_length
+
Default: 1e-06
Range: [0, inf]
/space/remesh/collapse
(object
)/space/remesh/collapse
+
Default: None
+
/space/remesh/collapse/enabled
(bool
)/space/remesh/collapse/enabled
+
Default: True
/space/remesh/collapse/acceptance_tolerance
(float
)/space/remesh/collapse/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/collapse/culling_threshold
(float
)/space/remesh/collapse/culling_threshold
+
Default: 0.01
Range: [0, 1]
/space/remesh/collapse/max_depth
(int
)/space/remesh/collapse/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/collapse/rel_max_edge_length
(float
)/space/remesh/collapse/rel_max_edge_length
+
Default: 1
Range: [0, inf]
/space/remesh/collapse/abs_max_edge_length
(float
)/space/remesh/collapse/abs_max_edge_length
+
Default: 1e+100
Range: [0, inf]
/space/remesh/swap
(object
)/space/remesh/swap
+
Default: None
+
/space/remesh/swap/enabled
(bool
)/space/remesh/swap/enabled
+
Default: False
/space/remesh/swap/acceptance_tolerance
(float
)/space/remesh/swap/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/swap/max_depth
(int
)/space/remesh/swap/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/smooth
(object
)/space/remesh/smooth
+
Default: None
+
/space/remesh/smooth/enabled
(bool
)/space/remesh/smooth/enabled
+
Default: False
/space/remesh/smooth/acceptance_tolerance
(float
)/space/remesh/smooth/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/smooth/max_iters
(int
)/space/remesh/smooth/max_iters
+
Default: 1
Range: [1, inf]
/space/remesh/local_relaxation
(object
)/space/remesh/local_relaxation
+
Default: None
+
/space/remesh/local_relaxation/local_mesh_n_ring
(int
)/space/remesh/local_relaxation/local_mesh_n_ring
+
Default: 2
/space/remesh/local_relaxation/local_mesh_rel_area
(float
)/space/remesh/local_relaxation/local_mesh_rel_area
+
Default: 0.01
/space/remesh/local_relaxation/max_nl_iterations
(int
)/space/remesh/local_relaxation/max_nl_iterations
+
Default: 1
/space/remesh/type
(string
)/space/remesh/type
+
Default: 'physics'
Options: ['physics', 'sizing_field']
/space/advanced
(object
)/space/advanced
+
Default: None
+
/space/advanced/discr_order_max
(int
)/space/advanced/discr_order_max
+
Default: 4
/space/advanced/isoparametric
(bool
)/space/advanced/isoparametric
+
Default: False
/space/advanced/bc_method
(string
)/space/advanced/bc_method
+
Default: 'sample'
Options: ['lsq', 'sample']
/space/advanced/n_boundary_samples
(int
)/space/advanced/n_boundary_samples
+
Default: -1
/space/advanced/quadrature_order
(int
)/space/advanced/quadrature_order
+
Default: -1
/space/advanced/mass_quadrature_order
(int
)/space/advanced/mass_quadrature_order
+
Default: -1
/space/advanced/integral_constraints
(int
)/space/advanced/integral_constraints
+
Default: 2
/space/advanced/n_harmonic_samples
(int
)/space/advanced/n_harmonic_samples
+
Default: 10
/space/advanced/force_no_ref_for_harmonic
(bool
)/space/advanced/force_no_ref_for_harmonic
+
Default: False
/space/advanced/B
(int
)/space/advanced/B
+
Default: 3
/space/advanced/h1_formula
(bool
)/space/advanced/h1_formula
+
Default: False
/space/advanced/count_flipped_els
(bool
)/space/advanced/count_flipped_els
+
Default: True
/space/advanced/use_particle_advection
(bool
)/space/advanced/use_particle_advection
+
Default: False
/time
/time
+
t0
, end time tend
, time step dt
.
+Default: 'skip'
+
/time/tend
(float
)/time/tend
+
Range: [0, inf]
/time/dt
(float
)/time/dt
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
t0
, time step dt
, number of time steps.
+/time/time_steps
(int
)/time/time_steps
+
Range: [0, inf]
/time/dt
(float
)/time/dt
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
t0
, end time tend
, number of time steps.
+/time/time_steps
(int
)/time/time_steps
+
Range: [0, inf]
/time/tend
(float
)/time/tend
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
/contact
(object
)/contact
+
Default: None
+
/contact/enabled
(bool
)/contact/enabled
+
Default: False
/contact/dhat
(float
)/contact/dhat
+
Default: 0.001
Range: [0, inf]
/contact/dhat_percentage
(float
)/contact/dhat_percentage
+
Default: 0.8
/contact/epsv
(float
)/contact/epsv
+
Default: 0.001
Range: [0, inf]
/contact/friction_coefficient
(float
)/contact/friction_coefficient
+
Default: 0
/contact/use_convergent_formulation
(bool
)/contact/use_convergent_formulation
+
Default: False
/contact/collision_mesh
/contact/collision_mesh
+
Default: 'skip'
+
/contact/collision_mesh/mesh
(string
)/contact/collision_mesh/mesh
+
/contact/collision_mesh/linear_map
(string
)/contact/collision_mesh/linear_map
+
/contact/collision_mesh/enabled
(bool
)/contact/collision_mesh/enabled
+
Default: True
/contact/collision_mesh/max_edge_length
(float
)/contact/collision_mesh/max_edge_length
+
/contact/collision_mesh/tessellation_type
(string
)/contact/collision_mesh/tessellation_type
+
Default: 'regular'
Options: ['regular', 'irregular']
/contact/collision_mesh/enabled
(bool
)/contact/collision_mesh/enabled
+
Default: True
/contact/periodic
(bool
)/contact/periodic
+
Default: False
/solver
(object
)/solver
+
Default: None
+
/solver/max_threads
(int
)/solver/max_threads
+
Default: 0
Range: [0, inf]
/solver/linear
(object
)/solver/linear
+
Default: None
+
/solver/linear/enable_overwrite_solver
(bool
)/solver/linear/enable_overwrite_solver
+
Default: False
/solver/linear/solver
(string
)/solver/linear/solver
+
Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/linear/precond
(string
)/solver/linear/precond
+
Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/linear/Eigen::LeastSquaresConjugateGradient
(object
)/solver/linear/Eigen::LeastSquaresConjugateGradient
+
Default: None
+
/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
)/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
+
Default: 1000
/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
)/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
+
Default: 1e-12
/solver/linear/Eigen::DGMRES
(object
)/solver/linear/Eigen::DGMRES
+
Default: None
+
/solver/linear/Eigen::DGMRES/max_iter
(int
)/solver/linear/Eigen::DGMRES/max_iter
+
Default: 1000
/solver/linear/Eigen::DGMRES/tolerance
(float
)/solver/linear/Eigen::DGMRES/tolerance
+
Default: 1e-12
/solver/linear/Eigen::ConjugateGradient
(object
)/solver/linear/Eigen::ConjugateGradient
+
Default: None
+
/solver/linear/Eigen::ConjugateGradient/max_iter
(int
)/solver/linear/Eigen::ConjugateGradient/max_iter
+
Default: 1000
/solver/linear/Eigen::ConjugateGradient/tolerance
(float
)/solver/linear/Eigen::ConjugateGradient/tolerance
+
Default: 1e-12
/solver/linear/Eigen::BiCGSTAB
(object
)/solver/linear/Eigen::BiCGSTAB
+
Default: None
+
/solver/linear/Eigen::BiCGSTAB/max_iter
(int
)/solver/linear/Eigen::BiCGSTAB/max_iter
+
Default: 1000
/solver/linear/Eigen::BiCGSTAB/tolerance
(float
)/solver/linear/Eigen::BiCGSTAB/tolerance
+
Default: 1e-12
/solver/linear/Eigen::GMRES
(object
)/solver/linear/Eigen::GMRES
+
Default: None
+
/solver/linear/Eigen::GMRES/max_iter
(int
)/solver/linear/Eigen::GMRES/max_iter
+
Default: 1000
/solver/linear/Eigen::GMRES/tolerance
(float
)/solver/linear/Eigen::GMRES/tolerance
+
Default: 1e-12
/solver/linear/Eigen::MINRES
(object
)/solver/linear/Eigen::MINRES
+
Default: None
+
/solver/linear/Eigen::MINRES/max_iter
(int
)/solver/linear/Eigen::MINRES/max_iter
+
Default: 1000
/solver/linear/Eigen::MINRES/tolerance
(float
)/solver/linear/Eigen::MINRES/tolerance
+
Default: 1e-12
/solver/linear/Pardiso
(object
)/solver/linear/Pardiso
+
Default: None
+
/solver/linear/Pardiso/mtype
(int
)/solver/linear/Pardiso/mtype
+
Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/linear/Hypre
(object
)/solver/linear/Hypre
+
Default: None
+
/solver/linear/Hypre/max_iter
(int
)/solver/linear/Hypre/max_iter
+
Default: 1000
/solver/linear/Hypre/pre_max_iter
(int
)/solver/linear/Hypre/pre_max_iter
+
Default: 1
/solver/linear/Hypre/tolerance
(float
)/solver/linear/Hypre/tolerance
+
Default: 1e-10
/solver/linear/AMGCL
(object
)/solver/linear/AMGCL
+
Default: None
+
/solver/linear/AMGCL/solver
(object
)/solver/linear/AMGCL/solver
+
Default: None
+
/solver/linear/AMGCL/solver/tol
(float
)/solver/linear/AMGCL/solver/tol
+
Default: 1e-10
/solver/linear/AMGCL/solver/maxiter
(int
)/solver/linear/AMGCL/solver/maxiter
+
Default: 1000
/solver/linear/AMGCL/solver/type
(string
)/solver/linear/AMGCL/solver/type
+
Default: 'cg'
/solver/linear/AMGCL/precond
(object
)/solver/linear/AMGCL/precond
+
Default: None
+
/solver/linear/AMGCL/precond/relax
(object
)/solver/linear/AMGCL/precond/relax
+
Default: None
+
/solver/linear/AMGCL/precond/relax/degree
(int
)/solver/linear/AMGCL/precond/relax/degree
+
Default: 16
/solver/linear/AMGCL/precond/relax/type
(string
)/solver/linear/AMGCL/precond/relax/type
+
Default: 'chebyshev'
/solver/linear/AMGCL/precond/relax/power_iters
(int
)/solver/linear/AMGCL/precond/relax/power_iters
+
Default: 100
/solver/linear/AMGCL/precond/relax/higher
(float
)/solver/linear/AMGCL/precond/relax/higher
+
Default: 2
/solver/linear/AMGCL/precond/relax/lower
(float
)/solver/linear/AMGCL/precond/relax/lower
+
Default: 0.008333333333
/solver/linear/AMGCL/precond/relax/scale
(bool
)/solver/linear/AMGCL/precond/relax/scale
+
Default: True
/solver/linear/AMGCL/precond/class
(string
)/solver/linear/AMGCL/precond/class
+
Default: 'amg'
/solver/linear/AMGCL/precond/max_levels
(int
)/solver/linear/AMGCL/precond/max_levels
+
Default: 6
/solver/linear/AMGCL/precond/direct_coarse
(bool
)/solver/linear/AMGCL/precond/direct_coarse
+
Default: False
/solver/linear/AMGCL/precond/ncycle
(int
)/solver/linear/AMGCL/precond/ncycle
+
Default: 2
/solver/linear/AMGCL/precond/coarsening
(object
)/solver/linear/AMGCL/precond/coarsening
+
Default: None
+
/solver/linear/AMGCL/precond/coarsening/type
(string
)/solver/linear/AMGCL/precond/coarsening/type
+
Default: 'smoothed_aggregation'
/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
)/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
+
Default: True
/solver/linear/AMGCL/precond/coarsening/relax
(float
)/solver/linear/AMGCL/precond/coarsening/relax
+
Default: 1
/solver/linear/AMGCL/precond/coarsening/aggr
(object
)/solver/linear/AMGCL/precond/coarsening/aggr
+
Default: None
+
/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
)/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
+
Default: 0
/solver/adjoint_linear
(object
)/solver/adjoint_linear
+
Default: None
+
/solver/adjoint_linear/enable_overwrite_solver
(bool
)/solver/adjoint_linear/enable_overwrite_solver
+
Default: False
/solver/adjoint_linear/solver
(string
)/solver/adjoint_linear/solver
+
Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/adjoint_linear/precond
(string
)/solver/adjoint_linear/precond
+
Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
(object
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
+
Default: None
+
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::DGMRES
(object
)/solver/adjoint_linear/Eigen::DGMRES
+
Default: None
+
/solver/adjoint_linear/Eigen::DGMRES/max_iter
(int
)/solver/adjoint_linear/Eigen::DGMRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::DGMRES/tolerance
(float
)/solver/adjoint_linear/Eigen::DGMRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::ConjugateGradient
(object
)/solver/adjoint_linear/Eigen::ConjugateGradient
+
Default: None
+
/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
(int
)/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
(float
)/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::BiCGSTAB
(object
)/solver/adjoint_linear/Eigen::BiCGSTAB
+
Default: None
+
/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
(int
)/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
(float
)/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::GMRES
(object
)/solver/adjoint_linear/Eigen::GMRES
+
Default: None
+
/solver/adjoint_linear/Eigen::GMRES/max_iter
(int
)/solver/adjoint_linear/Eigen::GMRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::GMRES/tolerance
(float
)/solver/adjoint_linear/Eigen::GMRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::MINRES
(object
)/solver/adjoint_linear/Eigen::MINRES
+
Default: None
+
/solver/adjoint_linear/Eigen::MINRES/max_iter
(int
)/solver/adjoint_linear/Eigen::MINRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::MINRES/tolerance
(float
)/solver/adjoint_linear/Eigen::MINRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Pardiso
(object
)/solver/adjoint_linear/Pardiso
+
Default: None
+
/solver/adjoint_linear/Pardiso/mtype
(int
)/solver/adjoint_linear/Pardiso/mtype
+
Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/adjoint_linear/Hypre
(object
)/solver/adjoint_linear/Hypre
+
Default: None
+
/solver/adjoint_linear/Hypre/max_iter
(int
)/solver/adjoint_linear/Hypre/max_iter
+
Default: 1000
/solver/adjoint_linear/Hypre/pre_max_iter
(int
)/solver/adjoint_linear/Hypre/pre_max_iter
+
Default: 1
/solver/adjoint_linear/Hypre/tolerance
(float
)/solver/adjoint_linear/Hypre/tolerance
+
Default: 1e-10
/solver/adjoint_linear/AMGCL
(object
)/solver/adjoint_linear/AMGCL
+
Default: None
+
/solver/adjoint_linear/AMGCL/solver
(object
)/solver/adjoint_linear/AMGCL/solver
+
Default: None
+
/solver/adjoint_linear/AMGCL/solver/tol
(float
)/solver/adjoint_linear/AMGCL/solver/tol
+
Default: 1e-10
/solver/adjoint_linear/AMGCL/solver/maxiter
(int
)/solver/adjoint_linear/AMGCL/solver/maxiter
+
Default: 1000
/solver/adjoint_linear/AMGCL/solver/type
(string
)/solver/adjoint_linear/AMGCL/solver/type
+
Default: 'cg'
/solver/adjoint_linear/AMGCL/precond
(object
)/solver/adjoint_linear/AMGCL/precond
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/relax
(object
)/solver/adjoint_linear/AMGCL/precond/relax
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/relax/degree
(int
)/solver/adjoint_linear/AMGCL/precond/relax/degree
+
Default: 16
/solver/adjoint_linear/AMGCL/precond/relax/type
(string
)/solver/adjoint_linear/AMGCL/precond/relax/type
+
Default: 'chebyshev'
/solver/adjoint_linear/AMGCL/precond/relax/power_iters
(int
)/solver/adjoint_linear/AMGCL/precond/relax/power_iters
+
Default: 100
/solver/adjoint_linear/AMGCL/precond/relax/higher
(float
)/solver/adjoint_linear/AMGCL/precond/relax/higher
+
Default: 2
/solver/adjoint_linear/AMGCL/precond/relax/lower
(float
)/solver/adjoint_linear/AMGCL/precond/relax/lower
+
Default: 0.008333333333
/solver/adjoint_linear/AMGCL/precond/relax/scale
(bool
)/solver/adjoint_linear/AMGCL/precond/relax/scale
+
Default: True
/solver/adjoint_linear/AMGCL/precond/class
(string
)/solver/adjoint_linear/AMGCL/precond/class
+
Default: 'amg'
/solver/adjoint_linear/AMGCL/precond/max_levels
(int
)/solver/adjoint_linear/AMGCL/precond/max_levels
+
Default: 6
/solver/adjoint_linear/AMGCL/precond/direct_coarse
(bool
)/solver/adjoint_linear/AMGCL/precond/direct_coarse
+
Default: False
/solver/adjoint_linear/AMGCL/precond/ncycle
(int
)/solver/adjoint_linear/AMGCL/precond/ncycle
+
Default: 2
/solver/adjoint_linear/AMGCL/precond/coarsening
(object
)/solver/adjoint_linear/AMGCL/precond/coarsening
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/coarsening/type
(string
)/solver/adjoint_linear/AMGCL/precond/coarsening/type
+
Default: 'smoothed_aggregation'
/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
)/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
+
Default: True
/solver/adjoint_linear/AMGCL/precond/coarsening/relax
(float
)/solver/adjoint_linear/AMGCL/precond/coarsening/relax
+
Default: 1
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
(object
)/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
)/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
+
Default: 0
/solver/nonlinear
(object
)/solver/nonlinear
+
Default: None
+
/solver/nonlinear/solver
/solver/nonlinear/solver
+
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
/solver/nonlinear/solver/*
/solver/nonlinear/solver/*
+
Type: Newton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: ProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: RegularizedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: RegularizedProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseRegularizedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseRegularizedProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: GradientDescent +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/erase_component_probability
(float
)/solver/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
Type: L-BFGS +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/history_size
(int
)/solver/nonlinear/solver/*/history_size
+
Default: 6
Type: BFGS +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
)/solver/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
)/solver/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
)/solver/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
)/solver/nonlinear/solver/*/epsilon
+
Default: 1e-08
Type: StochasticADAM +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
)/solver/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
)/solver/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
)/solver/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
)/solver/nonlinear/solver/*/epsilon
+
Default: 1e-08
/solver/nonlinear/solver/*/erase_component_probability
(float
)/solver/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
/solver/nonlinear/x_delta
(float
)/solver/nonlinear/x_delta
+
Default: 0
Range: [0, inf]
/solver/nonlinear/grad_norm
(float
)/solver/nonlinear/grad_norm
+
Default: 1e-08
Range: [0, inf]
/solver/nonlinear/first_grad_norm_tol
(float
)/solver/nonlinear/first_grad_norm_tol
+
Default: 1e-10
/solver/nonlinear/max_iterations
(int
)/solver/nonlinear/max_iterations
+
Default: 500
/solver/nonlinear/iterations_per_strategy
/solver/nonlinear/iterations_per_strategy
+
Default: 5
/solver/nonlinear/iterations_per_strategy/*
(int
)/solver/nonlinear/iterations_per_strategy/*
+
Default: 5
/solver/nonlinear/line_search
(object
)/solver/nonlinear/line_search
+
Default: None
+
/solver/nonlinear/line_search/method
(string
)/solver/nonlinear/line_search/method
+
Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/nonlinear/line_search/use_grad_norm_tol
(float
)/solver/nonlinear/line_search/use_grad_norm_tol
+
Default: 1e-06
/solver/nonlinear/line_search/min_step_size
(float
)/solver/nonlinear/line_search/min_step_size
+
Default: 1e-10
/solver/nonlinear/line_search/max_step_size_iter
(int
)/solver/nonlinear/line_search/max_step_size_iter
+
Default: 30
/solver/nonlinear/line_search/min_step_size_final
(float
)/solver/nonlinear/line_search/min_step_size_final
+
Default: 1e-20
/solver/nonlinear/line_search/max_step_size_iter_final
(int
)/solver/nonlinear/line_search/max_step_size_iter_final
+
Default: 100
/solver/nonlinear/line_search/default_init_step_size
(float
)/solver/nonlinear/line_search/default_init_step_size
+
Default: 1
/solver/nonlinear/line_search/step_ratio
(float
)/solver/nonlinear/line_search/step_ratio
+
Default: 0.5
/solver/nonlinear/line_search/Armijo
(object
)/solver/nonlinear/line_search/Armijo
+
Default: None
+
/solver/nonlinear/line_search/Armijo/c
(float
)/solver/nonlinear/line_search/Armijo/c
+
Default: 0.0001
/solver/nonlinear/line_search/RobustArmijo
(object
)/solver/nonlinear/line_search/RobustArmijo
+
Default: None
+
/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
)/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
+
Default: 0.1
/solver/nonlinear/allow_out_of_iterations
(bool
)/solver/nonlinear/allow_out_of_iterations
+
Default: False
/solver/nonlinear/L-BFGS
(object
)/solver/nonlinear/L-BFGS
+
Default: None
+
/solver/nonlinear/L-BFGS/history_size
(int
)/solver/nonlinear/L-BFGS/history_size
+
Default: 6
/solver/nonlinear/L-BFGS-B
(object
)/solver/nonlinear/L-BFGS-B
+
Default: None
+
/solver/nonlinear/L-BFGS-B/history_size
(int
)/solver/nonlinear/L-BFGS-B/history_size
+
Default: 6
/solver/nonlinear/Newton
(object
)/solver/nonlinear/Newton
+
Default: None
+
/solver/nonlinear/Newton/residual_tolerance
(float
)/solver/nonlinear/Newton/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/Newton/reg_weight_min
(float
)/solver/nonlinear/Newton/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/Newton/reg_weight_max
(float
)/solver/nonlinear/Newton/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/Newton/reg_weight_inc
(float
)/solver/nonlinear/Newton/reg_weight_inc
+
Default: 10
/solver/nonlinear/Newton/force_psd_projection
(bool
)/solver/nonlinear/Newton/force_psd_projection
+
Default: False
/solver/nonlinear/Newton/use_psd_projection
(bool
)/solver/nonlinear/Newton/use_psd_projection
+
Default: True
/solver/nonlinear/Newton/use_psd_projection_in_regularized
(bool
)/solver/nonlinear/Newton/use_psd_projection_in_regularized
+
Default: True
/solver/nonlinear/ADAM
(object
)/solver/nonlinear/ADAM
+
Default: None
+
/solver/nonlinear/ADAM/alpha
(float
)/solver/nonlinear/ADAM/alpha
+
Default: 0.001
/solver/nonlinear/ADAM/beta_1
(float
)/solver/nonlinear/ADAM/beta_1
+
Default: 0.9
/solver/nonlinear/ADAM/beta_2
(float
)/solver/nonlinear/ADAM/beta_2
+
Default: 0.999
/solver/nonlinear/ADAM/epsilon
(float
)/solver/nonlinear/ADAM/epsilon
+
Default: 1e-08
/solver/nonlinear/StochasticADAM
(object
)/solver/nonlinear/StochasticADAM
+
Default: None
+
/solver/nonlinear/StochasticADAM/alpha
(float
)/solver/nonlinear/StochasticADAM/alpha
+
Default: 0.001
/solver/nonlinear/StochasticADAM/beta_1
(float
)/solver/nonlinear/StochasticADAM/beta_1
+
Default: 0.9
/solver/nonlinear/StochasticADAM/beta_2
(float
)/solver/nonlinear/StochasticADAM/beta_2
+
Default: 0.999
/solver/nonlinear/StochasticADAM/epsilon
(float
)/solver/nonlinear/StochasticADAM/epsilon
+
Default: 1e-08
/solver/nonlinear/StochasticADAM/erase_component_probability
(float
)/solver/nonlinear/StochasticADAM/erase_component_probability
+
Default: 0.3
/solver/nonlinear/StochasticGradientDescent
(object
)/solver/nonlinear/StochasticGradientDescent
+
Default: None
+
/solver/nonlinear/StochasticGradientDescent/erase_component_probability
(float
)/solver/nonlinear/StochasticGradientDescent/erase_component_probability
+
Default: 0.3
/solver/nonlinear/box_constraints
(object
)/solver/nonlinear/box_constraints
+
Default: None
+
/solver/nonlinear/box_constraints/bounds
(list
)/solver/nonlinear/box_constraints/bounds
+
/solver/nonlinear/box_constraints/bounds/*
/solver/nonlinear/box_constraints/bounds/*
+
/solver/nonlinear/box_constraints/bounds/*/*
(float
)/solver/nonlinear/box_constraints/bounds/*/*
+
/solver/nonlinear/box_constraints/max_change
/solver/nonlinear/box_constraints/max_change
+
Default: -1
/solver/nonlinear/box_constraints/max_change/*
(float
)/solver/nonlinear/box_constraints/max_change/*
+
/solver/nonlinear/advanced
(object
)/solver/nonlinear/advanced
+
Default: None
+
/solver/nonlinear/advanced/f_delta
(float
)/solver/nonlinear/advanced/f_delta
+
Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/f_delta_step_tol
(int
)/solver/nonlinear/advanced/f_delta_step_tol
+
Default: 100
/solver/nonlinear/advanced/derivative_along_delta_x_tol
(float
)/solver/nonlinear/advanced/derivative_along_delta_x_tol
+
Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/apply_gradient_fd
(string
)/solver/nonlinear/advanced/apply_gradient_fd
+
Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/nonlinear/advanced/gradient_fd_eps
(float
)/solver/nonlinear/advanced/gradient_fd_eps
+
Default: 1e-07
/solver/augmented_lagrangian
(object
)/solver/augmented_lagrangian
+
initial_weight
and, in case DBC cannot be imposed, we update a as a *= scaling
until max_weight
. See IPC additional material
+Default: None
+
/solver/augmented_lagrangian/initial_weight
(float
)/solver/augmented_lagrangian/initial_weight
+
Default: 1000000.0
Range: [0, inf]
/solver/augmented_lagrangian/scaling
(float
)/solver/augmented_lagrangian/scaling
+
Default: 2.0
/solver/augmented_lagrangian/max_weight
(float
)/solver/augmented_lagrangian/max_weight
+
Default: 100000000.0
/solver/augmented_lagrangian/eta
(float
)/solver/augmented_lagrangian/eta
+
Default: 0.99
Range: [0, 1]
/solver/augmented_lagrangian/nonlinear
(object
)/solver/augmented_lagrangian/nonlinear
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/solver
/solver/augmented_lagrangian/nonlinear/solver
+
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
/solver/augmented_lagrangian/nonlinear/solver/*
/solver/augmented_lagrangian/nonlinear/solver/*
+
Type: Newton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: ProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: RegularizedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: RegularizedProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseRegularizedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseRegularizedProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: GradientDescent +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
Type: L-BFGS +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/history_size
(int
)/solver/augmented_lagrangian/nonlinear/solver/*/history_size
+
Default: 6
Type: BFGS +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
+
Default: 1e-08
Type: StochasticADAM +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/x_delta
(float
)/solver/augmented_lagrangian/nonlinear/x_delta
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/grad_norm
(float
)/solver/augmented_lagrangian/nonlinear/grad_norm
+
Default: 1e-08
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
(float
)/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
+
Default: 1e-10
/solver/augmented_lagrangian/nonlinear/max_iterations
(int
)/solver/augmented_lagrangian/nonlinear/max_iterations
+
Default: 500
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
+
Default: 5
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
(int
)/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
+
Default: 5
/solver/augmented_lagrangian/nonlinear/line_search
(object
)/solver/augmented_lagrangian/nonlinear/line_search
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/method
(string
)/solver/augmented_lagrangian/nonlinear/line_search/method
+
Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
(float
)/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
+
Default: 1e-06
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
(float
)/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
+
Default: 1e-10
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
(int
)/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
+
Default: 30
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
(float
)/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
+
Default: 1e-20
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
(int
)/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
+
Default: 100
/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
(float
)/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
+
Default: 1
/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
(float
)/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
+
Default: 0.5
/solver/augmented_lagrangian/nonlinear/line_search/Armijo
(object
)/solver/augmented_lagrangian/nonlinear/line_search/Armijo
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
(float
)/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
+
Default: 0.0001
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
(object
)/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
+
Default: 0.1
/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
(bool
)/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
+
Default: False
/solver/augmented_lagrangian/nonlinear/L-BFGS
(object
)/solver/augmented_lagrangian/nonlinear/L-BFGS
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
(int
)/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
+
Default: 6
/solver/augmented_lagrangian/nonlinear/L-BFGS-B
(object
)/solver/augmented_lagrangian/nonlinear/L-BFGS-B
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
(int
)/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
+
Default: 6
/solver/augmented_lagrangian/nonlinear/Newton
(object
)/solver/augmented_lagrangian/nonlinear/Newton
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
+
Default: 10
/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
+
Default: False
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
+
Default: True
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
+
Default: True
/solver/augmented_lagrangian/nonlinear/ADAM
(object
)/solver/augmented_lagrangian/nonlinear/ADAM
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/ADAM/alpha
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM
(object
)/solver/augmented_lagrangian/nonlinear/StochasticADAM
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
(object
)/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/box_constraints
(object
)/solver/augmented_lagrangian/nonlinear/box_constraints
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
(list
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
+
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
+
Default: -1
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
+
/solver/augmented_lagrangian/nonlinear/advanced
(object
)/solver/augmented_lagrangian/nonlinear/advanced
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/advanced/f_delta
(float
)/solver/augmented_lagrangian/nonlinear/advanced/f_delta
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
(int
)/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
+
Default: 100
/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
(float
)/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
(string
)/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
+
Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
(float
)/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
+
Default: 1e-07
/solver/contact
(object
)/solver/contact
+
Default: None
+
/solver/contact/CCD
(object
)/solver/contact/CCD
+
Default: None
+
/solver/contact/CCD/broad_phase
(string
)/solver/contact/CCD/broad_phase
+
Default: 'hash_grid'
Options: ['hash_grid', 'HG', 'brute_force', 'BF', 'spatial_hash', 'SH', 'bvh', 'BVH', 'sweep_and_prune', 'SAP', 'sweep_and_tiniest_queue', 'STQ']
/solver/contact/CCD/tolerance
(float
)/solver/contact/CCD/tolerance
+
Default: 1e-06
/solver/contact/CCD/max_iterations
(int
)/solver/contact/CCD/max_iterations
+
Default: 1000000
/solver/contact/friction_iterations
(int
)/solver/contact/friction_iterations
+
Default: 1
/solver/contact/friction_convergence_tol
(float
)/solver/contact/friction_convergence_tol
+
Default: 0.01
/solver/contact/barrier_stiffness
/solver/contact/barrier_stiffness
+
Default: 'adaptive'
Options: ['adaptive']
/solver/rayleigh_damping
(list
)/solver/rayleigh_damping
+
/solver/rayleigh_damping/*
/solver/rayleigh_damping/*
+
/solver/rayleigh_damping/*/form
(string
)/solver/rayleigh_damping/*/form
+
Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness_ratio
(float
)/solver/rayleigh_damping/*/stiffness_ratio
+
Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
)/solver/rayleigh_damping/*/lagging_iterations
+
Default: 1
/solver/rayleigh_damping/*/form
(string
)/solver/rayleigh_damping/*/form
+
Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness
(float
)/solver/rayleigh_damping/*/stiffness
+
Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
)/solver/rayleigh_damping/*/lagging_iterations
+
Default: 1
/solver/advanced
(object
)/solver/advanced
+
Default: None
+
/solver/advanced/cache_size
(int
)/solver/advanced/cache_size
+
Default: 900000
/solver/advanced/lump_mass_matrix
(bool
)/solver/advanced/lump_mass_matrix
+
Default: False
/solver/advanced/lagged_regularization_weight
(float
)/solver/advanced/lagged_regularization_weight
+
Default: 0
/solver/advanced/lagged_regularization_iterations
(int
)/solver/advanced/lagged_regularization_iterations
+
Default: 1
/boundary_conditions
(object
)/boundary_conditions
+
Default: None
+
/boundary_conditions/rhs
/boundary_conditions/rhs
+
/boundary_conditions/rhs/value
/boundary_conditions/rhs/value
+
/boundary_conditions/rhs/unit
(string
)/boundary_conditions/rhs/unit
+
/boundary_conditions/rhs/*
/boundary_conditions/rhs/*
+
Default: 0
/boundary_conditions/rhs/*/value
/boundary_conditions/rhs/*/value
+
/boundary_conditions/rhs/*/unit
(string
)/boundary_conditions/rhs/*/unit
+
/boundary_conditions/dirichlet_boundary
(list
)/boundary_conditions/dirichlet_boundary
+
/boundary_conditions/dirichlet_boundary/*
/boundary_conditions/dirichlet_boundary/*
+
Default: None
+
/boundary_conditions/dirichlet_boundary/*/id
/boundary_conditions/dirichlet_boundary/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/dirichlet_boundary/*/value
(list
)/boundary_conditions/dirichlet_boundary/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*
/boundary_conditions/dirichlet_boundary/*/value/*
+
/boundary_conditions/dirichlet_boundary/*/value/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*/unit
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/unit
+
/boundary_conditions/dirichlet_boundary/*/value/*/*
/boundary_conditions/dirichlet_boundary/*/value/*/*
+
Default: 0
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
+
/boundary_conditions/dirichlet_boundary/*/time_reference
(list
)/boundary_conditions/dirichlet_boundary/*/time_reference
+
/boundary_conditions/dirichlet_boundary/*/time_reference/*
(float
)/boundary_conditions/dirichlet_boundary/*/time_reference/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*
/boundary_conditions/dirichlet_boundary/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/from
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/dirichlet_boundary/*/dimension
(list
)/boundary_conditions/dirichlet_boundary/*/dimension
+
/boundary_conditions/dirichlet_boundary/*/dimension/*
(bool
)/boundary_conditions/dirichlet_boundary/*/dimension/*
+
Default: True
/boundary_conditions/neumann_boundary
(list
)/boundary_conditions/neumann_boundary
+
/boundary_conditions/neumann_boundary/*
(object
)/boundary_conditions/neumann_boundary/*
+
Default: None
+
/boundary_conditions/neumann_boundary/*/id
/boundary_conditions/neumann_boundary/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/neumann_boundary/*/value
(list
)/boundary_conditions/neumann_boundary/*/value
+
/boundary_conditions/neumann_boundary/*/value/*
/boundary_conditions/neumann_boundary/*/value/*
+
/boundary_conditions/neumann_boundary/*/value/*/value
/boundary_conditions/neumann_boundary/*/value/*/value
+
/boundary_conditions/neumann_boundary/*/value/*/unit
(string
)/boundary_conditions/neumann_boundary/*/value/*/unit
+
/boundary_conditions/neumann_boundary/*/interpolation
(list
)/boundary_conditions/neumann_boundary/*/interpolation
+
/boundary_conditions/neumann_boundary/*/interpolation/*
/boundary_conditions/neumann_boundary/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/to
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/to
+
/boundary_conditions/neumann_boundary/*/interpolation/*/from
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/normal_aligned_neumann_boundary
(list
)/boundary_conditions/normal_aligned_neumann_boundary
+
/boundary_conditions/normal_aligned_neumann_boundary/*
(object
)/boundary_conditions/normal_aligned_neumann_boundary/*
+
Default: None
+
/boundary_conditions/normal_aligned_neumann_boundary/*/id
(int
)/boundary_conditions/normal_aligned_neumann_boundary/*/id
+
Range: [0, 2147483646]
/boundary_conditions/normal_aligned_neumann_boundary/*/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value
+
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
+
/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/pressure_boundary
(list
)/boundary_conditions/pressure_boundary
+
/boundary_conditions/pressure_boundary/*
(object
)/boundary_conditions/pressure_boundary/*
+
Default: None
+
/boundary_conditions/pressure_boundary/*/id
(int
)/boundary_conditions/pressure_boundary/*/id
+
Range: [0, 2147483646]
/boundary_conditions/pressure_boundary/*/value
/boundary_conditions/pressure_boundary/*/value
+
/boundary_conditions/pressure_boundary/*/value/value
/boundary_conditions/pressure_boundary/*/value/value
+
/boundary_conditions/pressure_boundary/*/value/unit
(string
)/boundary_conditions/pressure_boundary/*/value/unit
+
/boundary_conditions/pressure_boundary/*/value/*
/boundary_conditions/pressure_boundary/*/value/*
+
Default: 0
/boundary_conditions/pressure_boundary/*/value/*/value
/boundary_conditions/pressure_boundary/*/value/*/value
+
/boundary_conditions/pressure_boundary/*/value/*/unit
(string
)/boundary_conditions/pressure_boundary/*/value/*/unit
+
/boundary_conditions/pressure_boundary/*/time_reference
(list
)/boundary_conditions/pressure_boundary/*/time_reference
+
/boundary_conditions/pressure_boundary/*/time_reference/*
(float
)/boundary_conditions/pressure_boundary/*/time_reference/*
+
/boundary_conditions/pressure_cavity
(list
)/boundary_conditions/pressure_cavity
+
/boundary_conditions/pressure_cavity/*
(object
)/boundary_conditions/pressure_cavity/*
+
Default: None
+
/boundary_conditions/pressure_cavity/*/id
(int
)/boundary_conditions/pressure_cavity/*/id
+
Range: [0, 2147483646]
/boundary_conditions/pressure_cavity/*/value
/boundary_conditions/pressure_cavity/*/value
+
/boundary_conditions/pressure_cavity/*/value/value
/boundary_conditions/pressure_cavity/*/value/value
+
/boundary_conditions/pressure_cavity/*/value/unit
(string
)/boundary_conditions/pressure_cavity/*/value/unit
+
/boundary_conditions/obstacle_displacements
(list
)/boundary_conditions/obstacle_displacements
+
/boundary_conditions/obstacle_displacements/*
(object
)/boundary_conditions/obstacle_displacements/*
+
Default: None
+
/boundary_conditions/obstacle_displacements/*/id
/boundary_conditions/obstacle_displacements/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/obstacle_displacements/*/value
(list
)/boundary_conditions/obstacle_displacements/*/value
+
/boundary_conditions/obstacle_displacements/*/value/*
/boundary_conditions/obstacle_displacements/*/value/*
+
/boundary_conditions/obstacle_displacements/*/value/*/value
/boundary_conditions/obstacle_displacements/*/value/*/value
+
/boundary_conditions/obstacle_displacements/*/value/*/unit
(string
)/boundary_conditions/obstacle_displacements/*/value/*/unit
+
/boundary_conditions/obstacle_displacements/*/interpolation
(list
)/boundary_conditions/obstacle_displacements/*/interpolation
+
/boundary_conditions/obstacle_displacements/*/interpolation/*
/boundary_conditions/obstacle_displacements/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/to
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/to
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/from
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/periodic_boundary
(object
)/boundary_conditions/periodic_boundary
+
Default: None
+
/boundary_conditions/periodic_boundary/enabled
(bool
)/boundary_conditions/periodic_boundary/enabled
+
Default: False
/boundary_conditions/periodic_boundary/tolerance
(float
)/boundary_conditions/periodic_boundary/tolerance
+
Default: 1e-05
/boundary_conditions/periodic_boundary/correspondence
(list
)/boundary_conditions/periodic_boundary/correspondence
+
/boundary_conditions/periodic_boundary/correspondence/*
(list
)/boundary_conditions/periodic_boundary/correspondence/*
+
/boundary_conditions/periodic_boundary/correspondence/*/*
(float
)/boundary_conditions/periodic_boundary/correspondence/*/*
+
/boundary_conditions/periodic_boundary/linear_displacement_offset
(list
)/boundary_conditions/periodic_boundary/linear_displacement_offset
+
/boundary_conditions/periodic_boundary/linear_displacement_offset/*
(list
)/boundary_conditions/periodic_boundary/linear_displacement_offset/*
+
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
+
/boundary_conditions/periodic_boundary/fixed_macro_strain
(list
)/boundary_conditions/periodic_boundary/fixed_macro_strain
+
/boundary_conditions/periodic_boundary/fixed_macro_strain/*
(int
)/boundary_conditions/periodic_boundary/fixed_macro_strain/*
+
/boundary_conditions/periodic_boundary/force_zero_mean
(bool
)/boundary_conditions/periodic_boundary/force_zero_mean
+
Default: False
/initial_conditions
(object
)/initial_conditions
+
Default: None
+
/initial_conditions/solution
(list
)/initial_conditions/solution
+
/initial_conditions/solution/*
(object
)/initial_conditions/solution/*
+
Default: None
+
/initial_conditions/solution/*/id
(int
)/initial_conditions/solution/*/id
+
/initial_conditions/solution/*/value
(list
)/initial_conditions/solution/*/value
+
/initial_conditions/solution/*/value/*
/initial_conditions/solution/*/value/*
+
/initial_conditions/solution/*/value/*/value
/initial_conditions/solution/*/value/*/value
+
/initial_conditions/solution/*/value/*/unit
(string
)/initial_conditions/solution/*/value/*/unit
+
/initial_conditions/velocity
(list
)/initial_conditions/velocity
+
/initial_conditions/velocity/*
(object
)/initial_conditions/velocity/*
+
Default: None
+
/initial_conditions/velocity/*/id
(int
)/initial_conditions/velocity/*/id
+
/initial_conditions/velocity/*/value
(list
)/initial_conditions/velocity/*/value
+
/initial_conditions/velocity/*/value/*
/initial_conditions/velocity/*/value/*
+
/initial_conditions/velocity/*/value/*/value
/initial_conditions/velocity/*/value/*/value
+
/initial_conditions/velocity/*/value/*/unit
(string
)/initial_conditions/velocity/*/value/*/unit
+
/initial_conditions/acceleration
(list
)/initial_conditions/acceleration
+
/initial_conditions/acceleration/*
(object
)/initial_conditions/acceleration/*
+
Default: None
+
/initial_conditions/acceleration/*/id
(int
)/initial_conditions/acceleration/*/id
+
/initial_conditions/acceleration/*/value
(list
)/initial_conditions/acceleration/*/value
+
/initial_conditions/acceleration/*/value/*
/initial_conditions/acceleration/*/value/*
+
/initial_conditions/acceleration/*/value/*/value
/initial_conditions/acceleration/*/value/*/value
+
/initial_conditions/acceleration/*/value/*/unit
(string
)/initial_conditions/acceleration/*/value/*/unit
+
/output
(object
)/output
+
Default: None
+
/output/directory
(string
)/output/directory
+
Default: ''
/output/log
(object
)/output/log
+
Default: None
+
/output/log/level
/output/log/level
+
Range: [0, 6]
Default: 'debug'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/file_level
/output/log/file_level
+
Range: [0, 6]
Default: 'trace'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/path
(string
)/output/log/path
+
Default: ''
/output/log/quiet
(bool
)/output/log/quiet
+
Default: False
/output/json
(string
)/output/json
+
Default: ''
/output/restart_json
(string
)/output/restart_json
+
Default: ''
/output/paraview
(object
)/output/paraview
+
Default: None
+
/output/paraview/file_name
(string
)/output/paraview/file_name
+
Default: ''
/output/paraview/vismesh_rel_area
(float
)/output/paraview/vismesh_rel_area
+
Default: 1e-05
/output/paraview/skip_frame
(int
)/output/paraview/skip_frame
+
Default: 1
/output/paraview/high_order_mesh
(bool
)/output/paraview/high_order_mesh
+
Default: True
/output/paraview/volume
(bool
)/output/paraview/volume
+
Default: True
/output/paraview/surface
(bool
)/output/paraview/surface
+
Default: False
/output/paraview/wireframe
(bool
)/output/paraview/wireframe
+
Default: False
/output/paraview/points
(bool
)/output/paraview/points
+
Default: False
/output/paraview/options
(object
)/output/paraview/options
+
Default: None
+
/output/paraview/options/use_hdf5
(bool
)/output/paraview/options/use_hdf5
+
Default: False
/output/paraview/options/material
(bool
)/output/paraview/options/material
+
Default: False
/output/paraview/options/body_ids
(bool
)/output/paraview/options/body_ids
+
Default: False
/output/paraview/options/contact_forces
(bool
)/output/paraview/options/contact_forces
+
Default: False
/output/paraview/options/friction_forces
(bool
)/output/paraview/options/friction_forces
+
Default: False
/output/paraview/options/velocity
(bool
)/output/paraview/options/velocity
+
Default: False
/output/paraview/options/acceleration
(bool
)/output/paraview/options/acceleration
+
Default: False
/output/paraview/options/scalar_values
(bool
)/output/paraview/options/scalar_values
+
Default: True
/output/paraview/options/tensor_values
(bool
)/output/paraview/options/tensor_values
+
Default: True
/output/paraview/options/discretization_order
(bool
)/output/paraview/options/discretization_order
+
Default: True
/output/paraview/options/nodes
(bool
)/output/paraview/options/nodes
+
Default: True
/output/paraview/options/forces
(bool
)/output/paraview/options/forces
+
Default: False
/output/data
(object
)/output/data
+
Default: None
+
/output/data/solution
(string
)/output/data/solution
+
Default: ''
/output/data/full_mat
(string
)/output/data/full_mat
+
Default: ''
/output/data/stiffness_mat
(string
)/output/data/stiffness_mat
+
Default: ''
/output/data/stress_mat
(string
)/output/data/stress_mat
+
Default: ''
/output/data/state
(string
)/output/data/state
+
Default: ''
/output/data/rest_mesh
(string
)/output/data/rest_mesh
+
Default: ''
/output/data/mises
(string
)/output/data/mises
+
Default: ''
/output/data/nodes
(string
)/output/data/nodes
+
Default: ''
/output/data/advanced
(object
)/output/data/advanced
+
Default: None
+
/output/data/advanced/reorder_nodes
(bool
)/output/data/advanced/reorder_nodes
+
Default: False
/output/advanced
(object
)/output/advanced
+
Default: None
+
/output/advanced/timestep_prefix
(string
)/output/advanced/timestep_prefix
+
Default: 'step_'
/output/advanced/sol_on_grid
(float
)/output/advanced/sol_on_grid
+
Default: -1
/output/advanced/compute_error
(bool
)/output/advanced/compute_error
+
Default: True
/output/advanced/sol_at_node
(int
)/output/advanced/sol_at_node
+
Default: -1
/output/advanced/vis_boundary_only
(bool
)/output/advanced/vis_boundary_only
+
Default: False
/output/advanced/curved_mesh_size
(bool
)/output/advanced/curved_mesh_size
+
Default: False
/output/advanced/save_solve_sequence_debug
(bool
)/output/advanced/save_solve_sequence_debug
+
Default: False
/output/advanced/save_ccd_debug_meshes
(bool
)/output/advanced/save_ccd_debug_meshes
+
Default: False
/output/advanced/save_time_sequence
(bool
)/output/advanced/save_time_sequence
+
Default: True
/output/advanced/save_nl_solve_sequence
(bool
)/output/advanced/save_nl_solve_sequence
+
Default: False
/output/advanced/spectrum
(bool
)/output/advanced/spectrum
+
Default: False
/output/reference
(object
)/output/reference
+
Default: None
+
/output/reference/solution
(list
)/output/reference/solution
+
/output/reference/solution/*
(string
)/output/reference/solution/*
+
Default: ''
/output/reference/gradient
(list
)/output/reference/gradient
+
/output/reference/gradient/*
(string
)/output/reference/gradient/*
+
Default: ''
/input
(object
)/input
+
Default: None
+
/input/data
(object
)/input/data
+
Default: None
+
/input/data/state
(file
)/input/data/state
+
Default: ''
/input/data/reorder
(bool
)/input/data/reorder
+
Default: False
/tests
(object
)/tests
+
Default: None
+
/tests/err_h1
(float
)/tests/err_h1
+
Default: 0
/tests/err_h1_semi
(float
)/tests/err_h1_semi
+
Default: 0
/tests/err_l2
(float
)/tests/err_l2
+
Default: 0
/tests/err_linf
(float
)/tests/err_linf
+
Default: 0
/tests/err_linf_grad
(float
)/tests/err_linf_grad
+
Default: 0
/tests/err_lp
(float
)/tests/err_lp
+
Default: 0
/tests/margin
(float
)/tests/margin
+
Default: 1e-05
/tests/time_steps
/tests/time_steps
+
Default: 1
Range: [1, inf]
Options: ['all', 'static']
PolyFEM in C++ uses modern CMake and is cross-platform.
+All the C++ dependencies required to build the code are automatically downloaded through CMake. We test PolyFEM on macOS, Linux, and Windows, and it should build out-of-the-box with CMake:
+mkdir build
+cd build
+cmake ..
+make -j4
+
Optionally, the formulas for higher-order bases can be computed at CMake time using a Python script. If you choose to do so, PolyFEM requires a working installation of Python and some additional packages to build correctly:
+numpy
and sympy
(optional)quadpy
(optional)The main executable, ./PolyFEM_bin
, can as command-line interface. Simply run:
./PolyFEM_bin --help
+
More detailed documentation can be found in the tutorial.
+ +PolyFEM uses Incremental Potential Contact (IPC) [Li et al. 2020] to handle contacts.
+IPC in PolyFEM is implemented through the use of the IPC Toolkit.
+Todo
+Describe the IPC formulation and parameters.
+The following formulations are available in the PolyFEM list of possible formulations. The constants can be set in params
. All formulations support boundary conditions. For the elasticity formulations we output:
Cauchy stress tensor
+Frist Piola Kirchhoff stress tensor (Wikipedia)
+Second Piola Kirchhoff stress tensor (Wikipedia)
+where \(\Psi\) is the energy density, \(F\) the deformation gradient, and \(J=\det(F)\).
+E
/nu
, lambda
/mu
elasticity_tensor
, E
/nu
, lambda
/mu
where \(C\) is the elasticity tensor
+E
/nu
, lambda
/mu
elasticity_tensor
, E
/nu
, lambda
/mu
where \(C\) is the elasticity tensor
+E
/nu
, lambda
/mu
c1
/c2
/k=1
where \(d\) is the dimension (2 or 3),
+c
/m
/k
where \(N\), the number of terms, is dictated by the number of coefficients given, \(d\) is the dimension (2 or 3), \(J = \det(F)\) where \(F = \nabla u + I\), and \(\tilde{\lambda}_j = J^{-\frac{1}{d}}\lambda_j\) are the eigenvalues of \(\tilde{F}\) (same as in the Mooney-Rivlin Elasticity).
+ + +mus
/alphas
/Ds
where \(N\), the number of terms, is dictated by the number of coefficients given, \(d\) is the dimension (2 or 3), \(J = \det(F)\) where \(F = \nabla u + I\), and \(\tilde{\lambda}_j = J^{-\frac{1}{d}}\lambda_j\) where \(\lambda_j\) are the eigenvalues of \(F.\)
+ + +phi
/psi
where \(F[u] = \nabla u + I\) and \(E[u] = \frac{1}{2}(F^TF-I)\).
+The above corresponds to the viscous Piola-Kirchhoff stress
+viscosity
(\(\nu\))viscosity
(\(\nu\))Todo
+Describe how to implement a new formulation in C++.
+The nonlinear solver will log a debug message per iteration with some useful information. Take the following example log:
+[polyfem] [debug] [Newton] iter=51 f=-1.06006e-06 ||∇f||=0.006432 ||Δx||=0.0037612 Δx⋅∇f(x)=-6.71732e-08 g=9.69072e-05 tol=1e-05 rate=0.0321861 ||step||=0.000121058
+
The terms in order they appear are:
+iter
: the iteration numberf
: the value of the objective function||∇f||
: the \(L^2\)-norm of the gradient of f
||Δx||
: the \(L^2\)-norm of the update direction to our optimization variables (e.g., displacements/positions for elasticity)Δx⋅∇f(x)
: the dot product between these values (this is a measure of how much progress we can expect the optimization can make)g
: the convergence criteria (i.e., the optimization stops when g < tol
); this depends on the choice of "useGradNorm"
solver parameter (for more information see here)tol
: the convergence criteria tolerancerate
: the step size the line-search produced (i.e. \(x_{i+1} = x_i + \text{rate} * \Delta x\))||step||
: the L2 norm of the step (i.e. \(\|\text{rate} * \Delta x\| = \text{rate} * \|\Delta x\|\))Each problem has a specific set of optional problem_params
described here.
"rhs": 3 // Rhs of the problem
+"dirichlet_boundary": [ // List of Dirichlet boundaries
+{
+ "id": 1, // Boundary id
+ "value": 0 // Boundary value
+},
+{
+ "id": 2, // Boundary id
+ "value": "sin(x)+y" // Formulas are supported
+}],
+"neumann_boundary": [ // List of Neumann boundaries
+{
+ "id": 3, // Boundary id
+ "value": 1, // Boundary value
+},
+{
+ "id": 4, // Boundary id
+ "value": "x^2" // Formulas are supported
+}]
+
"rhs": [1, 2, 3] // Rhs of the problem
+"dirichlet_boundary": [ // List of Dirichelt boundaries
+{
+ "id": 1, // Boundary id
+ "value": [0, 0, 0], // Boundary vector value
+ "dimension": [ // Which dimension are Dirichelt
+ true,
+ true,
+ false // In this case z is free
+ ]
+},
+{
+ "id": 2, // Boundary id
+ "value": ["sin(x)+y", "z^2", 0] // Formulas are supported
+}],
+"neumann_boundary": [ // List of Neumann boundaries
+{
+ "id": 3, // Boundary id
+ "value": [0, 0, 0] // Boundary vector value
+},
+{
+ "id": 4, // Boundary id
+ "value": ["sin(z)+y", "z^2", 0] // Formulas are supported
+}],
+"is_time_dependent": false,
+"initial_solution": [0, 0, 0],
+"initial_velocity": [0, 0, 0],
+"initial_acceleration": [0, 0, 0]
+
n_kernels
kernels placed on the bounding box at kernel_distance
n_kernels
sets the number of kernels, kernel_distance
sets the distance from the bounding box"scaling": 1, // Scaling factor
+"rhs": 0, // Right-hand side
+"translation": [0, 0, 0] // Translation
+"boundary_ids": [ // List of Dirichelt boundaries
+{
+ "id": 1, // Boundary id
+ "value": [0, 0, 0] // Boundary vector value
+},
+{
+ "id": 2,
+ "value": { // Rbf interpolated value
+ "function": "", // Function file
+ "points": "", // Points file
+ "rbf": "gaussian", // Rbf kernel
+ "epsilon": 1.5, // Rbf epsilon
+ "coordinate": 2, // Coordinate to ignore
+
+ "dimension": [ // Which dimension are Dirichlet
+ true,
+ true,
+ false // In this case z is free
+ ]
+ }
+},
+{
+ "id": 2,
+ "value": { // Rbf interpolated value
+ "function": "", // Function file
+ "points": "", // Points file
+ "triangles": "", // Triangles file
+ "coordinate": 2, // Coordinate to ignore
+ }
+}]
+
fixed_boundary
fixed (zero displacement), turning_boundary
rotating around axis_coordiante
for n_turns
fixed_boundary
id of the fixed boundary, turning_boundary
id of the moving boundary, axis_coordiante
coordinate of the rotating axis, n_turns
number of turnsPolyFEM offers several linear solver options based on compilation options. For more information, see PolySolve a stand-alone linear solver wrapper library used by PolyFEM.
+Options: AMGCL
, Eigen::BiCGSTAB
, Eigen::CholmodSupernodalLLT
, Eigen::ConjugateGradient
, Eigen::DGMRES
, Eigen::GMRES
, Eigen::LeastSquaresConjugateGradient
, Eigen::MINRES
, Eigen::PardisoLDLT
, Eigen::PardisoLU
, Eigen::SimplicialLDLT
, Eigen::SparseLU
, Eigen::UmfPackLU
, Hypre
, Pardiso
To solve nonlinear formulations, PolyFEM offers two options: Newton’s method (newton
) and L-BFGS (lbfgs
).
The settings for the solver are stored inside the field "nonlinear"
. General settings include:
"grad_norm"
(default: 1e-8
): convergence tolerance on the norm (\(L^2\)) of the gradient"nl_iterations"
(default: 1000
): maximum number of iterations to spend solving"use_grad_norm"
(default: true
): whether to use the gradient norm or update direction norm for convergence checksA (projected) Newton’s method with line search.
+A quasi-Newton method, L-BFGS requires more iterations than the full Newton’s method but avoids expensive linear solves.
+Reference: https://en.wikipedia.org/wiki/Limited-memory_BFGS
+Acknowledgments: The L-BFGS solver is implemented using the LBFGS++ library.
Todo
+Describe line-search and its purpose.
+Todo
+Describe this method and its parameters.
+Todo
+Describe this method and its parameters.
+Todo
+Describe this method and its parameters.
+Todo
+Describe this method and its parameters.
+where \(h\) is the time step size.
+beta
, gamma
where \(h\) is the time step size and by default \(\gamma = 0.5\) and \(\beta = 0.25\).
+Note
+This is equivalent to the Trapezoidal rule for \(\gamma = 0.5\) and \(\beta = 0.25\).
+num_steps
where \(h\) is the time step size, the coefficients \(\alpha_i\) and \(\beta\) are choosen to make the method \(n\)-th order accurate, and \(n \in \{1, \ldots, 6\}\) is the number of previous steps to consider (default: num_steps=1
). This is equivalent to implicit Euler for \(n=1\).
+To initialize the values for \(i > 0\), the method starts from \(n=1\) and successively builds the history, increasing \(n\) by 1 until the \(n\)-th step. However, we know this can result in less than order \(n\) accuracy [Nishikawa 2019].
A polyvalent C++ and Python FEM library.
+ +PolyFEM is a simple C++ and Python finite element library. We provide a wide set of common PDEs including:
+PolyFEM simplicity lies in the interface: just pick a problem, select some boundary condition, and solve. No need to construct complicated function spaces, or learn a new scripting language: everything is set-up trough a JSON interface or through the Setting class in python.
+For instance, PolyFEM seamlessly integrates quad/hexes and tri/tets of order up to 4, and integrates state-of-the-art techniques such as the adaptive \(p\)-refinement presented in “Decoupling Simulation Accuracy from Mesh Quality” or the spline and polygonal bases in “Poly-Spline Finite-Element Method”.
+The library is actively used in our research so expect frequent updates, fixes, and new features!
+For more details refer to the C++ section
+All the C++ dependencies required to build the code are included. It should work on Windows, macOS, and Linux, and it should build out-of-the-box with CMake:
+mkdir build
+cd build
+cmake ..
+make -j4
+
The main executable, ./PolyFEM_bin
, can be called as a command-line interface. Simply run:
./PolyFEM_bin --help
+
For more details refer to the Python section
+We are making efforts to provide a simple python interface to Polyfem.
+For doing so, we are maintaining a conda package that can be easily installed https://anaconda.org/conda-forge/polyfempy.
+conda install -c conda-forge polyfempy
+
Simply import the package!
+import polyfempy
+
PolyFEM heavily depends on external libraries for solving linear systems. If you need a linear system wrapper based on Eigen (but do not need the finite element setup) you use PolySolve.
+If you use PolyFEM in your project, please consider citing our work:
+@misc{polyfem,
+ author = {Teseo Schneider and Jérémie Dumas and Xifeng Gao and Denis Zorin and Daniele Panozzo},
+ title = {{PolyFEM}},
+ howpublished = "\url{https://polyfem.github.io/}",
+ year = {2019},
+}
+
@article{Schneider:2019:PFM,
+ author = {Schneider, Teseo and Dumas, J{\'e}r{\'e}mie and Gao, Xifeng and Botsch, Mario and Panozzo, Daniele and Zorin, Denis},
+ title = {Poly-Spline Finite-Element Method},
+ journal = {ACM Trans. Graph.},
+ volume = {38},
+ number = {3},
+ month = mar,
+ year = {2019},
+ url = {http://doi.acm.org/10.1145/3313797},
+ publisher = {ACM}
+}
+
@article{Schneider:2018:DSA,
+ author = {Teseo Schneider and Yixin Hu and Jérémie Dumas and Xifeng Gao and Daniele Panozzo and Denis Zorin},
+ journal = {ACM Transactions on Graphics},
+ link = {},
+ month = {10},
+ number = {6},
+ publisher = {Association for Computing Machinery (ACM)},
+ title = {Decoupling Simulation Accuracy from Mesh Quality},
+ volume = {37},
+ year = {2018}
+}
+
The software is being developed in the Geometric Computing Lab at NYU Courant Institute of Mathematical Sciences and the University of Victoria, Canada.
+This work was partially supported by:
+The code of PolyFEM itself is licensed under MIT License. However, please be mindful of third-party libraries which are used by PolyFEM and may be available under a different license.
+ +PolyFEM_bin
expects as input a JSON file containing the setup and parameters of the problem you wish to solve. A basic example of such a file is as follows:
{
+ "common": "", // path to another JSON file containing default arguments on which to patch these arguments
+
+ "geometry": [{
+ "mesh": "" // mesh path (absolute or relative to JSON file)
+ }],
+
+ "time": { // time-dependent problem
+ "tend": 1, // end time
+ "dt": 0.1, // time step size
+ "time_steps": 10, // (alternativly) number of time steps
+ "integrator": "ImplicitEuler" // time integration method
+ },
+
+ "contact": {
+ "enabled": true // enable contact handling
+ },
+
+ "solver": {
+ "linear": {
+ "solver": "Eigen::PardisoLDLT"
+ },
+ "nonlinear": {
+ "line_search": {
+ "method": "backtracking"
+ },
+ "solver": "newton"
+ }
+ },
+
+ // Material parameter
+ "materials": {
+ "type": "NeoHookean", // material model
+ "E": 1.5, // Young's modulus
+ "nu": 0.3, // Poisson ratio
+ "rho": 1 // density
+ },
+
+ "output": {
+ "json": "sim.json", // output statistics
+ "paraview": { // output geometry as paraview VTU files
+ "file_name": "sim.pvd",
+ "options": {
+ "material": true, // save material properties
+ "body_ids": true // save body ids
+ },
+ "vismesh_rel_area": 1e-05 // relative area for upsampling the solution
+ }
+ }
+}
+
Options:
Helmholtz
, Laplacian
, Bilaplacian
(mixed)HookeLinearElasticity
, LinearElasticity
, NeoHookean
, SaintVenant
, IncompressibleLinearElasticity
(mixed), Stokes
(mixed), NavierStokes
(mixed)Each formulation has a set of material parameters that can be set alongside it in materials
.
See formulations for more details.
+ + +Options: ImplicitEuler
, ImplicitNewmark
, BDF
The parameters for the time integration are stored inside the "time_integrator_params"
field.
See time integrators for more details.
+PolyFEM offers several linear solver options based on compilation options. For more information, see PolySolve a stand-alone linear solver wrapper library used by PolyFEM.
+Options: AMGCL
, Eigen::BiCGSTAB
, Eigen::CholmodSupernodalLLT
, Eigen::ConjugateGradient
, Eigen::DGMRES
, Eigen::GMRES
, Eigen::LeastSquaresConjugateGradient
, Eigen::MINRES
, Eigen::PardisoLDLT
, Eigen::PardisoLU
, Eigen::SimplicialLDLT
, Eigen::SparseLU
, Eigen::UmfPackLU
, Hypre
, Pardiso
Options: newton
, lbfgs
See solvers for more details.
+Options: backtracking
, armijo
, armijo_alt
, more_thuente
See solvers for more details.
+"contact": {
+ "has_collision": false, // Enable collision detection
+ "dhat": 0.03, // Barrier activation distance, check IPC paper
+ "mu": 0.0, // Coefficient of friction (0 disables friction)
+ "epsv": 1e-3, // Smoothing parameter for the transition between static and dynamic friction
+ "friction_iterations": 1, // Friction lagging iterations (0 disables friction and < 0 indicates unlimited iterations)
+ "friction_convergence_tol": 1e-2, // Friction lagging convergence tolerance
+ "barrier_stiffness": "adaptive",
+}
+
+"solver": {
+ "contact": {
+ "broad_phase_method": "hash_grid",
+ "ccd_tolerance": 1e-6,
+ "ccd_max_iterations": 1e6
+ }
+},
+
See contact for more details.
+"geometry": [{
+ "mesh": " ", // Mesh path (absolute or relative to JSON file)
+ "enabled": true,
+
+ "transformation": {
+ "scale": [1, 1, 1],
+ "rotation": [0, 0, 0],
+ "rotation_mode": "xyz",
+ "translation": [0, 0, 0]
+ },
+
+ "surface_selection": [],
+ "volume_selection": [],
+
+ "is_obstacle": false
+}],
+
The path to the mesh file (absolute or relative to JSON file).
+A boolean for enabling the body. By default, bodies are enabled.
+A pre-transform is applied to the geometry at load. The order of the transformation is scale, rotate, then translate.
+The "scale"
field encodes a scaling of the mesh. This can either be a single number for uniform scaling or an array of \(d\) numbers for scaling in each axis.
Alternatively, the "dimensions"
field encodes the absolute size of the mesh’s axis-aligned bounding box. This should be an array of \(d\) numbers for the dimensions of each axis. This is equivalent to using a scale of dimensions / initial_dimensions
where nonfinite values are replaced by 1
. If the "dimensions"
field is present, the "scale"
field is ignored.
The "rotation"
field encodes a rotation around the mesh’s origin. The rotation can either be a single number or an array of numbers depending on the "rotation_mode"
.
The "rotation_mode"
field indicates how the "rotation"
is represented. The options are:
"axis_angle"
: The "rotation"
must be an array of four numbers where the first number is the angle of rotation in degrees and the last three are the axis of rotation. The axis will be normalized."quaternion"
: The "rotation"
must be an array of four numbers which represent a quaternion \(w + xi + yj + zk\). The order of "rotation"
is [x, y, z, w]
. The quaternion will be normalized."rotation_vector"
: The "rotation"
must be an array of three numbers whose magnitude is the angle of rotation in degrees and the normalized version is the axis of rotation.r"[xyz]+"
: Indicates the "rotation"
is a series of Euler angle rotations in degrees. The "rotation"
can be either a number or variable-length array as long as the length matches the rotation mode string’s length. The Euler rotations will be applied in the order of the string (from left to right).The default "rotation_mode"
is "xyz"
which indicates an Euler angle rotation in the order x
, y
, and then z
.
The "translation"
field encodes a translation of the mesh. This must be an array of length \(d\), the dimension of the scene.
Either
+* a single number for a selection ID to apply to all surfaces in the mesh,
+* a file path containing one ID per surface element, or
+* a single or list of selection objects used to assign a given "id"
(see selections).
Same as surface selection, but for assigning IDs to the volume elements of the mesh.
+Obstacles serve as a way of specifying non-simulated collision objects.
+The path to the mesh file (absolute or relative to JSON file). In addition to the standard volumetric meshes supported by simulated meshes, this can be a codimensional/surface mesh (i.e., points, edges, or triangles). Currently, codimensional points and edges are only supported using the OBJ file format. Codimensional points are specified as vertices that are not indexed by any elements. Codimensional edges are specified as OBJ line elements.
+ + +Must be a single number.
+An axis-aligned box selection.
+Parameters:
+box
: a \(2 \times n\) array where the first row is the minimum corner and the second row is the maximum cornerrelative
(default: false
): if the coordinates of box
are relative to the mesh’s rest bounding boxExample
+{"box": [[0, 0, 0], [1, 0.1, 1]], "relative": true}
will select all points in the bottom 10% of the mesh (assuming the vertical direction if in the y-axis).
A sphere (or circle in 2D) selection.
+Parameters:
+center
: center of the sphere (\(n\)-length array)radius
: radius of the sphere (float value)relative
(default: false
): if the center
is relative to the mesh’s rest bounding box and the radius is relative to the mesh’s bounding box diagonalExample
+{"center": [0, 0, 0], "radius": 1}
will select points that are less than 1 unit from the origin.
An axis-aligned plane selection. Everything on one side of the plane is selected.
+Parameters:
+axis
: axis aligned with the planer"[+-]?[xyzXYZ]"
or int matching the regular expression [+-]?[123]
where the sign is the side of the plane to select and coordinate is the axis to align the plane withposition
: position of the plane along the axis (float value)relative
(default: false
): if the position
is relative to the mesh’s rest bounding boxExample
+{"axis": "-X", "position": 1}
will select points with a x-coordinate less than 1.
A plane selection. Everything on one side of the plane is selected.
+Parameters:
+normal
: normal of the plane (\(n\)-length array)point
: point on the plane (has priority over offset
) (\(n\)-length array)offset
: offset along the normal from the origin defining the point (float value)relative
(default: false
): if the point
is relative to the mesh’s rest bounding box (does not apply to the offset)Example
+{"normal": [1, 1, 0], "point": [0, 1, 0]}
will select points \(x\) where \((x-p) \cdot n \ge 0\).
For time-dependent simulation, the state variables (\(u\), \(v = \dot{u}\), and \(a = \ddot{u}\)) are exported using the following parameters:
+"output": {
+ "data": {
+ "state": "<path/to/state.hdf5>"
+ }
+}
+
The path can be either absolute or relative to the output directory. The state will be saved in HDF5 format containing the keys u
, v
, and a
for the solution, velocity, and acceleration, respectively.
This file can then be used to initialize (or restart) the simulation from the saved state by specifying:
+"input": {
+ "data": {
+ "state": "<path/to/state.hdf5>"
+ }
+}
+
Note
+When restarting the simulation it is necessary to also specify the "time": {"t0": <start_time>}
parameter for the starting time. Otherwise, it will assume a starting time of 0
.
The following json contains the default values by PolyFEM.
+Values of "REQUIRED!"
indicate the field has no default and must be specified by the user.
{
+ "boundary_conditions": {
+ "dirichlet_boundary": [],
+ "neumann_boundary": [],
+ "normal_aligned_neumann_boundary": [],
+ "obstacle_displacements": [],
+ "periodic_boundary": {
+ "correspondence": [],
+ "enabled": false,
+ "fixed_macro_strain": [],
+ "force_zero_mean": false,
+ "linear_displacement_offset": [],
+ "tolerance": 1e-05
+ },
+ "pressure_boundary": [],
+ "pressure_cavity": [],
+ "rhs": {
+ "unit": "REQUIRED!",
+ "value": "REQUIRED!"
+ }
+ },
+ "common": "",
+ "contact": {
+ "collision_mesh": {
+ "enabled": true,
+ "linear_map": "REQUIRED!",
+ "max_edge_length": "REQUIRED!",
+ "mesh": "REQUIRED!",
+ "tessellation_type": "regular"
+ },
+ "dhat": 0.001,
+ "dhat_percentage": 0.8,
+ "enabled": false,
+ "epsv": 0.001,
+ "friction_coefficient": 0,
+ "periodic": false,
+ "use_convergent_formulation": false
+ },
+ "geometry": "REQUIRED!",
+ "initial_conditions": {
+ "acceleration": [],
+ "solution": [],
+ "velocity": []
+ },
+ "input": {
+ "data": {
+ "reorder": false,
+ "state": ""
+ }
+ },
+ "materials": "REQUIRED!",
+ "output": {
+ "advanced": {
+ "compute_error": true,
+ "curved_mesh_size": false,
+ "save_ccd_debug_meshes": false,
+ "save_nl_solve_sequence": false,
+ "save_solve_sequence_debug": false,
+ "save_time_sequence": true,
+ "sol_at_node": -1,
+ "sol_on_grid": -1,
+ "spectrum": false,
+ "timestep_prefix": "step_",
+ "vis_boundary_only": false
+ },
+ "data": {
+ "advanced": {
+ "reorder_nodes": false
+ },
+ "full_mat": "",
+ "mises": "",
+ "nodes": "",
+ "rest_mesh": "",
+ "solution": "",
+ "state": "",
+ "stiffness_mat": "",
+ "stress_mat": ""
+ },
+ "directory": "",
+ "json": "",
+ "log": {
+ "file_level": "trace",
+ "level": "debug",
+ "path": "",
+ "quiet": false
+ },
+ "paraview": {
+ "file_name": "",
+ "high_order_mesh": true,
+ "options": {
+ "acceleration": false,
+ "body_ids": false,
+ "contact_forces": false,
+ "discretization_order": true,
+ "forces": false,
+ "friction_forces": false,
+ "material": false,
+ "nodes": true,
+ "scalar_values": true,
+ "tensor_values": true,
+ "use_hdf5": false,
+ "velocity": false
+ },
+ "points": false,
+ "skip_frame": 1,
+ "surface": false,
+ "vismesh_rel_area": 1e-05,
+ "volume": true,
+ "wireframe": false
+ },
+ "reference": {
+ "gradient": [],
+ "solution": []
+ },
+ "restart_json": ""
+ },
+ "preset_problem": {
+ "U": {},
+ "angular_v0": 0.5,
+ "angular_v1": -0.5,
+ "axis_coordiante": 2,
+ "axis_coordiante0": 2,
+ "axis_coordiante1": 2,
+ "bbox_center": [],
+ "fixed_boundary": 5,
+ "force": {},
+ "formulation": "",
+ "func": 0,
+ "kernel_distance": 0,
+ "kernel_weights": "",
+ "n_kernels": 0,
+ "n_turns": 0.5,
+ "time_dependent": {},
+ "turning_boundary": 6,
+ "turning_boundary0": 5,
+ "turning_boundary1": 6,
+ "type": "REQUIRED!",
+ "viscosity": 1
+ },
+ "root_path": "",
+ "solver": {
+ "adjoint_linear": {
+ "AMGCL": {
+ "precond": {
+ "class": "amg",
+ "coarsening": {
+ "aggr": {
+ "eps_strong": 0
+ },
+ "estimate_spectral_radius": true,
+ "relax": 1,
+ "type": "smoothed_aggregation"
+ },
+ "direct_coarse": false,
+ "max_levels": 6,
+ "ncycle": 2,
+ "relax": {
+ "degree": 16,
+ "higher": 2,
+ "lower": 0.008333333333,
+ "power_iters": 100,
+ "scale": true,
+ "type": "chebyshev"
+ }
+ },
+ "solver": {
+ "maxiter": 1000,
+ "tol": 1e-10,
+ "type": "cg"
+ }
+ },
+ "Eigen::BiCGSTAB": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::ConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::DGMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::GMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::LeastSquaresConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::MINRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Hypre": {
+ "max_iter": 1000,
+ "pre_max_iter": 1,
+ "tolerance": 1e-10
+ },
+ "Pardiso": {
+ "mtype": 11
+ },
+ "enable_overwrite_solver": false,
+ "precond": "",
+ "solver": ""
+ },
+ "advanced": {
+ "cache_size": 900000,
+ "lagged_regularization_iterations": 1,
+ "lagged_regularization_weight": 0,
+ "lump_mass_matrix": false
+ },
+ "augmented_lagrangian": {
+ "eta": 0.99,
+ "initial_weight": 1000000.0,
+ "max_weight": 100000000.0,
+ "nonlinear": {
+ "ADAM": {
+ "alpha": 0.001,
+ "beta_1": 0.9,
+ "beta_2": 0.999,
+ "epsilon": 1e-08
+ },
+ "L-BFGS": {
+ "history_size": 6
+ },
+ "L-BFGS-B": {
+ "history_size": 6
+ },
+ "Newton": {
+ "force_psd_projection": false,
+ "reg_weight_inc": 10,
+ "reg_weight_max": 100000000.0,
+ "reg_weight_min": 1e-08,
+ "residual_tolerance": 1e-05,
+ "use_psd_projection": true,
+ "use_psd_projection_in_regularized": true
+ },
+ "StochasticADAM": {
+ "alpha": 0.001,
+ "beta_1": 0.9,
+ "beta_2": 0.999,
+ "epsilon": 1e-08,
+ "erase_component_probability": 0.3
+ },
+ "StochasticGradientDescent": {
+ "erase_component_probability": 0.3
+ },
+ "advanced": {
+ "apply_gradient_fd": "None",
+ "derivative_along_delta_x_tol": 0,
+ "f_delta": 0,
+ "f_delta_step_tol": 100,
+ "gradient_fd_eps": 1e-07
+ },
+ "allow_out_of_iterations": false,
+ "box_constraints": {
+ "bounds": [],
+ "max_change": -1
+ },
+ "first_grad_norm_tol": 1e-10,
+ "grad_norm": 1e-08,
+ "iterations_per_strategy": 5,
+ "line_search": {
+ "Armijo": {
+ "c": 0.0001
+ },
+ "RobustArmijo": {
+ "delta_relative_tolerance": 0.1
+ },
+ "default_init_step_size": 1,
+ "max_step_size_iter": 30,
+ "max_step_size_iter_final": 100,
+ "method": "RobustArmijo",
+ "min_step_size": 1e-10,
+ "min_step_size_final": 1e-20,
+ "step_ratio": 0.5,
+ "use_grad_norm_tol": 1e-06
+ },
+ "max_iterations": 500,
+ "solver": "Newton",
+ "x_delta": 0
+ },
+ "scaling": 2.0
+ },
+ "contact": {
+ "CCD": {
+ "broad_phase": "hash_grid",
+ "max_iterations": 1000000,
+ "tolerance": 1e-06
+ },
+ "barrier_stiffness": "adaptive",
+ "friction_convergence_tol": 0.01,
+ "friction_iterations": 1
+ },
+ "linear": {
+ "AMGCL": {
+ "precond": {
+ "class": "amg",
+ "coarsening": {
+ "aggr": {
+ "eps_strong": 0
+ },
+ "estimate_spectral_radius": true,
+ "relax": 1,
+ "type": "smoothed_aggregation"
+ },
+ "direct_coarse": false,
+ "max_levels": 6,
+ "ncycle": 2,
+ "relax": {
+ "degree": 16,
+ "higher": 2,
+ "lower": 0.008333333333,
+ "power_iters": 100,
+ "scale": true,
+ "type": "chebyshev"
+ }
+ },
+ "solver": {
+ "maxiter": 1000,
+ "tol": 1e-10,
+ "type": "cg"
+ }
+ },
+ "Eigen::BiCGSTAB": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::ConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::DGMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::GMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::LeastSquaresConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Eigen::MINRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-12
+ },
+ "Hypre": {
+ "max_iter": 1000,
+ "pre_max_iter": 1,
+ "tolerance": 1e-10
+ },
+ "Pardiso": {
+ "mtype": 11
+ },
+ "enable_overwrite_solver": false,
+ "precond": "",
+ "solver": ""
+ },
+ "max_threads": 0,
+ "nonlinear": {
+ "ADAM": {
+ "alpha": 0.001,
+ "beta_1": 0.9,
+ "beta_2": 0.999,
+ "epsilon": 1e-08
+ },
+ "L-BFGS": {
+ "history_size": 6
+ },
+ "L-BFGS-B": {
+ "history_size": 6
+ },
+ "Newton": {
+ "force_psd_projection": false,
+ "reg_weight_inc": 10,
+ "reg_weight_max": 100000000.0,
+ "reg_weight_min": 1e-08,
+ "residual_tolerance": 1e-05,
+ "use_psd_projection": true,
+ "use_psd_projection_in_regularized": true
+ },
+ "StochasticADAM": {
+ "alpha": 0.001,
+ "beta_1": 0.9,
+ "beta_2": 0.999,
+ "epsilon": 1e-08,
+ "erase_component_probability": 0.3
+ },
+ "StochasticGradientDescent": {
+ "erase_component_probability": 0.3
+ },
+ "advanced": {
+ "apply_gradient_fd": "None",
+ "derivative_along_delta_x_tol": 0,
+ "f_delta": 0,
+ "f_delta_step_tol": 100,
+ "gradient_fd_eps": 1e-07
+ },
+ "allow_out_of_iterations": false,
+ "box_constraints": {
+ "bounds": [],
+ "max_change": -1
+ },
+ "first_grad_norm_tol": 1e-10,
+ "grad_norm": 1e-08,
+ "iterations_per_strategy": 5,
+ "line_search": {
+ "Armijo": {
+ "c": 0.0001
+ },
+ "RobustArmijo": {
+ "delta_relative_tolerance": 0.1
+ },
+ "default_init_step_size": 1,
+ "max_step_size_iter": 30,
+ "max_step_size_iter_final": 100,
+ "method": "RobustArmijo",
+ "min_step_size": 1e-10,
+ "min_step_size_final": 1e-20,
+ "step_ratio": 0.5,
+ "use_grad_norm_tol": 1e-06
+ },
+ "max_iterations": 500,
+ "solver": "Newton",
+ "x_delta": 0
+ },
+ "rayleigh_damping": []
+ },
+ "space": {
+ "advanced": {
+ "B": 3,
+ "bc_method": "sample",
+ "count_flipped_els": true,
+ "discr_order_max": 4,
+ "force_no_ref_for_harmonic": false,
+ "h1_formula": false,
+ "integral_constraints": 2,
+ "isoparametric": false,
+ "mass_quadrature_order": -1,
+ "n_boundary_samples": -1,
+ "n_harmonic_samples": 10,
+ "quadrature_order": -1,
+ "use_particle_advection": false
+ },
+ "basis_type": "Lagrange",
+ "discr_order": 1,
+ "poly_basis_type": "MFSHarmonic",
+ "pressure_discr_order": 1,
+ "remesh": {
+ "collapse": {
+ "abs_max_edge_length": 1e+100,
+ "acceptance_tolerance": -1e-08,
+ "culling_threshold": 0.01,
+ "enabled": true,
+ "max_depth": 3,
+ "rel_max_edge_length": 1
+ },
+ "enabled": false,
+ "local_relaxation": {
+ "local_mesh_n_ring": 2,
+ "local_mesh_rel_area": 0.01,
+ "max_nl_iterations": 1
+ },
+ "smooth": {
+ "acceptance_tolerance": -1e-08,
+ "enabled": false,
+ "max_iters": 1
+ },
+ "split": {
+ "acceptance_tolerance": 0.001,
+ "culling_threshold": 0.95,
+ "enabled": true,
+ "max_depth": 3,
+ "min_edge_length": 1e-06
+ },
+ "swap": {
+ "acceptance_tolerance": -1e-08,
+ "enabled": false,
+ "max_depth": 3
+ },
+ "type": "physics"
+ },
+ "use_p_ref": false
+ },
+ "tests": {
+ "err_h1": 0,
+ "err_h1_semi": 0,
+ "err_l2": 0,
+ "err_linf": 0,
+ "err_linf_grad": 0,
+ "err_lp": 0,
+ "margin": 1e-05,
+ "time_steps": 1
+ },
+ "time": {
+ "dt": "REQUIRED!",
+ "integrator": {
+ "beta": 0.25,
+ "gamma": 0.5,
+ "steps": 1,
+ "type": "REQUIRED!"
+ },
+ "quasistatic": false,
+ "t0": 0,
+ "tend": "REQUIRED!",
+ "time_steps": "REQUIRED!"
+ },
+ "units": {
+ "characteristic_length": 1,
+ "length": "m",
+ "mass": "kg",
+ "time": "s"
+ }
+}
+
The following json contains the full specification of the PolyFEM JSON API.
+ + + +/
(object
)
/
+
/geometry
(list
)/geometry
+
/geometry/*
/geometry/*
+
/geometry/*/mesh
(file
)/geometry/*/mesh
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection
+
Extensions: ['.txt']
Default: None
+
/geometry/*/volume_selection/id_offset
(int
)/geometry/*/volume_selection/id_offset
+
Default: 0
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*
+
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/box
(list
)/geometry/*/volume_selection/*/box
+
/geometry/*/volume_selection/*/box/*
(list
)/geometry/*/volume_selection/*/box/*
+
/geometry/*/volume_selection/*/box/*/*
(float
)/geometry/*/volume_selection/*/box/*/*
+
Default: 0
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/center
(list
)/geometry/*/volume_selection/*/center
+
/geometry/*/volume_selection/*/center/*
(float
)/geometry/*/volume_selection/*/center/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/p1
(list
)/geometry/*/volume_selection/*/p1
+
/geometry/*/volume_selection/*/p1/*
(float
)/geometry/*/volume_selection/*/p1/*
+
/geometry/*/volume_selection/*/p2
(list
)/geometry/*/volume_selection/*/p2
+
/geometry/*/volume_selection/*/p2/*
(float
)/geometry/*/volume_selection/*/p2/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/point
(list
)/geometry/*/volume_selection/*/point
+
/geometry/*/volume_selection/*/point/*
(float
)/geometry/*/volume_selection/*/point/*
+
/geometry/*/volume_selection/*/normal
(list
)/geometry/*/volume_selection/*/normal
+
/geometry/*/volume_selection/*/normal/*
(float
)/geometry/*/volume_selection/*/normal/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis
+
/geometry/*/volume_selection/*/position
(float
)/geometry/*/volume_selection/*/position
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection
+
Extensions: ['.txt']
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*
+
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/box
(list
)/geometry/*/surface_selection/*/box
+
/geometry/*/surface_selection/*/box/*
(list
)/geometry/*/surface_selection/*/box/*
+
/geometry/*/surface_selection/*/box/*/*
(float
)/geometry/*/surface_selection/*/box/*/*
+
Default: 0
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/center
(list
)/geometry/*/surface_selection/*/center
+
/geometry/*/surface_selection/*/center/*
(float
)/geometry/*/surface_selection/*/center/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/p1
(list
)/geometry/*/surface_selection/*/p1
+
/geometry/*/surface_selection/*/p1/*
(float
)/geometry/*/surface_selection/*/p1/*
+
/geometry/*/surface_selection/*/p2
(list
)/geometry/*/surface_selection/*/p2
+
/geometry/*/surface_selection/*/p2/*
(float
)/geometry/*/surface_selection/*/p2/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/point
(list
)/geometry/*/surface_selection/*/point
+
/geometry/*/surface_selection/*/point/*
(float
)/geometry/*/surface_selection/*/point/*
+
/geometry/*/surface_selection/*/normal
(list
)/geometry/*/surface_selection/*/normal
+
/geometry/*/surface_selection/*/normal/*
(float
)/geometry/*/surface_selection/*/normal/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis
+
/geometry/*/surface_selection/*/position
(float
)/geometry/*/surface_selection/*/position
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/threshold
(float
)/geometry/*/surface_selection/*/threshold
+
/geometry/*/surface_selection/*/id_offset
(int
)/geometry/*/surface_selection/*/id_offset
+
Default: 0
/geometry/*/curve_selection
(object
)/geometry/*/curve_selection
+
Default: None
/geometry/*/point_selection
/geometry/*/point_selection
+
Extensions: ['.txt']
/geometry/*/point_selection/*
/geometry/*/point_selection/*
+
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/box
(list
)/geometry/*/point_selection/*/box
+
/geometry/*/point_selection/*/box/*
(list
)/geometry/*/point_selection/*/box/*
+
/geometry/*/point_selection/*/box/*/*
(float
)/geometry/*/point_selection/*/box/*/*
+
Default: 0
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/center
(list
)/geometry/*/point_selection/*/center
+
/geometry/*/point_selection/*/center/*
(float
)/geometry/*/point_selection/*/center/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/p1
(list
)/geometry/*/point_selection/*/p1
+
/geometry/*/point_selection/*/p1/*
(float
)/geometry/*/point_selection/*/p1/*
+
/geometry/*/point_selection/*/p2
(list
)/geometry/*/point_selection/*/p2
+
/geometry/*/point_selection/*/p2/*
(float
)/geometry/*/point_selection/*/p2/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/point
(list
)/geometry/*/point_selection/*/point
+
/geometry/*/point_selection/*/point/*
(float
)/geometry/*/point_selection/*/point/*
+
/geometry/*/point_selection/*/normal
(list
)/geometry/*/point_selection/*/normal
+
/geometry/*/point_selection/*/normal/*
(float
)/geometry/*/point_selection/*/normal/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis
+
/geometry/*/point_selection/*/position
(float
)/geometry/*/point_selection/*/position
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/threshold
(float
)/geometry/*/point_selection/*/threshold
+
/geometry/*/point_selection/*/id_offset
(int
)/geometry/*/point_selection/*/id_offset
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: mesh_array +
/geometry/*/mesh
(file
)/geometry/*/mesh
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/array
(object
)/geometry/*/array
+
/geometry/*/array/offset
(float
)/geometry/*/array/offset
+
/geometry/*/array/size
(list
)/geometry/*/array/size
+
/geometry/*/array/size/*
(int
)/geometry/*/array/size/*
+
Range: [1, inf]
/geometry/*/array/relative
(bool
)/geometry/*/array/relative
+
Default: False
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection
+
Extensions: ['.txt']
Default: None
+
/geometry/*/volume_selection/id_offset
(int
)/geometry/*/volume_selection/id_offset
+
Default: 0
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*
+
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/box
(list
)/geometry/*/volume_selection/*/box
+
/geometry/*/volume_selection/*/box/*
(list
)/geometry/*/volume_selection/*/box/*
+
/geometry/*/volume_selection/*/box/*/*
(float
)/geometry/*/volume_selection/*/box/*/*
+
Default: 0
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/center
(list
)/geometry/*/volume_selection/*/center
+
/geometry/*/volume_selection/*/center/*
(float
)/geometry/*/volume_selection/*/center/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/radius
(float
)/geometry/*/volume_selection/*/radius
+
/geometry/*/volume_selection/*/p1
(list
)/geometry/*/volume_selection/*/p1
+
/geometry/*/volume_selection/*/p1/*
(float
)/geometry/*/volume_selection/*/p1/*
+
/geometry/*/volume_selection/*/p2
(list
)/geometry/*/volume_selection/*/p2
+
/geometry/*/volume_selection/*/p2/*
(float
)/geometry/*/volume_selection/*/p2/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/point
(list
)/geometry/*/volume_selection/*/point
+
/geometry/*/volume_selection/*/point/*
(float
)/geometry/*/volume_selection/*/point/*
+
/geometry/*/volume_selection/*/normal
(list
)/geometry/*/volume_selection/*/normal
+
/geometry/*/volume_selection/*/normal/*
(float
)/geometry/*/volume_selection/*/normal/*
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/volume_selection/*/id
(int
)/geometry/*/volume_selection/*/id
+
/geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis
+
/geometry/*/volume_selection/*/position
(float
)/geometry/*/volume_selection/*/position
+
/geometry/*/volume_selection/*/relative
(bool
)/geometry/*/volume_selection/*/relative
+
Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection
+
Extensions: ['.txt']
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*
+
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/box
(list
)/geometry/*/surface_selection/*/box
+
/geometry/*/surface_selection/*/box/*
(list
)/geometry/*/surface_selection/*/box/*
+
/geometry/*/surface_selection/*/box/*/*
(float
)/geometry/*/surface_selection/*/box/*/*
+
Default: 0
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/center
(list
)/geometry/*/surface_selection/*/center
+
/geometry/*/surface_selection/*/center/*
(float
)/geometry/*/surface_selection/*/center/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/radius
(float
)/geometry/*/surface_selection/*/radius
+
/geometry/*/surface_selection/*/p1
(list
)/geometry/*/surface_selection/*/p1
+
/geometry/*/surface_selection/*/p1/*
(float
)/geometry/*/surface_selection/*/p1/*
+
/geometry/*/surface_selection/*/p2
(list
)/geometry/*/surface_selection/*/p2
+
/geometry/*/surface_selection/*/p2/*
(float
)/geometry/*/surface_selection/*/p2/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/point
(list
)/geometry/*/surface_selection/*/point
+
/geometry/*/surface_selection/*/point/*
(float
)/geometry/*/surface_selection/*/point/*
+
/geometry/*/surface_selection/*/normal
(list
)/geometry/*/surface_selection/*/normal
+
/geometry/*/surface_selection/*/normal/*
(float
)/geometry/*/surface_selection/*/normal/*
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/id
(int
)/geometry/*/surface_selection/*/id
+
/geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis
+
/geometry/*/surface_selection/*/position
(float
)/geometry/*/surface_selection/*/position
+
/geometry/*/surface_selection/*/relative
(bool
)/geometry/*/surface_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/surface_selection/*/threshold
(float
)/geometry/*/surface_selection/*/threshold
+
/geometry/*/surface_selection/*/id_offset
(int
)/geometry/*/surface_selection/*/id_offset
+
Default: 0
/geometry/*/curve_selection
(object
)/geometry/*/curve_selection
+
Default: None
/geometry/*/point_selection
/geometry/*/point_selection
+
Extensions: ['.txt']
/geometry/*/point_selection/*
/geometry/*/point_selection/*
+
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/box
(list
)/geometry/*/point_selection/*/box
+
/geometry/*/point_selection/*/box/*
(list
)/geometry/*/point_selection/*/box/*
+
/geometry/*/point_selection/*/box/*/*
(float
)/geometry/*/point_selection/*/box/*/*
+
Default: 0
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/center
(list
)/geometry/*/point_selection/*/center
+
/geometry/*/point_selection/*/center/*
(float
)/geometry/*/point_selection/*/center/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/radius
(float
)/geometry/*/point_selection/*/radius
+
/geometry/*/point_selection/*/p1
(list
)/geometry/*/point_selection/*/p1
+
/geometry/*/point_selection/*/p1/*
(float
)/geometry/*/point_selection/*/p1/*
+
/geometry/*/point_selection/*/p2
(list
)/geometry/*/point_selection/*/p2
+
/geometry/*/point_selection/*/p2/*
(float
)/geometry/*/point_selection/*/p2/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/point
(list
)/geometry/*/point_selection/*/point
+
/geometry/*/point_selection/*/point/*
(float
)/geometry/*/point_selection/*/point/*
+
/geometry/*/point_selection/*/normal
(list
)/geometry/*/point_selection/*/normal
+
/geometry/*/point_selection/*/normal/*
(float
)/geometry/*/point_selection/*/normal/*
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/id
(int
)/geometry/*/point_selection/*/id
+
/geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis
+
/geometry/*/point_selection/*/position
(float
)/geometry/*/point_selection/*/position
+
/geometry/*/point_selection/*/relative
(bool
)/geometry/*/point_selection/*/relative
+
Default: False
Default: None
+
/geometry/*/point_selection/*/threshold
(float
)/geometry/*/point_selection/*/threshold
+
/geometry/*/point_selection/*/id_offset
(int
)/geometry/*/point_selection/*/id_offset
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: plane +
/geometry/*/point
(list
)/geometry/*/point
+
/geometry/*/point/*
(float
)/geometry/*/point/*
+
/geometry/*/normal
(list
)/geometry/*/normal
+
/geometry/*/normal/*
(float
)/geometry/*/normal/*
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: ground +
/geometry/*/height
(float
)/geometry/*/height
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
Type: mesh_sequence +
/geometry/*/mesh_sequence
/geometry/*/mesh_sequence
+
/geometry/*/mesh_sequence/*
(file
)/geometry/*/mesh_sequence/*
+
Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/fps
(int
)/geometry/*/fps
+
/geometry/*/type
(string
)/geometry/*/type
+
Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
)/geometry/*/extract
+
Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
)/geometry/*/unit
+
Default: ''
/geometry/*/transformation
(object
)/geometry/*/transformation
+
Default: None
+
/geometry/*/transformation/translation
(list
)/geometry/*/transformation/translation
+
/geometry/*/transformation/translation/*
(float
)/geometry/*/transformation/translation/*
+
Default: 0
/geometry/*/transformation/rotation
(list
)/geometry/*/transformation/rotation
+
/geometry/*/transformation/rotation/*
(float
)/geometry/*/transformation/rotation/*
+
Default: 0
/geometry/*/transformation/rotation_mode
(string
)/geometry/*/transformation/rotation_mode
+
Default: 'xyz'
/geometry/*/transformation/scale
(list
)/geometry/*/transformation/scale
+
/geometry/*/transformation/scale/*
(float
)/geometry/*/transformation/scale/*
+
Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions
+
Default: 1
/geometry/*/transformation/dimensions/*
(float
)/geometry/*/transformation/dimensions/*
+
Default: 0
/geometry/*/n_refs
(int
)/geometry/*/n_refs
+
Default: 0
/geometry/*/advanced
(object
)/geometry/*/advanced
+
Default: None
+
/geometry/*/advanced/normalize_mesh
(bool
)/geometry/*/advanced/normalize_mesh
+
Default: False
/geometry/*/advanced/force_linear_geometry
(bool
)/geometry/*/advanced/force_linear_geometry
+
Default: False
/geometry/*/advanced/refinement_location
(float
)/geometry/*/advanced/refinement_location
+
Default: 0.5
/geometry/*/advanced/min_component
(int
)/geometry/*/advanced/min_component
+
Default: -1
/geometry/*/enabled
(bool
)/geometry/*/enabled
+
Default: True
/geometry/*/is_obstacle
(bool
)/geometry/*/is_obstacle
+
Default: False
/materials
(list
)/materials
+
/materials/*
/materials/*
+
Type: NeoHookean +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: NeoHookean +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: MooneyRivlin +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: MooneyRivlin3Param +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/c3
/materials/*/c3
+
/materials/*/c3/value
/materials/*/c3/value
+
/materials/*/c3/unit
(string
)/materials/*/c3/unit
+
/materials/*/d1
/materials/*/d1
+
/materials/*/d1/value
/materials/*/d1/value
+
/materials/*/d1/unit
(string
)/materials/*/d1/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: MooneyRivlin3ParamSymbolic +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1
+
/materials/*/c1/value
/materials/*/c1/value
+
/materials/*/c1/unit
(string
)/materials/*/c1/unit
+
/materials/*/c2
/materials/*/c2
+
/materials/*/c2/value
/materials/*/c2/value
+
/materials/*/c2/unit
(string
)/materials/*/c2/unit
+
/materials/*/c3
/materials/*/c3
+
/materials/*/c3/value
/materials/*/c3/value
+
/materials/*/c3/unit
(string
)/materials/*/c3/unit
+
/materials/*/d1
/materials/*/d1
+
/materials/*/d1/value
/materials/*/d1/value
+
/materials/*/d1/unit
(string
)/materials/*/d1/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: UnconstrainedOgden +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/alphas
/materials/*/alphas
+
/materials/*/alphas/value
/materials/*/alphas/value
+
/materials/*/alphas/unit
(string
)/materials/*/alphas/unit
+
/materials/*/mus
(list
)/materials/*/mus
+
/materials/*/mus/*
/materials/*/mus/*
+
/materials/*/mus/*/value
/materials/*/mus/*/value
+
/materials/*/mus/*/unit
(string
)/materials/*/mus/*/unit
+
/materials/*/Ds
(list
)/materials/*/Ds
+
/materials/*/Ds/*
/materials/*/Ds/*
+
/materials/*/Ds/*/value
/materials/*/Ds/*/value
+
/materials/*/Ds/*/unit
(string
)/materials/*/Ds/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleOgden +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c
/materials/*/c
+
/materials/*/c/value
/materials/*/c/value
+
/materials/*/c/unit
(string
)/materials/*/c/unit
+
/materials/*/c/*
/materials/*/c/*
+
/materials/*/c/*/value
/materials/*/c/*/value
+
/materials/*/c/*/unit
(string
)/materials/*/c/*/unit
+
/materials/*/m
/materials/*/m
+
/materials/*/m/value
/materials/*/m/value
+
/materials/*/m/unit
(string
)/materials/*/m/unit
+
/materials/*/m/*
/materials/*/m/*
+
/materials/*/m/*/value
/materials/*/m/*/value
+
/materials/*/m/*/unit
(string
)/materials/*/m/*/unit
+
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: LinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: LinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: HookeLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: HookeLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
)/materials/*/elasticity_tensor
+
/materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*
+
Default: 0
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value
+
/materials/*/elasticity_tensor/*/unit
(string
)/materials/*/elasticity_tensor/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: SaintVenant +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: SaintVenant +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
)/materials/*/elasticity_tensor
+
/materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*
+
Default: 0
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value
+
/materials/*/elasticity_tensor/*/unit
(string
)/materials/*/elasticity_tensor/*/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: Stokes +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: NavierStokes +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: OperatorSplitting +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity
+
/materials/*/viscosity/value
/materials/*/viscosity/value
+
/materials/*/viscosity/unit
(string
)/materials/*/viscosity/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: IncompressibleLinearElasticity +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Laplacian +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Helmholtz +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/k
/materials/*/k
+
/materials/*/k/value
/materials/*/k/value
+
/materials/*/k/unit
(string
)/materials/*/k/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: Bilaplacian +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
Type: AMIPS +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
Type: FixedCorotational +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E
+
/materials/*/E/value
/materials/*/E/value
+
/materials/*/E/unit
(string
)/materials/*/E/unit
+
/materials/*/nu
/materials/*/nu
+
/materials/*/nu/value
/materials/*/nu/value
+
/materials/*/nu/unit
(string
)/materials/*/nu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
Type: FixedCorotational +
/materials/*/type
(string
)/materials/*/type
+
Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda
+
/materials/*/lambda/value
/materials/*/lambda/value
+
/materials/*/lambda/unit
(string
)/materials/*/lambda/unit
+
/materials/*/mu
/materials/*/mu
+
/materials/*/mu/value
/materials/*/mu/value
+
/materials/*/mu/unit
(string
)/materials/*/mu/unit
+
/materials/*/id
/materials/*/id
+
Default: 0
/materials/*/id/*
(int
)/materials/*/id/*
+
/materials/*/rho
/materials/*/rho
+
Default: 1
/materials/*/rho/value
/materials/*/rho/value
+
/materials/*/rho/unit
(string
)/materials/*/rho/unit
+
/materials/*/phi
/materials/*/phi
+
Default: 0
/materials/*/phi/value
/materials/*/phi/value
+
/materials/*/phi/unit
(string
)/materials/*/phi/unit
+
/materials/*/psi
/materials/*/psi
+
Default: 0
/materials/*/psi/value
/materials/*/psi/value
+
/materials/*/psi/unit
(string
)/materials/*/psi/unit
+
/units
(object
)/units
+
Default: None
+
/units/length
(string
)/units/length
+
Default: 'm'
/units/mass
(string
)/units/mass
+
Default: 'kg'
/units/time
(string
)/units/time
+
Default: 's'
/units/characteristic_length
(float
)/units/characteristic_length
+
Default: 1
/preset_problem
/preset_problem
+
Type: Linear +
Default: 'skip'
+
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Quadratic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Cubic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Sine +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Franke +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FrankeOld +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: GenericScalarExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
Type: Zero_BC +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Elastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Walk +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TorsionElastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante
(int
)/preset_problem/axis_coordiante
+
Default: 2
/preset_problem/n_turns
(float
)/preset_problem/n_turns
+
Default: 0.5
/preset_problem/fixed_boundary
(int
)/preset_problem/fixed_boundary
+
Default: 5
/preset_problem/turning_boundary
(int
)/preset_problem/turning_boundary
+
Default: 6
/preset_problem/bbox_center
(list
)/preset_problem/bbox_center
+
/preset_problem/bbox_center/*
(float
)/preset_problem/bbox_center/*
+
Default: 0
Type: DoubleTorsionElastic +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante0
(int
)/preset_problem/axis_coordiante0
+
Default: 2
/preset_problem/axis_coordiante1
(int
)/preset_problem/axis_coordiante1
+
Default: 2
/preset_problem/angular_v0
(float
)/preset_problem/angular_v0
+
Default: 0.5
/preset_problem/angular_v1
(float
)/preset_problem/angular_v1
+
Default: -0.5
/preset_problem/turning_boundary0
(int
)/preset_problem/turning_boundary0
+
Default: 5
/preset_problem/turning_boundary1
(int
)/preset_problem/turning_boundary1
+
Default: 6
/preset_problem/bbox_center
(list
)/preset_problem/bbox_center
+
/preset_problem/bbox_center/*
(float
)/preset_problem/bbox_center/*
+
Default: 0
Type: ElasticZeroBC +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticCantileverExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CompressionElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: QuadraticElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: LinearElasticExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: PointBasedTensor +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Kernel +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/formulation
(string
)/preset_problem/formulation
+
Default: ''
/preset_problem/n_kernels
(int
)/preset_problem/n_kernels
+
Default: 0
/preset_problem/kernel_distance
(float
)/preset_problem/kernel_distance
+
Default: 0
/preset_problem/kernel_weights
(string
)/preset_problem/kernel_weights
+
Default: ''
Type: Node +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TimeDependentScalar +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: MinSurf +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Gravity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ConstantVelocity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TwoSpheres +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavity +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavityC0 +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavitySmooth +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Flow +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FlowWithObstacle +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CornerFlow +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: UnitFlowWithObstacle +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: StokesLaw +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: TaylorGreenVortex +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: SimpleStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
Type: SineStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TransientStokeProblemExact +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
)/preset_problem/func
+
Default: 0
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: Kovnaszy +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
)/preset_problem/viscosity
+
Default: 1
Type: Airfoil +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Lshape +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TestProblem +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: BilaplacianProblemWithSolution +
/preset_problem/type
(string
)/preset_problem/type
+
Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/common
(file
)/common
+
Default: ''
Extensions: ['.json']
/root_path
(string
)/root_path
+
Default: ''
/space
(object
)/space
+
Default: None
+
/space/discr_order
/space/discr_order
+
Default: 1
Extensions: ['.txt', '.bin']
/space/discr_order/*
(object
)/space/discr_order/*
+
/space/discr_order/*/id
/space/discr_order/*/id
+
/space/discr_order/*/id/*
(int
)/space/discr_order/*/id/*
+
/space/discr_order/*/order
(int
)/space/discr_order/*/order
+
/space/pressure_discr_order
(int
)/space/pressure_discr_order
+
Default: 1
/space/basis_type
(string
)/space/basis_type
+
Default: 'Lagrange'
Options: ['Lagrange', 'Spline', 'Serendipity']
/space/poly_basis_type
(string
)/space/poly_basis_type
+
Default: 'MFSHarmonic'
Options: ['MFSHarmonic', 'MeanValue', 'Wachspress']
/space/use_p_ref
(bool
)/space/use_p_ref
+
Default: False
/space/remesh
(object
)/space/remesh
+
Default: None
+
/space/remesh/enabled
(bool
)/space/remesh/enabled
+
Default: False
/space/remesh/split
(object
)/space/remesh/split
+
Default: None
+
/space/remesh/split/enabled
(bool
)/space/remesh/split/enabled
+
Default: True
/space/remesh/split/acceptance_tolerance
(float
)/space/remesh/split/acceptance_tolerance
+
Default: 0.001
Range: [0, inf]
/space/remesh/split/culling_threshold
(float
)/space/remesh/split/culling_threshold
+
Default: 0.95
Range: [0, 1]
/space/remesh/split/max_depth
(int
)/space/remesh/split/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/split/min_edge_length
(float
)/space/remesh/split/min_edge_length
+
Default: 1e-06
Range: [0, inf]
/space/remesh/collapse
(object
)/space/remesh/collapse
+
Default: None
+
/space/remesh/collapse/enabled
(bool
)/space/remesh/collapse/enabled
+
Default: True
/space/remesh/collapse/acceptance_tolerance
(float
)/space/remesh/collapse/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/collapse/culling_threshold
(float
)/space/remesh/collapse/culling_threshold
+
Default: 0.01
Range: [0, 1]
/space/remesh/collapse/max_depth
(int
)/space/remesh/collapse/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/collapse/rel_max_edge_length
(float
)/space/remesh/collapse/rel_max_edge_length
+
Default: 1
Range: [0, inf]
/space/remesh/collapse/abs_max_edge_length
(float
)/space/remesh/collapse/abs_max_edge_length
+
Default: 1e+100
Range: [0, inf]
/space/remesh/swap
(object
)/space/remesh/swap
+
Default: None
+
/space/remesh/swap/enabled
(bool
)/space/remesh/swap/enabled
+
Default: False
/space/remesh/swap/acceptance_tolerance
(float
)/space/remesh/swap/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/swap/max_depth
(int
)/space/remesh/swap/max_depth
+
Default: 3
Range: [1, inf]
/space/remesh/smooth
(object
)/space/remesh/smooth
+
Default: None
+
/space/remesh/smooth/enabled
(bool
)/space/remesh/smooth/enabled
+
Default: False
/space/remesh/smooth/acceptance_tolerance
(float
)/space/remesh/smooth/acceptance_tolerance
+
Default: -1e-08
Range: [-inf, 0]
/space/remesh/smooth/max_iters
(int
)/space/remesh/smooth/max_iters
+
Default: 1
Range: [1, inf]
/space/remesh/local_relaxation
(object
)/space/remesh/local_relaxation
+
Default: None
+
/space/remesh/local_relaxation/local_mesh_n_ring
(int
)/space/remesh/local_relaxation/local_mesh_n_ring
+
Default: 2
/space/remesh/local_relaxation/local_mesh_rel_area
(float
)/space/remesh/local_relaxation/local_mesh_rel_area
+
Default: 0.01
/space/remesh/local_relaxation/max_nl_iterations
(int
)/space/remesh/local_relaxation/max_nl_iterations
+
Default: 1
/space/remesh/type
(string
)/space/remesh/type
+
Default: 'physics'
Options: ['physics', 'sizing_field']
/space/advanced
(object
)/space/advanced
+
Default: None
+
/space/advanced/discr_order_max
(int
)/space/advanced/discr_order_max
+
Default: 4
/space/advanced/isoparametric
(bool
)/space/advanced/isoparametric
+
Default: False
/space/advanced/bc_method
(string
)/space/advanced/bc_method
+
Default: 'sample'
Options: ['lsq', 'sample']
/space/advanced/n_boundary_samples
(int
)/space/advanced/n_boundary_samples
+
Default: -1
/space/advanced/quadrature_order
(int
)/space/advanced/quadrature_order
+
Default: -1
/space/advanced/mass_quadrature_order
(int
)/space/advanced/mass_quadrature_order
+
Default: -1
/space/advanced/integral_constraints
(int
)/space/advanced/integral_constraints
+
Default: 2
/space/advanced/n_harmonic_samples
(int
)/space/advanced/n_harmonic_samples
+
Default: 10
/space/advanced/force_no_ref_for_harmonic
(bool
)/space/advanced/force_no_ref_for_harmonic
+
Default: False
/space/advanced/B
(int
)/space/advanced/B
+
Default: 3
/space/advanced/h1_formula
(bool
)/space/advanced/h1_formula
+
Default: False
/space/advanced/count_flipped_els
(bool
)/space/advanced/count_flipped_els
+
Default: True
/space/advanced/use_particle_advection
(bool
)/space/advanced/use_particle_advection
+
Default: False
/time
/time
+
t0
, end time tend
, time step dt
.
+Default: 'skip'
+
/time/tend
(float
)/time/tend
+
Range: [0, inf]
/time/dt
(float
)/time/dt
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
t0
, time step dt
, number of time steps.
+/time/time_steps
(int
)/time/time_steps
+
Range: [0, inf]
/time/dt
(float
)/time/dt
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
t0
, end time tend
, number of time steps.
+/time/time_steps
(int
)/time/time_steps
+
Range: [0, inf]
/time/tend
(float
)/time/tend
+
Range: [0, inf]
/time/t0
(float
)/time/t0
+
Default: 0
Range: [0, inf]
/time/integrator
/time/integrator
+
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
)/time/integrator/steps
+
Default: 1
Range: [1, 6]
Type: ImplicitNewmark +
/time/integrator/type
(string
)/time/integrator/type
+
Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
)/time/integrator/gamma
+
Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
)/time/integrator/beta
+
Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
)/time/quasistatic
+
Default: False
/contact
(object
)/contact
+
Default: None
+
/contact/enabled
(bool
)/contact/enabled
+
Default: False
/contact/dhat
(float
)/contact/dhat
+
Default: 0.001
Range: [0, inf]
/contact/dhat_percentage
(float
)/contact/dhat_percentage
+
Default: 0.8
/contact/epsv
(float
)/contact/epsv
+
Default: 0.001
Range: [0, inf]
/contact/friction_coefficient
(float
)/contact/friction_coefficient
+
Default: 0
/contact/use_convergent_formulation
(bool
)/contact/use_convergent_formulation
+
Default: False
/contact/collision_mesh
/contact/collision_mesh
+
Default: 'skip'
+
/contact/collision_mesh/mesh
(string
)/contact/collision_mesh/mesh
+
/contact/collision_mesh/linear_map
(string
)/contact/collision_mesh/linear_map
+
/contact/collision_mesh/enabled
(bool
)/contact/collision_mesh/enabled
+
Default: True
/contact/collision_mesh/max_edge_length
(float
)/contact/collision_mesh/max_edge_length
+
/contact/collision_mesh/tessellation_type
(string
)/contact/collision_mesh/tessellation_type
+
Default: 'regular'
Options: ['regular', 'irregular']
/contact/collision_mesh/enabled
(bool
)/contact/collision_mesh/enabled
+
Default: True
/contact/periodic
(bool
)/contact/periodic
+
Default: False
/solver
(object
)/solver
+
Default: None
+
/solver/max_threads
(int
)/solver/max_threads
+
Default: 0
Range: [0, inf]
/solver/linear
(object
)/solver/linear
+
Default: None
+
/solver/linear/enable_overwrite_solver
(bool
)/solver/linear/enable_overwrite_solver
+
Default: False
/solver/linear/solver
(string
)/solver/linear/solver
+
Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/linear/precond
(string
)/solver/linear/precond
+
Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/linear/Eigen::LeastSquaresConjugateGradient
(object
)/solver/linear/Eigen::LeastSquaresConjugateGradient
+
Default: None
+
/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
)/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
+
Default: 1000
/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
)/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
+
Default: 1e-12
/solver/linear/Eigen::DGMRES
(object
)/solver/linear/Eigen::DGMRES
+
Default: None
+
/solver/linear/Eigen::DGMRES/max_iter
(int
)/solver/linear/Eigen::DGMRES/max_iter
+
Default: 1000
/solver/linear/Eigen::DGMRES/tolerance
(float
)/solver/linear/Eigen::DGMRES/tolerance
+
Default: 1e-12
/solver/linear/Eigen::ConjugateGradient
(object
)/solver/linear/Eigen::ConjugateGradient
+
Default: None
+
/solver/linear/Eigen::ConjugateGradient/max_iter
(int
)/solver/linear/Eigen::ConjugateGradient/max_iter
+
Default: 1000
/solver/linear/Eigen::ConjugateGradient/tolerance
(float
)/solver/linear/Eigen::ConjugateGradient/tolerance
+
Default: 1e-12
/solver/linear/Eigen::BiCGSTAB
(object
)/solver/linear/Eigen::BiCGSTAB
+
Default: None
+
/solver/linear/Eigen::BiCGSTAB/max_iter
(int
)/solver/linear/Eigen::BiCGSTAB/max_iter
+
Default: 1000
/solver/linear/Eigen::BiCGSTAB/tolerance
(float
)/solver/linear/Eigen::BiCGSTAB/tolerance
+
Default: 1e-12
/solver/linear/Eigen::GMRES
(object
)/solver/linear/Eigen::GMRES
+
Default: None
+
/solver/linear/Eigen::GMRES/max_iter
(int
)/solver/linear/Eigen::GMRES/max_iter
+
Default: 1000
/solver/linear/Eigen::GMRES/tolerance
(float
)/solver/linear/Eigen::GMRES/tolerance
+
Default: 1e-12
/solver/linear/Eigen::MINRES
(object
)/solver/linear/Eigen::MINRES
+
Default: None
+
/solver/linear/Eigen::MINRES/max_iter
(int
)/solver/linear/Eigen::MINRES/max_iter
+
Default: 1000
/solver/linear/Eigen::MINRES/tolerance
(float
)/solver/linear/Eigen::MINRES/tolerance
+
Default: 1e-12
/solver/linear/Pardiso
(object
)/solver/linear/Pardiso
+
Default: None
+
/solver/linear/Pardiso/mtype
(int
)/solver/linear/Pardiso/mtype
+
Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/linear/Hypre
(object
)/solver/linear/Hypre
+
Default: None
+
/solver/linear/Hypre/max_iter
(int
)/solver/linear/Hypre/max_iter
+
Default: 1000
/solver/linear/Hypre/pre_max_iter
(int
)/solver/linear/Hypre/pre_max_iter
+
Default: 1
/solver/linear/Hypre/tolerance
(float
)/solver/linear/Hypre/tolerance
+
Default: 1e-10
/solver/linear/AMGCL
(object
)/solver/linear/AMGCL
+
Default: None
+
/solver/linear/AMGCL/solver
(object
)/solver/linear/AMGCL/solver
+
Default: None
+
/solver/linear/AMGCL/solver/tol
(float
)/solver/linear/AMGCL/solver/tol
+
Default: 1e-10
/solver/linear/AMGCL/solver/maxiter
(int
)/solver/linear/AMGCL/solver/maxiter
+
Default: 1000
/solver/linear/AMGCL/solver/type
(string
)/solver/linear/AMGCL/solver/type
+
Default: 'cg'
/solver/linear/AMGCL/precond
(object
)/solver/linear/AMGCL/precond
+
Default: None
+
/solver/linear/AMGCL/precond/relax
(object
)/solver/linear/AMGCL/precond/relax
+
Default: None
+
/solver/linear/AMGCL/precond/relax/degree
(int
)/solver/linear/AMGCL/precond/relax/degree
+
Default: 16
/solver/linear/AMGCL/precond/relax/type
(string
)/solver/linear/AMGCL/precond/relax/type
+
Default: 'chebyshev'
/solver/linear/AMGCL/precond/relax/power_iters
(int
)/solver/linear/AMGCL/precond/relax/power_iters
+
Default: 100
/solver/linear/AMGCL/precond/relax/higher
(float
)/solver/linear/AMGCL/precond/relax/higher
+
Default: 2
/solver/linear/AMGCL/precond/relax/lower
(float
)/solver/linear/AMGCL/precond/relax/lower
+
Default: 0.008333333333
/solver/linear/AMGCL/precond/relax/scale
(bool
)/solver/linear/AMGCL/precond/relax/scale
+
Default: True
/solver/linear/AMGCL/precond/class
(string
)/solver/linear/AMGCL/precond/class
+
Default: 'amg'
/solver/linear/AMGCL/precond/max_levels
(int
)/solver/linear/AMGCL/precond/max_levels
+
Default: 6
/solver/linear/AMGCL/precond/direct_coarse
(bool
)/solver/linear/AMGCL/precond/direct_coarse
+
Default: False
/solver/linear/AMGCL/precond/ncycle
(int
)/solver/linear/AMGCL/precond/ncycle
+
Default: 2
/solver/linear/AMGCL/precond/coarsening
(object
)/solver/linear/AMGCL/precond/coarsening
+
Default: None
+
/solver/linear/AMGCL/precond/coarsening/type
(string
)/solver/linear/AMGCL/precond/coarsening/type
+
Default: 'smoothed_aggregation'
/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
)/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
+
Default: True
/solver/linear/AMGCL/precond/coarsening/relax
(float
)/solver/linear/AMGCL/precond/coarsening/relax
+
Default: 1
/solver/linear/AMGCL/precond/coarsening/aggr
(object
)/solver/linear/AMGCL/precond/coarsening/aggr
+
Default: None
+
/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
)/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
+
Default: 0
/solver/adjoint_linear
(object
)/solver/adjoint_linear
+
Default: None
+
/solver/adjoint_linear/enable_overwrite_solver
(bool
)/solver/adjoint_linear/enable_overwrite_solver
+
Default: False
/solver/adjoint_linear/solver
(string
)/solver/adjoint_linear/solver
+
Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/adjoint_linear/precond
(string
)/solver/adjoint_linear/precond
+
Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
(object
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
+
Default: None
+
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
)/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::DGMRES
(object
)/solver/adjoint_linear/Eigen::DGMRES
+
Default: None
+
/solver/adjoint_linear/Eigen::DGMRES/max_iter
(int
)/solver/adjoint_linear/Eigen::DGMRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::DGMRES/tolerance
(float
)/solver/adjoint_linear/Eigen::DGMRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::ConjugateGradient
(object
)/solver/adjoint_linear/Eigen::ConjugateGradient
+
Default: None
+
/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
(int
)/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
(float
)/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::BiCGSTAB
(object
)/solver/adjoint_linear/Eigen::BiCGSTAB
+
Default: None
+
/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
(int
)/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
(float
)/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::GMRES
(object
)/solver/adjoint_linear/Eigen::GMRES
+
Default: None
+
/solver/adjoint_linear/Eigen::GMRES/max_iter
(int
)/solver/adjoint_linear/Eigen::GMRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::GMRES/tolerance
(float
)/solver/adjoint_linear/Eigen::GMRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Eigen::MINRES
(object
)/solver/adjoint_linear/Eigen::MINRES
+
Default: None
+
/solver/adjoint_linear/Eigen::MINRES/max_iter
(int
)/solver/adjoint_linear/Eigen::MINRES/max_iter
+
Default: 1000
/solver/adjoint_linear/Eigen::MINRES/tolerance
(float
)/solver/adjoint_linear/Eigen::MINRES/tolerance
+
Default: 1e-12
/solver/adjoint_linear/Pardiso
(object
)/solver/adjoint_linear/Pardiso
+
Default: None
+
/solver/adjoint_linear/Pardiso/mtype
(int
)/solver/adjoint_linear/Pardiso/mtype
+
Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/adjoint_linear/Hypre
(object
)/solver/adjoint_linear/Hypre
+
Default: None
+
/solver/adjoint_linear/Hypre/max_iter
(int
)/solver/adjoint_linear/Hypre/max_iter
+
Default: 1000
/solver/adjoint_linear/Hypre/pre_max_iter
(int
)/solver/adjoint_linear/Hypre/pre_max_iter
+
Default: 1
/solver/adjoint_linear/Hypre/tolerance
(float
)/solver/adjoint_linear/Hypre/tolerance
+
Default: 1e-10
/solver/adjoint_linear/AMGCL
(object
)/solver/adjoint_linear/AMGCL
+
Default: None
+
/solver/adjoint_linear/AMGCL/solver
(object
)/solver/adjoint_linear/AMGCL/solver
+
Default: None
+
/solver/adjoint_linear/AMGCL/solver/tol
(float
)/solver/adjoint_linear/AMGCL/solver/tol
+
Default: 1e-10
/solver/adjoint_linear/AMGCL/solver/maxiter
(int
)/solver/adjoint_linear/AMGCL/solver/maxiter
+
Default: 1000
/solver/adjoint_linear/AMGCL/solver/type
(string
)/solver/adjoint_linear/AMGCL/solver/type
+
Default: 'cg'
/solver/adjoint_linear/AMGCL/precond
(object
)/solver/adjoint_linear/AMGCL/precond
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/relax
(object
)/solver/adjoint_linear/AMGCL/precond/relax
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/relax/degree
(int
)/solver/adjoint_linear/AMGCL/precond/relax/degree
+
Default: 16
/solver/adjoint_linear/AMGCL/precond/relax/type
(string
)/solver/adjoint_linear/AMGCL/precond/relax/type
+
Default: 'chebyshev'
/solver/adjoint_linear/AMGCL/precond/relax/power_iters
(int
)/solver/adjoint_linear/AMGCL/precond/relax/power_iters
+
Default: 100
/solver/adjoint_linear/AMGCL/precond/relax/higher
(float
)/solver/adjoint_linear/AMGCL/precond/relax/higher
+
Default: 2
/solver/adjoint_linear/AMGCL/precond/relax/lower
(float
)/solver/adjoint_linear/AMGCL/precond/relax/lower
+
Default: 0.008333333333
/solver/adjoint_linear/AMGCL/precond/relax/scale
(bool
)/solver/adjoint_linear/AMGCL/precond/relax/scale
+
Default: True
/solver/adjoint_linear/AMGCL/precond/class
(string
)/solver/adjoint_linear/AMGCL/precond/class
+
Default: 'amg'
/solver/adjoint_linear/AMGCL/precond/max_levels
(int
)/solver/adjoint_linear/AMGCL/precond/max_levels
+
Default: 6
/solver/adjoint_linear/AMGCL/precond/direct_coarse
(bool
)/solver/adjoint_linear/AMGCL/precond/direct_coarse
+
Default: False
/solver/adjoint_linear/AMGCL/precond/ncycle
(int
)/solver/adjoint_linear/AMGCL/precond/ncycle
+
Default: 2
/solver/adjoint_linear/AMGCL/precond/coarsening
(object
)/solver/adjoint_linear/AMGCL/precond/coarsening
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/coarsening/type
(string
)/solver/adjoint_linear/AMGCL/precond/coarsening/type
+
Default: 'smoothed_aggregation'
/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
)/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
+
Default: True
/solver/adjoint_linear/AMGCL/precond/coarsening/relax
(float
)/solver/adjoint_linear/AMGCL/precond/coarsening/relax
+
Default: 1
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
(object
)/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
+
Default: None
+
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
)/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
+
Default: 0
/solver/nonlinear
(object
)/solver/nonlinear
+
Default: None
+
/solver/nonlinear/solver
/solver/nonlinear/solver
+
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
/solver/nonlinear/solver/*
/solver/nonlinear/solver/*
+
Type: Newton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: ProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: RegularizedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: RegularizedProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseRegularizedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseRegularizedProjectedNewton +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
)/solver/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
)/solver/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
)/solver/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
)/solver/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: GradientDescent +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/erase_component_probability
(float
)/solver/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
Type: L-BFGS +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/history_size
(int
)/solver/nonlinear/solver/*/history_size
+
Default: 6
Type: BFGS +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
)/solver/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
)/solver/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
)/solver/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
)/solver/nonlinear/solver/*/epsilon
+
Default: 1e-08
Type: StochasticADAM +
/solver/nonlinear/solver/*/type
(string
)/solver/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
)/solver/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
)/solver/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
)/solver/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
)/solver/nonlinear/solver/*/epsilon
+
Default: 1e-08
/solver/nonlinear/solver/*/erase_component_probability
(float
)/solver/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
/solver/nonlinear/x_delta
(float
)/solver/nonlinear/x_delta
+
Default: 0
Range: [0, inf]
/solver/nonlinear/grad_norm
(float
)/solver/nonlinear/grad_norm
+
Default: 1e-08
Range: [0, inf]
/solver/nonlinear/first_grad_norm_tol
(float
)/solver/nonlinear/first_grad_norm_tol
+
Default: 1e-10
/solver/nonlinear/max_iterations
(int
)/solver/nonlinear/max_iterations
+
Default: 500
/solver/nonlinear/iterations_per_strategy
/solver/nonlinear/iterations_per_strategy
+
Default: 5
/solver/nonlinear/iterations_per_strategy/*
(int
)/solver/nonlinear/iterations_per_strategy/*
+
Default: 5
/solver/nonlinear/line_search
(object
)/solver/nonlinear/line_search
+
Default: None
+
/solver/nonlinear/line_search/method
(string
)/solver/nonlinear/line_search/method
+
Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/nonlinear/line_search/use_grad_norm_tol
(float
)/solver/nonlinear/line_search/use_grad_norm_tol
+
Default: 1e-06
/solver/nonlinear/line_search/min_step_size
(float
)/solver/nonlinear/line_search/min_step_size
+
Default: 1e-10
/solver/nonlinear/line_search/max_step_size_iter
(int
)/solver/nonlinear/line_search/max_step_size_iter
+
Default: 30
/solver/nonlinear/line_search/min_step_size_final
(float
)/solver/nonlinear/line_search/min_step_size_final
+
Default: 1e-20
/solver/nonlinear/line_search/max_step_size_iter_final
(int
)/solver/nonlinear/line_search/max_step_size_iter_final
+
Default: 100
/solver/nonlinear/line_search/default_init_step_size
(float
)/solver/nonlinear/line_search/default_init_step_size
+
Default: 1
/solver/nonlinear/line_search/step_ratio
(float
)/solver/nonlinear/line_search/step_ratio
+
Default: 0.5
/solver/nonlinear/line_search/Armijo
(object
)/solver/nonlinear/line_search/Armijo
+
Default: None
+
/solver/nonlinear/line_search/Armijo/c
(float
)/solver/nonlinear/line_search/Armijo/c
+
Default: 0.0001
/solver/nonlinear/line_search/RobustArmijo
(object
)/solver/nonlinear/line_search/RobustArmijo
+
Default: None
+
/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
)/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
+
Default: 0.1
/solver/nonlinear/allow_out_of_iterations
(bool
)/solver/nonlinear/allow_out_of_iterations
+
Default: False
/solver/nonlinear/L-BFGS
(object
)/solver/nonlinear/L-BFGS
+
Default: None
+
/solver/nonlinear/L-BFGS/history_size
(int
)/solver/nonlinear/L-BFGS/history_size
+
Default: 6
/solver/nonlinear/L-BFGS-B
(object
)/solver/nonlinear/L-BFGS-B
+
Default: None
+
/solver/nonlinear/L-BFGS-B/history_size
(int
)/solver/nonlinear/L-BFGS-B/history_size
+
Default: 6
/solver/nonlinear/Newton
(object
)/solver/nonlinear/Newton
+
Default: None
+
/solver/nonlinear/Newton/residual_tolerance
(float
)/solver/nonlinear/Newton/residual_tolerance
+
Default: 1e-05
/solver/nonlinear/Newton/reg_weight_min
(float
)/solver/nonlinear/Newton/reg_weight_min
+
Default: 1e-08
/solver/nonlinear/Newton/reg_weight_max
(float
)/solver/nonlinear/Newton/reg_weight_max
+
Default: 100000000.0
/solver/nonlinear/Newton/reg_weight_inc
(float
)/solver/nonlinear/Newton/reg_weight_inc
+
Default: 10
/solver/nonlinear/Newton/force_psd_projection
(bool
)/solver/nonlinear/Newton/force_psd_projection
+
Default: False
/solver/nonlinear/Newton/use_psd_projection
(bool
)/solver/nonlinear/Newton/use_psd_projection
+
Default: True
/solver/nonlinear/Newton/use_psd_projection_in_regularized
(bool
)/solver/nonlinear/Newton/use_psd_projection_in_regularized
+
Default: True
/solver/nonlinear/ADAM
(object
)/solver/nonlinear/ADAM
+
Default: None
+
/solver/nonlinear/ADAM/alpha
(float
)/solver/nonlinear/ADAM/alpha
+
Default: 0.001
/solver/nonlinear/ADAM/beta_1
(float
)/solver/nonlinear/ADAM/beta_1
+
Default: 0.9
/solver/nonlinear/ADAM/beta_2
(float
)/solver/nonlinear/ADAM/beta_2
+
Default: 0.999
/solver/nonlinear/ADAM/epsilon
(float
)/solver/nonlinear/ADAM/epsilon
+
Default: 1e-08
/solver/nonlinear/StochasticADAM
(object
)/solver/nonlinear/StochasticADAM
+
Default: None
+
/solver/nonlinear/StochasticADAM/alpha
(float
)/solver/nonlinear/StochasticADAM/alpha
+
Default: 0.001
/solver/nonlinear/StochasticADAM/beta_1
(float
)/solver/nonlinear/StochasticADAM/beta_1
+
Default: 0.9
/solver/nonlinear/StochasticADAM/beta_2
(float
)/solver/nonlinear/StochasticADAM/beta_2
+
Default: 0.999
/solver/nonlinear/StochasticADAM/epsilon
(float
)/solver/nonlinear/StochasticADAM/epsilon
+
Default: 1e-08
/solver/nonlinear/StochasticADAM/erase_component_probability
(float
)/solver/nonlinear/StochasticADAM/erase_component_probability
+
Default: 0.3
/solver/nonlinear/StochasticGradientDescent
(object
)/solver/nonlinear/StochasticGradientDescent
+
Default: None
+
/solver/nonlinear/StochasticGradientDescent/erase_component_probability
(float
)/solver/nonlinear/StochasticGradientDescent/erase_component_probability
+
Default: 0.3
/solver/nonlinear/box_constraints
(object
)/solver/nonlinear/box_constraints
+
Default: None
+
/solver/nonlinear/box_constraints/bounds
(list
)/solver/nonlinear/box_constraints/bounds
+
/solver/nonlinear/box_constraints/bounds/*
/solver/nonlinear/box_constraints/bounds/*
+
/solver/nonlinear/box_constraints/bounds/*/*
(float
)/solver/nonlinear/box_constraints/bounds/*/*
+
/solver/nonlinear/box_constraints/max_change
/solver/nonlinear/box_constraints/max_change
+
Default: -1
/solver/nonlinear/box_constraints/max_change/*
(float
)/solver/nonlinear/box_constraints/max_change/*
+
/solver/nonlinear/advanced
(object
)/solver/nonlinear/advanced
+
Default: None
+
/solver/nonlinear/advanced/f_delta
(float
)/solver/nonlinear/advanced/f_delta
+
Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/f_delta_step_tol
(int
)/solver/nonlinear/advanced/f_delta_step_tol
+
Default: 100
/solver/nonlinear/advanced/derivative_along_delta_x_tol
(float
)/solver/nonlinear/advanced/derivative_along_delta_x_tol
+
Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/apply_gradient_fd
(string
)/solver/nonlinear/advanced/apply_gradient_fd
+
Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/nonlinear/advanced/gradient_fd_eps
(float
)/solver/nonlinear/advanced/gradient_fd_eps
+
Default: 1e-07
/solver/augmented_lagrangian
(object
)/solver/augmented_lagrangian
+
initial_weight
and, in case DBC cannot be imposed, we update a as a *= scaling
until max_weight
. See IPC additional material
+Default: None
+
/solver/augmented_lagrangian/initial_weight
(float
)/solver/augmented_lagrangian/initial_weight
+
Default: 1000000.0
Range: [0, inf]
/solver/augmented_lagrangian/scaling
(float
)/solver/augmented_lagrangian/scaling
+
Default: 2.0
/solver/augmented_lagrangian/max_weight
(float
)/solver/augmented_lagrangian/max_weight
+
Default: 100000000.0
/solver/augmented_lagrangian/eta
(float
)/solver/augmented_lagrangian/eta
+
Default: 0.99
Range: [0, 1]
/solver/augmented_lagrangian/nonlinear
(object
)/solver/augmented_lagrangian/nonlinear
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/solver
/solver/augmented_lagrangian/nonlinear/solver
+
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
/solver/augmented_lagrangian/nonlinear/solver/*
/solver/augmented_lagrangian/nonlinear/solver/*
+
Type: Newton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: ProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: RegularizedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: RegularizedProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
Type: DenseRegularizedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: DenseRegularizedProjectedNewton +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
+
Default: 10
Type: GradientDescent +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
Type: L-BFGS +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/history_size
(int
)/solver/augmented_lagrangian/nonlinear/solver/*/history_size
+
Default: 6
Type: BFGS +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
+
Default: 1e-08
Type: StochasticADAM +
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
)/solver/augmented_lagrangian/nonlinear/solver/*/type
+
Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/x_delta
(float
)/solver/augmented_lagrangian/nonlinear/x_delta
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/grad_norm
(float
)/solver/augmented_lagrangian/nonlinear/grad_norm
+
Default: 1e-08
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
(float
)/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
+
Default: 1e-10
/solver/augmented_lagrangian/nonlinear/max_iterations
(int
)/solver/augmented_lagrangian/nonlinear/max_iterations
+
Default: 500
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
+
Default: 5
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
(int
)/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
+
Default: 5
/solver/augmented_lagrangian/nonlinear/line_search
(object
)/solver/augmented_lagrangian/nonlinear/line_search
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/method
(string
)/solver/augmented_lagrangian/nonlinear/line_search/method
+
Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
(float
)/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
+
Default: 1e-06
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
(float
)/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
+
Default: 1e-10
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
(int
)/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
+
Default: 30
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
(float
)/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
+
Default: 1e-20
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
(int
)/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
+
Default: 100
/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
(float
)/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
+
Default: 1
/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
(float
)/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
+
Default: 0.5
/solver/augmented_lagrangian/nonlinear/line_search/Armijo
(object
)/solver/augmented_lagrangian/nonlinear/line_search/Armijo
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
(float
)/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
+
Default: 0.0001
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
(object
)/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
+
Default: 0.1
/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
(bool
)/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
+
Default: False
/solver/augmented_lagrangian/nonlinear/L-BFGS
(object
)/solver/augmented_lagrangian/nonlinear/L-BFGS
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
(int
)/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
+
Default: 6
/solver/augmented_lagrangian/nonlinear/L-BFGS-B
(object
)/solver/augmented_lagrangian/nonlinear/L-BFGS-B
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
(int
)/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
+
Default: 6
/solver/augmented_lagrangian/nonlinear/Newton
(object
)/solver/augmented_lagrangian/nonlinear/Newton
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
(float
)/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
+
Default: 1e-05
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
+
Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
(float
)/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
+
Default: 10
/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
+
Default: False
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
+
Default: True
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
(bool
)/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
+
Default: True
/solver/augmented_lagrangian/nonlinear/ADAM
(object
)/solver/augmented_lagrangian/nonlinear/ADAM
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/ADAM/alpha
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM
(object
)/solver/augmented_lagrangian/nonlinear/StochasticADAM
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
+
Default: 0.001
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
+
Default: 0.9
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
+
Default: 0.999
/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
+
Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
(object
)/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
(float
)/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
+
Default: 0.3
/solver/augmented_lagrangian/nonlinear/box_constraints
(object
)/solver/augmented_lagrangian/nonlinear/box_constraints
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
(list
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
+
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
+
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
+
Default: -1
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
+
/solver/augmented_lagrangian/nonlinear/advanced
(object
)/solver/augmented_lagrangian/nonlinear/advanced
+
Default: None
+
/solver/augmented_lagrangian/nonlinear/advanced/f_delta
(float
)/solver/augmented_lagrangian/nonlinear/advanced/f_delta
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
(int
)/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
+
Default: 100
/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
(float
)/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
+
Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
(string
)/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
+
Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
(float
)/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
+
Default: 1e-07
/solver/contact
(object
)/solver/contact
+
Default: None
+
/solver/contact/CCD
(object
)/solver/contact/CCD
+
Default: None
+
/solver/contact/CCD/broad_phase
(string
)/solver/contact/CCD/broad_phase
+
Default: 'hash_grid'
Options: ['hash_grid', 'HG', 'brute_force', 'BF', 'spatial_hash', 'SH', 'bvh', 'BVH', 'sweep_and_prune', 'SAP', 'sweep_and_tiniest_queue', 'STQ']
/solver/contact/CCD/tolerance
(float
)/solver/contact/CCD/tolerance
+
Default: 1e-06
/solver/contact/CCD/max_iterations
(int
)/solver/contact/CCD/max_iterations
+
Default: 1000000
/solver/contact/friction_iterations
(int
)/solver/contact/friction_iterations
+
Default: 1
/solver/contact/friction_convergence_tol
(float
)/solver/contact/friction_convergence_tol
+
Default: 0.01
/solver/contact/barrier_stiffness
/solver/contact/barrier_stiffness
+
Default: 'adaptive'
Options: ['adaptive']
/solver/rayleigh_damping
(list
)/solver/rayleigh_damping
+
/solver/rayleigh_damping/*
/solver/rayleigh_damping/*
+
/solver/rayleigh_damping/*/form
(string
)/solver/rayleigh_damping/*/form
+
Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness_ratio
(float
)/solver/rayleigh_damping/*/stiffness_ratio
+
Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
)/solver/rayleigh_damping/*/lagging_iterations
+
Default: 1
/solver/rayleigh_damping/*/form
(string
)/solver/rayleigh_damping/*/form
+
Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness
(float
)/solver/rayleigh_damping/*/stiffness
+
Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
)/solver/rayleigh_damping/*/lagging_iterations
+
Default: 1
/solver/advanced
(object
)/solver/advanced
+
Default: None
+
/solver/advanced/cache_size
(int
)/solver/advanced/cache_size
+
Default: 900000
/solver/advanced/lump_mass_matrix
(bool
)/solver/advanced/lump_mass_matrix
+
Default: False
/solver/advanced/lagged_regularization_weight
(float
)/solver/advanced/lagged_regularization_weight
+
Default: 0
/solver/advanced/lagged_regularization_iterations
(int
)/solver/advanced/lagged_regularization_iterations
+
Default: 1
/boundary_conditions
(object
)/boundary_conditions
+
Default: None
+
/boundary_conditions/rhs
/boundary_conditions/rhs
+
/boundary_conditions/rhs/value
/boundary_conditions/rhs/value
+
/boundary_conditions/rhs/unit
(string
)/boundary_conditions/rhs/unit
+
/boundary_conditions/rhs/*
/boundary_conditions/rhs/*
+
Default: 0
/boundary_conditions/rhs/*/value
/boundary_conditions/rhs/*/value
+
/boundary_conditions/rhs/*/unit
(string
)/boundary_conditions/rhs/*/unit
+
/boundary_conditions/dirichlet_boundary
(list
)/boundary_conditions/dirichlet_boundary
+
/boundary_conditions/dirichlet_boundary/*
/boundary_conditions/dirichlet_boundary/*
+
Default: None
+
/boundary_conditions/dirichlet_boundary/*/id
/boundary_conditions/dirichlet_boundary/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/dirichlet_boundary/*/value
(list
)/boundary_conditions/dirichlet_boundary/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*
/boundary_conditions/dirichlet_boundary/*/value/*
+
/boundary_conditions/dirichlet_boundary/*/value/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*/unit
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/unit
+
/boundary_conditions/dirichlet_boundary/*/value/*/*
/boundary_conditions/dirichlet_boundary/*/value/*/*
+
Default: 0
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
+
/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
+
/boundary_conditions/dirichlet_boundary/*/time_reference
(list
)/boundary_conditions/dirichlet_boundary/*/time_reference
+
/boundary_conditions/dirichlet_boundary/*/time_reference/*
(float
)/boundary_conditions/dirichlet_boundary/*/time_reference/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*
/boundary_conditions/dirichlet_boundary/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/from
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
+
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/dirichlet_boundary/*/dimension
(list
)/boundary_conditions/dirichlet_boundary/*/dimension
+
/boundary_conditions/dirichlet_boundary/*/dimension/*
(bool
)/boundary_conditions/dirichlet_boundary/*/dimension/*
+
Default: True
/boundary_conditions/neumann_boundary
(list
)/boundary_conditions/neumann_boundary
+
/boundary_conditions/neumann_boundary/*
(object
)/boundary_conditions/neumann_boundary/*
+
Default: None
+
/boundary_conditions/neumann_boundary/*/id
/boundary_conditions/neumann_boundary/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/neumann_boundary/*/value
(list
)/boundary_conditions/neumann_boundary/*/value
+
/boundary_conditions/neumann_boundary/*/value/*
/boundary_conditions/neumann_boundary/*/value/*
+
/boundary_conditions/neumann_boundary/*/value/*/value
/boundary_conditions/neumann_boundary/*/value/*/value
+
/boundary_conditions/neumann_boundary/*/value/*/unit
(string
)/boundary_conditions/neumann_boundary/*/value/*/unit
+
/boundary_conditions/neumann_boundary/*/interpolation
(list
)/boundary_conditions/neumann_boundary/*/interpolation
+
/boundary_conditions/neumann_boundary/*/interpolation/*
/boundary_conditions/neumann_boundary/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/to
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/to
+
/boundary_conditions/neumann_boundary/*/interpolation/*/from
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/points
+
/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/points/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
)/boundary_conditions/neumann_boundary/*/interpolation/*/values
+
/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
)/boundary_conditions/neumann_boundary/*/interpolation/*/values/*
+
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
)/boundary_conditions/neumann_boundary/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/normal_aligned_neumann_boundary
(list
)/boundary_conditions/normal_aligned_neumann_boundary
+
/boundary_conditions/normal_aligned_neumann_boundary/*
(object
)/boundary_conditions/normal_aligned_neumann_boundary/*
+
Default: None
+
/boundary_conditions/normal_aligned_neumann_boundary/*/id
(int
)/boundary_conditions/normal_aligned_neumann_boundary/*/id
+
Range: [0, 2147483646]
/boundary_conditions/normal_aligned_neumann_boundary/*/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value
+
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
+
/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
+
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/pressure_boundary
(list
)/boundary_conditions/pressure_boundary
+
/boundary_conditions/pressure_boundary/*
(object
)/boundary_conditions/pressure_boundary/*
+
Default: None
+
/boundary_conditions/pressure_boundary/*/id
(int
)/boundary_conditions/pressure_boundary/*/id
+
Range: [0, 2147483646]
/boundary_conditions/pressure_boundary/*/value
/boundary_conditions/pressure_boundary/*/value
+
/boundary_conditions/pressure_boundary/*/value/value
/boundary_conditions/pressure_boundary/*/value/value
+
/boundary_conditions/pressure_boundary/*/value/unit
(string
)/boundary_conditions/pressure_boundary/*/value/unit
+
/boundary_conditions/pressure_boundary/*/value/*
/boundary_conditions/pressure_boundary/*/value/*
+
Default: 0
/boundary_conditions/pressure_boundary/*/value/*/value
/boundary_conditions/pressure_boundary/*/value/*/value
+
/boundary_conditions/pressure_boundary/*/value/*/unit
(string
)/boundary_conditions/pressure_boundary/*/value/*/unit
+
/boundary_conditions/pressure_boundary/*/time_reference
(list
)/boundary_conditions/pressure_boundary/*/time_reference
+
/boundary_conditions/pressure_boundary/*/time_reference/*
(float
)/boundary_conditions/pressure_boundary/*/time_reference/*
+
/boundary_conditions/pressure_cavity
(list
)/boundary_conditions/pressure_cavity
+
/boundary_conditions/pressure_cavity/*
(object
)/boundary_conditions/pressure_cavity/*
+
Default: None
+
/boundary_conditions/pressure_cavity/*/id
(int
)/boundary_conditions/pressure_cavity/*/id
+
Range: [0, 2147483646]
/boundary_conditions/pressure_cavity/*/value
/boundary_conditions/pressure_cavity/*/value
+
/boundary_conditions/pressure_cavity/*/value/value
/boundary_conditions/pressure_cavity/*/value/value
+
/boundary_conditions/pressure_cavity/*/value/unit
(string
)/boundary_conditions/pressure_cavity/*/value/unit
+
/boundary_conditions/obstacle_displacements
(list
)/boundary_conditions/obstacle_displacements
+
/boundary_conditions/obstacle_displacements/*
(object
)/boundary_conditions/obstacle_displacements/*
+
Default: None
+
/boundary_conditions/obstacle_displacements/*/id
/boundary_conditions/obstacle_displacements/*/id
+
Range: [0, 2147483646]
Options: ['all']
/boundary_conditions/obstacle_displacements/*/value
(list
)/boundary_conditions/obstacle_displacements/*/value
+
/boundary_conditions/obstacle_displacements/*/value/*
/boundary_conditions/obstacle_displacements/*/value/*
+
/boundary_conditions/obstacle_displacements/*/value/*/value
/boundary_conditions/obstacle_displacements/*/value/*/value
+
/boundary_conditions/obstacle_displacements/*/value/*/unit
(string
)/boundary_conditions/obstacle_displacements/*/value/*/unit
+
/boundary_conditions/obstacle_displacements/*/interpolation
(list
)/boundary_conditions/obstacle_displacements/*/interpolation
+
/boundary_conditions/obstacle_displacements/*/interpolation/*
/boundary_conditions/obstacle_displacements/*/interpolation/*
+
Type: none +
Default: {'type': 'none'}
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/to
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/to
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/from
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/from
+
Default: 0
Type: piecewise_constant +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic +
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/type
+
Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
)/boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
+
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
)/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
+
Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/periodic_boundary
(object
)/boundary_conditions/periodic_boundary
+
Default: None
+
/boundary_conditions/periodic_boundary/enabled
(bool
)/boundary_conditions/periodic_boundary/enabled
+
Default: False
/boundary_conditions/periodic_boundary/tolerance
(float
)/boundary_conditions/periodic_boundary/tolerance
+
Default: 1e-05
/boundary_conditions/periodic_boundary/correspondence
(list
)/boundary_conditions/periodic_boundary/correspondence
+
/boundary_conditions/periodic_boundary/correspondence/*
(list
)/boundary_conditions/periodic_boundary/correspondence/*
+
/boundary_conditions/periodic_boundary/correspondence/*/*
(float
)/boundary_conditions/periodic_boundary/correspondence/*/*
+
/boundary_conditions/periodic_boundary/linear_displacement_offset
(list
)/boundary_conditions/periodic_boundary/linear_displacement_offset
+
/boundary_conditions/periodic_boundary/linear_displacement_offset/*
(list
)/boundary_conditions/periodic_boundary/linear_displacement_offset/*
+
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
+
/boundary_conditions/periodic_boundary/fixed_macro_strain
(list
)/boundary_conditions/periodic_boundary/fixed_macro_strain
+
/boundary_conditions/periodic_boundary/fixed_macro_strain/*
(int
)/boundary_conditions/periodic_boundary/fixed_macro_strain/*
+
/boundary_conditions/periodic_boundary/force_zero_mean
(bool
)/boundary_conditions/periodic_boundary/force_zero_mean
+
Default: False
/initial_conditions
(object
)/initial_conditions
+
Default: None
+
/initial_conditions/solution
(list
)/initial_conditions/solution
+
/initial_conditions/solution/*
(object
)/initial_conditions/solution/*
+
Default: None
+
/initial_conditions/solution/*/id
(int
)/initial_conditions/solution/*/id
+
/initial_conditions/solution/*/value
(list
)/initial_conditions/solution/*/value
+
/initial_conditions/solution/*/value/*
/initial_conditions/solution/*/value/*
+
/initial_conditions/solution/*/value/*/value
/initial_conditions/solution/*/value/*/value
+
/initial_conditions/solution/*/value/*/unit
(string
)/initial_conditions/solution/*/value/*/unit
+
/initial_conditions/velocity
(list
)/initial_conditions/velocity
+
/initial_conditions/velocity/*
(object
)/initial_conditions/velocity/*
+
Default: None
+
/initial_conditions/velocity/*/id
(int
)/initial_conditions/velocity/*/id
+
/initial_conditions/velocity/*/value
(list
)/initial_conditions/velocity/*/value
+
/initial_conditions/velocity/*/value/*
/initial_conditions/velocity/*/value/*
+
/initial_conditions/velocity/*/value/*/value
/initial_conditions/velocity/*/value/*/value
+
/initial_conditions/velocity/*/value/*/unit
(string
)/initial_conditions/velocity/*/value/*/unit
+
/initial_conditions/acceleration
(list
)/initial_conditions/acceleration
+
/initial_conditions/acceleration/*
(object
)/initial_conditions/acceleration/*
+
Default: None
+
/initial_conditions/acceleration/*/id
(int
)/initial_conditions/acceleration/*/id
+
/initial_conditions/acceleration/*/value
(list
)/initial_conditions/acceleration/*/value
+
/initial_conditions/acceleration/*/value/*
/initial_conditions/acceleration/*/value/*
+
/initial_conditions/acceleration/*/value/*/value
/initial_conditions/acceleration/*/value/*/value
+
/initial_conditions/acceleration/*/value/*/unit
(string
)/initial_conditions/acceleration/*/value/*/unit
+
/output
(object
)/output
+
Default: None
+
/output/directory
(string
)/output/directory
+
Default: ''
/output/log
(object
)/output/log
+
Default: None
+
/output/log/level
/output/log/level
+
Range: [0, 6]
Default: 'debug'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/file_level
/output/log/file_level
+
Range: [0, 6]
Default: 'trace'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/path
(string
)/output/log/path
+
Default: ''
/output/log/quiet
(bool
)/output/log/quiet
+
Default: False
/output/json
(string
)/output/json
+
Default: ''
/output/restart_json
(string
)/output/restart_json
+
Default: ''
/output/paraview
(object
)/output/paraview
+
Default: None
+
/output/paraview/file_name
(string
)/output/paraview/file_name
+
Default: ''
/output/paraview/vismesh_rel_area
(float
)/output/paraview/vismesh_rel_area
+
Default: 1e-05
/output/paraview/skip_frame
(int
)/output/paraview/skip_frame
+
Default: 1
/output/paraview/high_order_mesh
(bool
)/output/paraview/high_order_mesh
+
Default: True
/output/paraview/volume
(bool
)/output/paraview/volume
+
Default: True
/output/paraview/surface
(bool
)/output/paraview/surface
+
Default: False
/output/paraview/wireframe
(bool
)/output/paraview/wireframe
+
Default: False
/output/paraview/points
(bool
)/output/paraview/points
+
Default: False
/output/paraview/options
(object
)/output/paraview/options
+
Default: None
+
/output/paraview/options/use_hdf5
(bool
)/output/paraview/options/use_hdf5
+
Default: False
/output/paraview/options/material
(bool
)/output/paraview/options/material
+
Default: False
/output/paraview/options/body_ids
(bool
)/output/paraview/options/body_ids
+
Default: False
/output/paraview/options/contact_forces
(bool
)/output/paraview/options/contact_forces
+
Default: False
/output/paraview/options/friction_forces
(bool
)/output/paraview/options/friction_forces
+
Default: False
/output/paraview/options/velocity
(bool
)/output/paraview/options/velocity
+
Default: False
/output/paraview/options/acceleration
(bool
)/output/paraview/options/acceleration
+
Default: False
/output/paraview/options/scalar_values
(bool
)/output/paraview/options/scalar_values
+
Default: True
/output/paraview/options/tensor_values
(bool
)/output/paraview/options/tensor_values
+
Default: True
/output/paraview/options/discretization_order
(bool
)/output/paraview/options/discretization_order
+
Default: True
/output/paraview/options/nodes
(bool
)/output/paraview/options/nodes
+
Default: True
/output/paraview/options/forces
(bool
)/output/paraview/options/forces
+
Default: False
/output/data
(object
)/output/data
+
Default: None
+
/output/data/solution
(string
)/output/data/solution
+
Default: ''
/output/data/full_mat
(string
)/output/data/full_mat
+
Default: ''
/output/data/stiffness_mat
(string
)/output/data/stiffness_mat
+
Default: ''
/output/data/stress_mat
(string
)/output/data/stress_mat
+
Default: ''
/output/data/state
(string
)/output/data/state
+
Default: ''
/output/data/rest_mesh
(string
)/output/data/rest_mesh
+
Default: ''
/output/data/mises
(string
)/output/data/mises
+
Default: ''
/output/data/nodes
(string
)/output/data/nodes
+
Default: ''
/output/data/advanced
(object
)/output/data/advanced
+
Default: None
+
/output/data/advanced/reorder_nodes
(bool
)/output/data/advanced/reorder_nodes
+
Default: False
/output/advanced
(object
)/output/advanced
+
Default: None
+
/output/advanced/timestep_prefix
(string
)/output/advanced/timestep_prefix
+
Default: 'step_'
/output/advanced/sol_on_grid
(float
)/output/advanced/sol_on_grid
+
Default: -1
/output/advanced/compute_error
(bool
)/output/advanced/compute_error
+
Default: True
/output/advanced/sol_at_node
(int
)/output/advanced/sol_at_node
+
Default: -1
/output/advanced/vis_boundary_only
(bool
)/output/advanced/vis_boundary_only
+
Default: False
/output/advanced/curved_mesh_size
(bool
)/output/advanced/curved_mesh_size
+
Default: False
/output/advanced/save_solve_sequence_debug
(bool
)/output/advanced/save_solve_sequence_debug
+
Default: False
/output/advanced/save_ccd_debug_meshes
(bool
)/output/advanced/save_ccd_debug_meshes
+
Default: False
/output/advanced/save_time_sequence
(bool
)/output/advanced/save_time_sequence
+
Default: True
/output/advanced/save_nl_solve_sequence
(bool
)/output/advanced/save_nl_solve_sequence
+
Default: False
/output/advanced/spectrum
(bool
)/output/advanced/spectrum
+
Default: False
/output/reference
(object
)/output/reference
+
Default: None
+
/output/reference/solution
(list
)/output/reference/solution
+
/output/reference/solution/*
(string
)/output/reference/solution/*
+
Default: ''
/output/reference/gradient
(list
)/output/reference/gradient
+
/output/reference/gradient/*
(string
)/output/reference/gradient/*
+
Default: ''
/input
(object
)/input
+
Default: None
+
/input/data
(object
)/input/data
+
Default: None
+
/input/data/state
(file
)/input/data/state
+
Default: ''
/input/data/reorder
(bool
)/input/data/reorder
+
Default: False
/tests
(object
)/tests
+
Default: None
+
/tests/err_h1
(float
)/tests/err_h1
+
Default: 0
/tests/err_h1_semi
(float
)/tests/err_h1_semi
+
Default: 0
/tests/err_l2
(float
)/tests/err_l2
+
Default: 0
/tests/err_linf
(float
)/tests/err_linf
+
Default: 0
/tests/err_linf_grad
(float
)/tests/err_linf_grad
+
Default: 0
/tests/err_lp
(float
)/tests/err_lp
+
Default: 0
/tests/margin
(float
)/tests/margin
+
Default: 1e-05
/tests/time_steps
/tests/time_steps
+
Default: 1
Range: [1, inf]
Options: ['all', 'static']
Polyfem uses modern cmake
, so it it should be enough to add this line
+
add_subdirectory(<path-to-polyfem> polyfem)
+
target_link_library(<your_target> polyfem)
+
SET(POLYFEM_NO_UI ON)
+
The interface of polyfem is similar as Python. You should create a polyfem::State
object and then call methods on it.
+Most of the fields are public for convenience but we discourage use or access them.
This is the main interface of polyfem::State
.
void init(const json &args)
+void init(const std::string &json_path)
+
loads the settings from a json object or file
+void set_log_level(int log_level)
+std::string get_log()
+
void load_mesh()
+void load_mesh(const std::string &path)
+void load_mesh(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F)
+
void set_boundary_side_set(const std::function<int(const polyfem::RowVectorNd&)> &boundary_marker)
+void set_boundary_side_set(const std::function<int(const polyfem::RowVectorNd&, bool)> &boundary_marker)
+void set_boundary_side_set(const std::function<int(const std::vector<int>&, bool)> &boundary_marker)
+
void solve();
+
Note the solver internally calls +
void build_basis();
+void assemble_stiffness_mat();
+void assemble_rhs();
+void solve_problem();
+
If you problem has a solution you can use +
void compute_errors();
+
const Eigen::MatrixXd &get_solution() const
+const Eigen::MatrixXd &get_pressure() const
+
void get_sampled_solution(Eigen::MatrixXd &points, Eigen::MatrixXi &tets, Eigen::MatrixXd &fun, bool boundary_only = false)
+void get_stresses(Eigen::MatrixXd &fun, bool boundary_only = false)
+void get_sampled_mises(Eigen::MatrixXd &fun, bool boundary_only = false)
+void get_sampled_mises_avg(Eigen::MatrixXd &fun, Eigen::MatrixXd &tfun, bool boundary_only = false)
+
vismesh_rel_area
to control density
+Exports the solution to VTU for visualization
+void get_sidesets(Eigen::MatrixXd &pts, Eigen::MatrixXi &faces, Eigen::MatrixXd &sidesets);
+
+void export_data();
+
+void save_vtu(const std::string &name);
+void save_wire(const std::string &name, bool isolines = false);
+
MIT License
+
+Copyright (c) 2018 polyfem
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
Generic problem problem, scalar or tensor depending on the pde. Warning, this problem needs to be used with the set_pde
function in settings
__init__(rhs=None, exact=None)
Initialize . See help(type()) for accurate signature.
+add_dirichlet_value(id, value, is_dirichlet_dim=None)
set the Dirichlet value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed, only for vector-based problems.
+add_neumann_value(id, value)
set the Neumann value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem
+set_dirichlet_value(id, value, is_dirichlet_dim=None)
set the Dirichlet value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed, only for vector-based problems.
+set_displacement(id, value, is_dim_fixed=None)
set the displacement value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_force(id, value)
set the force value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_neumann_value(id, value)
set the Neumann value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem
+set_velocity(id, value, is_dim_fixed=None)
set the velocity value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_x_symmetric(id)
x coorinate is fixed, y is allowed to move (Neumann)
+set_xy_symmetric(id)
xy coorinates are fixed, z is allowed to move (Neumann)
+set_xz_symmetric(id)
xz coorinates are fixed, y is allowed to move (Neumann)
+set_y_symmetric(id)
y coorinate is fixed, x is allowed to move (Neumann)
+set_yz_symmetric(id)
yz coorinates are fixed, x is allowed to move (Neumann)
+Class that encodes the settings of the solver, it models the input json file
+__init__(discr_order=1, pressure_discr_order=1, pde='Laplacian', nl_solver_rhs_steps=1, tend=1, time_steps=10)
Initialize . See help(type()) for accurate signature.
+serialize()
stringyfied json description of this class, used to run the solver
+set_advanced_option(key, value)
Used to set any advanced option not present in this class, for instance set_advanced_option(“use_spline”,True), see https://polyfem.github.io/documentation/ for full list
+set_isolines_export_path(path)
Sets the path to export the isolines of the solution
+set_material_params(name, value)
set the material parameters, for instance set_material_params(“E”, 200) sets the Young’s modulus E to 200. See https://polyfem.github.io/documentation/#formulations for full list
+set_pde(pde)
Sets the PDE to solve, use any of the polyfempy.PDEs
+set_problem(problem)
Sets the problem, use any of the problems in Problems or the Problem
+set_solution_export_path(path)
Sets the path to save the solution
+set_vtu_export_path(path, bounda_only=False)
Sets the path to export a vtu file with the results, use bounda_only to export only one layer of the mesh in 3d
+set_wireframe_export_path(path)
Sets the path to export a wireframe of the mesh
+pde
+Get the PDE
+problem
+Get the problem
+Classical driven cavity problem in fluid simulation
+Inflow/outflow problem for fluids. You can specify the sideset for the moving fluxes, the axial direction of the flow, and the list of obstacle sidesets. https://polyfem.github.io/documentation/#flow
+__init__(inflow=1, outflow=3, inflow_amout=0.25, outflow_amout=0.25, direction=0, obstacle=[7])
Initialize . See help(type()) for accurate signature.
+Franke problem with exact solution https://polyfem.github.io/documentation/#franke
+Generic scalar problem https://polyfem.github.io/documentation/#genericscalar
+add_dirichlet_value(id, value)
add the Dirichlet value value for the sideset id
+add_neumann_value(id, value)
add the Neumann value value for the sideset id
+Generic tensor problem https://polyfem.github.io/documentation/#generictensor
+add_dirichlet_value(id, value, is_dirichlet_dim=None)
add the Dirichlet value value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed.
+add_neumann_value(id, value)
add the Neumann value value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_displacement(id, value, is_dim_fixed=None)
set the displacement value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_force(id, value)
set the force value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+set_velocity(id, value, is_dim_fixed=None)
set the velocity value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
+time dependent gravity problem https://polyfem.github.io/documentation/#gravity
+__init__(force=0.1)
Initialize . See help(type()) for accurate signature.
+3D torsion problem, specify which sideset to fix (fixed_boundary) and which one turns turning_boundary https://polyfem.github.io/documentation/#torsionelastic
+__init__(axis_coordiante=2, n_turns=0.5, fixed_boundary=5, turning_boundary=6)
Initialize . See help(type()) for accurate signature.
+List of supported partial differential equations
+Bilaplacian = ‘Bilaplacian’
+Helmholtz = ‘Helmholtz’
+HookeLinearElasticity = ‘HookeLinearElasticity’
+IncompressibleLinearElasticity = ‘IncompressibleLinearElasticity’
+Laplacian = ‘Laplacian’
+LinearElasticity = ‘LinearElasticity’
+NeoHookean = ‘NeoHookean’
+NonLinearElasticity = ‘NonLinearElasticity’
+SaintVenant = ‘SaintVenant’
+Stokes = ‘Stokes’
+Bilaplacian = ‘Bilaplacian’
+Helmholtz = ‘Helmholtz’
+Laplacian = ‘Laplacian’
+Polyfem solver
+compute_errors()
compute the error
+export_data()
exports all data specified in the settings
+export_vtu(path: str)
exports the solution as vtu
+export_wire(path: str, isolines: bool = False)
exports wireframe of the mesh
+get_boundary_sidesets() -> tuple
exports get the boundary sideset, edges in 2d or trangles in 3d
+get_log() -> str
gets the log as json
+get_pressure() -> array
returns the pressure
+get_sampled_connectivity_frames() -> List[array]
returns the connectivity frames for a time dependent problem on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_mises(boundary_only: bool = False) -> array
returns the von mises stresses on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_mises_avg(boundary_only: bool = False) -> tuple
returns the von mises stresses and stress tensor averaged around a vertex on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_mises_avg_frames() -> List[array]
returns the von mises stresses per frame averaged around a vertex on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_mises_frames() -> List[array]
returns the von mises stresses frames on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_points_frames() -> List[array]
returns the points frames for a time dependent problem on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_solution(boundary_only: bool = False) -> tuple
returns the solution on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_sampled_solution_frames() -> List[array]
returns the solution frames for a time dependent problem on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+get_solution() -> array
returns the solution
+get_stresses(boundary_only: bool = False) -> array
returns the stress tensor on a densly sampled mesh, use ‘vismesh_rel_area’ to control density
+load_mesh_from_path(path: str, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from the path and ‘bc_tag’ from the json if any bc tags
+load_mesh_from_path_and_tags(path: str, bc_tag_path: str, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh and bc_tags from path
+load_mesh_from_settings(normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from the ‘mesh’ field of the json and ‘bc_tag’ if any bc tags
+set_boundary_side_set_from_bary(boundary_marker: Callable[[array[float64[1, n]]], int])
Sets the side set for the boundary conditions, the functions takes the barycenter of the boundary (edge or face)
+set_boundary_side_set_from_bary_and_boundary(boundary_marker: Callable[[array[float64[1, n]], bool], int])
Sets the side set for the boundary conditions, the functions takes the barycenter of the boundary (edge or face) and a flag that says if the element is boundary
+set_boundary_side_set_from_v_ids(boundary_marker: Callable[[List[int], bool], int])
Sets the side set for the boundary conditions, the functions takes the sorted list of vertex id and a flag that says if the element is boundary
+set_high_order_mesh(vertices: array, connectivity: array, nodes_pos: array, nodes_indices: List[List[int]], normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads an high order mesh from vertices, connectivity, nodes, and node indices mapping element to nodes
+set_log_level(log_level: int)
sets polyfem log level, valid value between 0 (all logs) and 6 (no logs)
+set_mesh(vertices: array, connectivity: array, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from vertices and connectivity
+set_rhs(matrix: array)
Sets the rhs
+set_rhs_from_path(path: str)
Loads the rhs from a file
+set_settings(json: object)
load PDE and problem parameters from the settings
+settings(json: object)
load PDE and problem parameters from the settings
+solve()
solve the pde
+HookeLinearElasticity = ‘HookeLinearElasticity’
+IncompressibleLinearElasticity = ‘IncompressibleLinearElasticity’
+LinearElasticity = ‘LinearElasticity’
+NeoHookean = ‘NeoHookean’
+NonLinearElasticity = ‘NonLinearElasticity’
+SaintVenant = ‘SaintVenant’
+Stokes = ‘Stokes’
+ +This library contains a cross-platform Eigen wrapper for many different external linear solvers including (but not limited to):
+const std::string solver_name = "Hypre"
+auto solver = LinearSolver::create(solver_name, "");
+
+// Configuration parameters like iteration or accuracy for iterative solvers
+// solver->setParameters(params);
+
+// System sparse matrix
+Eigen::SparseMatrix<double> A;
+
+// Right-hand side
+Eigen::VectorXd b;
+
+// Solution
+Eigen::VectorXd x(b.size());
+
+solver->analyzePattern(A, A.rows());
+solver->factorize(A);
+solver->solve(b, x);
+
You can use LinearSolver::availableSolvers()
to obtain the list of available solvers.
Polysolve uses a JSON file to provide parameters to the individual solvers. The following template can be used as a starting point, and a more detailed explanation of the parameters is below.
+{
+ "Eigen::LeastSquaresConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Eigen::DGMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Eigen::ConjugateGradient": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Eigen::BiCGSTAB": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Eigen::GMRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Eigen::MINRES": {
+ "max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "Pardiso": {
+ "mtype": -1
+ },
+ "Hypre": {
+ "max_iter": 1000,
+ "pre_max_iter": 1000,
+ "tolerance": 1e-6
+ },
+ "AMGCL": {
+ "precond": {
+ "relax": {
+ "degree": 16,
+ "type": "chebyshev",
+ "power_iters": 100,
+ "higher": 2,
+ "lower": 0.008333333333,
+ "scale": true
+ },
+ "class": "amg",
+ "max_levels": 6,
+ "direct_coarse": false,
+ "ncycle": 2,
+ "coarsening": {
+ "type": "smoothed_aggregation",
+ "estimate_spectral_radius": true,
+ "relax": 1,
+ "aggr": {
+ "eps_strong": 0
+ }
+ }
+ },
+ "solver": {
+ "tol": 1e-10,
+ "maxiter": 1000,
+ "type": "cg"
+ }
+ }
+}
+
max_iter
controls the solver’s iterations, default 1000
conv_tol
, tolerance
controls the convergence tolerance, default 1e-10
pre_max_iter
, number of pre iterations, default 1
The default parameters of the AMGCL solver are: +
{
+ "precond": {
+ "relax": {
+ "degree": 16,
+ "type": "chebyshev",
+ "power_iters": 100,
+ "higher": 2,
+ "lower": 0.008333333333,
+ "scale": true
+ },
+ "class": "amg",
+ "max_levels": 6,
+ "direct_coarse": false,
+ "ncycle": 2,
+ "coarsening": {
+ "type": "smoothed_aggregation",
+ "estimate_spectral_radius": true,
+ "relax": 1,
+ "aggr": {
+ "eps_strong": 0
+ }
+ }
+ },
+ "solver": {
+ "tol": 1e-10,
+ "maxiter": 1000,
+ "type": "cg"
+ }
+}
+
For a more details and options refer to the AMGCL documentation.
+mtype
, sets the matrix type, default 11
mtype | +Description | +
---|---|
1 | +real and structurally symmetric | +
2 | +real and symmetric positive definite | +
-2 | +real and symmetric indefinite | +
3 | +complex and structurally symmetric | +
4 | +complex and Hermitian positive definite | +
-4 | +complex and Hermitian indefinite | +
6 | +complex and symmetric | +
11 | +real and nonsymmetric | +
13 | +complex and nonsymmetric | +
Warning
+The python bindings are in beta. Expect API changes and possible bugs. Use at your own peril!
+I am making efforts to provide a simple python interface to Polyfem.
+For doing so I am maintaining a conda package which can be easily installed https://anaconda.org/conda-forge/polyfempy.
+Note that the conda deployment is slow and this tutorial will follow the deployment version.
+If you hare in a hurry for the juicy latest feature you can clone the repository Polyfem-python and use pip
to install:
+
python setup.py develop
+
python setup.py test
+
Note that the folders tests contain some tests which can be used as documentation.
+The documentation can be found here.
+Polyfem relies on 3 main objects:
+Settings
that contains the main settings such discretization order (e.g., \(P_1\) or \(P_2\)), material parameters, formulation, etc.Problem
that describe the problem you want to solve, that is the boundary conditions and right-hand side. There are some predefined problems, such as DrivenCavity
, or generic problems, such as GenericTensor
.Solver
that is the actual FEM solver.The usage of specific problems is indented for benchmarking, in general you want to use the GenericTensor
for tensor-based PDEs (e.g., elasticity) or GenericScalar
for scalar PDEs (e.g., Poisson).
A typical use of Polyfem is: +
settings = polyfempy.Settings()
+# set necessary settings
+# e.g. settings.discr_order = 2
+
+problem = polyfempy.GenericTensor() # or any other problem
+# set problem related data
+# e.g. problem.set_displacement(1, [0, 0], [True, False])
+
+settings.problem = problem
+
+#now we can create a solver and solve
+solver = polyfempy.Solver()
+
+solver.settings(settings)
+solver.load_mesh_from_path(mesh_path)
+
+solver.solve()
+
Note 1: for legacy reasons Polyfem always normalizes the mesh (i.e., rescale it to lay in the \([0,1]^d\) box, you can use normalize_mesh = False
while loading to disable this feature.
Note 2: the solution \(u(x)\) of a FEM solver are the coefficients \(u_i\) you need to multiply the bases \(\varphi_i(x)\) with: +$$ +u(x)=\sum u_i \varphi_i(x). +$$ +The coefficients \(u_i\) are unrelated with the mesh vertices because of reordering of the nodes or high-order bases. For instance \(P_2\) bases have additional nodes on the edges which do not exist in the mesh.
+For this reason Polyfem uses a visualization mesh where the solution is sampled at the vertices. +This mesh has two advantages: +1. it solves the problem of nodes reordering and additional nodes in the same way +2. it provides a “true” visualization for high order solution by densely sampling each element (a \(P_2\) solution is a piecewise quadratic function which is visualized in a picewise linear fashion, thus the need of a dense element sampling).
+To control the resolution of the visualization mesh use vismesh_rel_area
named-argument while loading.
For more details and nice interactive example go to the notebook tutorial!
+Or just play with the tutorial in
+ +This is a jupyter notebook. The "real" notebook can be found here.
+Polyfem relies on 3 main objects:
+Settings
that contains the main settings such discretization order (e.g., $P_1$ or $P_2$), material parameters, formulation, etc.Problem
that describe the problem you want to solve, that is the boundary conditions and right-hand side. There are some predefined problems, such as DrivenCavity
, or generic problems, such as GenericTensor
.Solver
that is the actual FEM solver.The usage of specific problems is indented for benchmarking, in general you want to use the GenericTensor
for tensor-based PDEs (e.g., elasticity) or GenericScalar
for scalar PDEs (e.g., Poisson).
A typical use of Polyfem is:
+settings = polyfempy.Settings(
+ pde=polyfempy.PDEs.LinearElasticity, # or any other PDE
+ discr_order=2
+)
+# set necessary settings
+# e.g. settings.discr_order = 2
+
+problem = polyfempy.Problem() # or any other problem
+# set problem related data
+# e.g. problem.set_displacement(1, [0, 0], [True, False])
+
+settings.problem = problem
+
+#now we can create a solver and solve
+solver = polyfempy.Solver()
+
+solver.settings(settings)
+solver.load_mesh_from_path(mesh_path, normalize_mesh=False)
+
+solver.solve()
+
Note 1: for legacy reasons Polyfem always normalizes the mesh (i.e., rescale it to lay in the $[0,1]^d$ box, you can use normalize_mesh=False
when loading to disable this feature.
Note 2: the solution $u(x)$ of a FEM solver are the coefficients $u_i$ you need to multiply the bases $\varphi_i(x)$ with: +$$ +u(x)=\sum u_i \varphi_i(x). +$$ +The coefficients $u_i$ are unrelated with the mesh vertices because of reordering of the nodes or high-order bases. For instance $P_2$ bases have additional nodes on the edges which do not exist in the mesh.
+For this reason Polyfem uses a visualization mesh where the solution is sampled at the vertices. +This mesh has two advantages:
+To control the resolution of the visualization mesh use vismesh_rel_area
while loading.
Some imports for plotting
+import meshplot as mp
+
algebra
+import numpy as np
+
and finally polyfempy
import polyfempy as pf
+
Creates a quad mesh of n_pts
x n_pts
in the form of a regular grid
def create_quad_mesh(n_pts):
+ extend = np.linspace(0,1,n_pts)
+ x, y = np.meshgrid(extend, extend, sparse=False, indexing='xy')
+ pts = np.column_stack((x.ravel(), y.ravel()))
+
+ faces = np.ndarray([(n_pts-1)**2, 4],dtype=np.int32)
+
+ index = 0
+ for i in range(n_pts-1):
+ for j in range(n_pts-1):
+ faces[index, :] = np.array([
+ j + i * n_pts,
+ j+1 + i * n_pts,
+ j+1 + (i+1) * n_pts,
+ j + (i+1) * n_pts
+ ])
+ index = index + 1
+
+ return pts, faces
+
This is the python version of the plate with hole example explained here.
+Set the mesh path
+mesh_path = "plane_hole.obj"
+
create settings:
+settings = pf.Settings(
+ discr_order=1,
+ pde=pf.PDEs.LinearElasticity
+)
+
and choose Young's modulus and poisson ratio
+settings.set_material_params("E", 210000)
+settings.set_material_params("nu", 0.3)
+
Next we setup the problem
+problem = pf.Problem()
+
sideset 1 has symetric boundary in $x$
+problem.set_x_symmetric(1)
+
sideset 4 has symmetric boundary in $y$
+problem.set_y_symmetric(4)
+
sideset 3 has a force of [100, 0] applied
+problem.set_force(3, [100, 0])
+
fianally set the problem
+settings.problem = problem
+
Solve! +Note: we normalize the mesh to be in $[0,1]^2$
+solver = pf.Solver()
+
+solver.settings(settings)
+solver.load_mesh_from_path(mesh_path, normalize_mesh=True)
+
+solver.solve()
+
Get the solution
+pts, tets, disp = solver.get_sampled_solution()
+
diplace the mesh
+vertices = pts + disp
+
and get the stresses
+mises, _ = solver.get_sampled_mises_avg()
+
finally plot with the above code
+mp.plot(vertices, tets, mises, return_plot=True)
+
Note that we used get_sampled_mises_avg
to get the Von Mises stresses because they depend on the Jacobian of the displacement which, becase we use $P_1$ elements, is piece-wise constant. To avoid that effect in get_sampled_mises_avg
the mises are averaged per vertex weighted by the area of the triangles. If you want the "real" mises just call
mises = solver.get_sampled_mises()
+mp.plot(vertices, tets, mises, return_plot=True)
+
This is the same example as before, but we use wildmeshing
to create a curved mesh.
import wildmeshing as wm
+mesh_path = "plane_hole.svg"
+
+v, f, nodes, F_nodes = wm.triangulate_svg(mesh_path, cut_outside=True)
+
Now we proceed as before
+#create settings
+settings = pf.Settings(
+ discr_order=1, #pick linear P_1 elements, even if the geometry is P_3
+ pde=pf.PDEs.LinearElasticity #Linear elasticity
+)
+
+#Material parameters
+settings.set_material_params("E", 210000)
+settings.set_material_params("nu", 0.3)
+
Next we setup the problem as before
+problem = pf.Problem()
+
+#sideset 1 is symmetric in x
+problem.set_x_symmetric(1)
+
+#sideset 4 is symmetric in y
+problem.set_y_symmetric(4)
+
+#sideset 3 has a force of [100, 0] applied
+problem.set_force(3, [100, 0])
+
fianally set the problem
+settings.problem = problem
+
Create the solver and load the high-order mesh, the only difference with respect to before
+solver = pf.Solver()
+
+solver.settings(settings)
+solver.set_high_order_mesh(v, f, nodes, F_nodes, normalize_mesh=True)
+
And finally, solve!
+solver.solve()
+
Get and plot the solution, same as before
+pts, tets, disp = solver.get_sampled_solution()
+
+#diplace the mesh
+vertices = pts + disp
+
+#get the stresses
+mises, _ = solver.get_sampled_mises_avg()
+
+#plot
+mp.plot(vertices, tets, mises, return_plot=True)
+
Non-linear example. We want to torque a 3D bar around the $z$ direction.
+The example is really similar as the one just above.
+Sets the mesh, create a solver, and load the mesh.
+In this case the mesh has already the correct size. We also choose a coarse visualization mesh
+mesh_path = "square_beam_h.HYBRID"
+solver = pf.Solver()
+solver.load_mesh_from_path(mesh_path, normalize_mesh=False, vismesh_rel_area=0.001)
+
We want to use the default sideset marking, top of the mesh is 5 and bottom is 6.
+Let's verify. We first extract the sidesets: p
are some point, t
triangles, and s
the sidesets from 1 to 6
p, t, s = solver.get_boundary_sidesets()
+
Now we can plot it
+tmp = np.zeros_like(s)
+tmp[s==5] = 1
+tmp[s==6] = 1
+
+mp.plot(p, t, tmp, return_plot=True)
+
Now we create the settings, as before.
+Note: It is an hex-mesh so we are using $Q_1$.
+Differently from before we want a non-linear material model: NeoHookean.
+To avoid ambiguities in the rotation, we want to do 5 steps of incremental loading.
+settings = pf.Settings(
+ discr_order=1,
+ pde=pf.PDEs.NonLinearElasticity,
+
+ nl_solver_rhs_steps=5
+)
+
Choose Young's modulus and Poisson's ratio, as before
+settings.set_material_params("E", 200)
+settings.set_material_params("nu", 0.35)
+
Now we setup problem with fixed sideset (5), rotating sideset (6), ahlf a tour along the $z$-axis.
+problem = pf.Torsion(
+ fixed_boundary=5, #sideset 5 is fixed
+ turning_boundary=6, #sideset 6 rotates
+
+ n_turns = 0.5, #by half a tour
+
+ axis_coordiante=2, #around the z-axis, 2
+
+)
+
and set the problem and solve
+settings.problem = problem
+
+#solving!
+solver.settings(settings)
+
+solver.solve()
+
takes approx 1 min because it is a complicated non-linear problem!
+Get solution and stesses as before
+Since we want to show only the surface there is no need of getting the whole volume, so we set boundary_only
to True
pts, tets, disp = solver.get_sampled_solution(boundary_only=True)
+vertices = pts + disp
+mises, _ = solver.get_sampled_mises_avg(boundary_only=True)
+
and plot the 3d result!
+mp.plot(vertices, tets, mises, shading={"flat":True}, return_plot=True)
+
Create the mesh using the utility function
+pts, faces = create_quad_mesh(50)
+
create settings, pick linear $Q_2$ elements for velocity and $Q_1$ for pressure and select stokes as material model.
+settings = pf.Settings(
+ discr_order=2,
+ pressure_discr_order=1,
+
+ pde=pf.PDEs.Stokes
+)
+
Set the viscosity of the fluid
+settings.set_material_params("viscosity", 1)
+
The default solver do not support mixed formulation, we need to choose UmfPackLU
settings.set_advanced_option("solver_type", "Eigen::UmfPackLU")
+
We use the standard Driven Cavity problem
+problem = pf.DrivenCavity()
+
we set the problem
+settings.problem = problem
+
We create the solver and set the settings
+solver = pf.Solver()
+solver.settings(settings)
+
This time we are using pts and faces instead of loading from the disk
+solver.set_mesh(pts, faces, vismesh_rel_area=0.001)
+
Solve!
+solver.solve()
+
We now get the solution and the pressure
+pts, tris, velocity = solver.get_sampled_solution()
+
and plot it!
+each = 10
+p = mp.plot(pts, tris, np.linalg.norm(velocity, axis=1), return_plot=True)
+p.add_lines(pts[0:pts.shape[0]:each,:], pts[0:pts.shape[0]:each,:]+velocity[0:pts.shape[0]:each,:]/6)
+p
+
Create the mesh using the utility function
+pts, faces = create_quad_mesh(50)
+
create settings, pick linear $Q_1$ elements, and a linear material model.
+In this case we want to run a simulation with $t\in[0, 10]$ and have 50 time steps.
+settings = pf.Settings(
+ discr_order=1,
+ pde=pf.PDEs.LinearElasticity,
+
+ tend=10,
+ time_steps=50
+)
+
Choose Young's modulus and poisson ratio
+settings.set_material_params("E", 1)
+settings.set_material_params("nu", 0.3)
+
Next we setup the problem, this doesnt have any parameters. It will...
+problem = pf.Gravity()
+
we set the problem
+settings.problem = problem
+
We create the solver and set the settings
+solver = pf.Solver()
+solver.settings(settings)
+
This time we are using pts
and faces
instead of loading from the disk (For efficienty in the browser we select a coarse vis mesh)
solver.set_mesh(pts, faces, vismesh_rel_area=0.001)
+
Solve!
+solver.solve()
+
Get the solution and the mises
+pts = solver.get_sampled_points_frames()
+tris = solver.get_sampled_connectivity_frames()
+disp = solver.get_sampled_solution_frames()
+mises = solver.get_sampled_mises_avg_frames()
+
def plot(frame, p=None):
+ return mp.plot(pts[frame]+disp[frame], tris[frame], mises[frame], return_plot=True, plot=p)
+
Before the animation, let's plot the solution some frames
+plot(0)
+
plot(5)
+
plot(11)
+
Now we are ready to do the animation
+p = plot(0)
+
+@mp.interact(frame=(0, len(mises)))
+def step(frame=0):
+ plot(frame, p)
+
A polyvalent C++ and Python FEM library.
PolyFEM is a simple C++ and Python finite element library. We provide a wide set of common PDEs including:
PolyFEM simplicity lies in the interface: just pick a problem, select some boundary condition, and solve. No need to construct complicated function spaces, or learn a new scripting language: everything is set-up trough a JSON interface or through the Setting class in python.
For instance, PolyFEM seamlessly integrates quad/hexes and tri/tets of order up to 4, and integrates state-of-the-art techniques such as the adaptive \\(p\\)-refinement presented in \u201cDecoupling Simulation Accuracy from Mesh Quality\u201d or the spline and polygonal bases in \u201cPoly-Spline Finite-Element Method\u201d.
The library is actively used in our research so expect frequent updates, fixes, and new features!
"},{"location":"#news","title":"News","text":"For more details refer to the C++ section
"},{"location":"#compilation","title":"Compilation","text":"All the C++ dependencies required to build the code are included. It should work on Windows, macOS, and Linux, and it should build out-of-the-box with CMake:
mkdir build\ncd build\ncmake ..\nmake -j4\n
"},{"location":"#usage","title":"Usage","text":"The main executable, ./PolyFEM_bin
, can be called as a command-line interface. Simply run:
./PolyFEM_bin --help\n
"},{"location":"#polyfem-in-python","title":"PolyFEM in Python","text":"For more details refer to the Python section
"},{"location":"#installation","title":"Installation","text":"We are making efforts to provide a simple python interface to Polyfem.
For doing so, we are maintaining a conda package that can be easily installed https://anaconda.org/conda-forge/polyfempy.
conda install -c conda-forge polyfempy\n
"},{"location":"#usage_1","title":"Usage","text":"Simply import the package!
import polyfempy\n
"},{"location":"#polysolve","title":"PolySolve","text":"PolyFEM heavily depends on external libraries for solving linear systems. If you need a linear system wrapper based on Eigen (but do not need the finite element setup) you use PolySolve.
"},{"location":"#citation","title":"Citation","text":"If you use PolyFEM in your project, please consider citing our work:
@misc{polyfem,\nauthor = {Teseo Schneider and J\u00e9r\u00e9mie Dumas and Xifeng Gao and Denis Zorin and Daniele Panozzo},\ntitle = {{PolyFEM}},\nhowpublished = \"\\url{https://polyfem.github.io/}\",\nyear = {2019},\n}\n
@article{Schneider:2019:PFM,\nauthor = {Schneider, Teseo and Dumas, J{\\'e}r{\\'e}mie and Gao, Xifeng and Botsch, Mario and Panozzo, Daniele and Zorin, Denis},\ntitle = {Poly-Spline Finite-Element Method},\njournal = {ACM Trans. Graph.},\nvolume = {38},\nnumber = {3},\nmonth = mar,\nyear = {2019},\nurl = {http://doi.acm.org/10.1145/3313797},\npublisher = {ACM}\n}\n
@article{Schneider:2018:DSA,\nauthor = {Teseo Schneider and Yixin Hu and J\u00e9r\u00e9mie Dumas and Xifeng Gao and Daniele Panozzo and Denis Zorin},\njournal = {ACM Transactions on Graphics},\nlink = {},\nmonth = {10},\nnumber = {6},\npublisher = {Association for Computing Machinery (ACM)},\ntitle = {Decoupling Simulation Accuracy from Mesh Quality},\nvolume = {37},\nyear = {2018}\n}\n
"},{"location":"#acknowledgments-funding","title":"Acknowledgments & Funding","text":"The software is being developed in the Geometric Computing Lab at NYU Courant Institute of Mathematical Sciences and the University of Victoria, Canada.
This work was partially supported by:
The code of PolyFEM itself is licensed under MIT License. However, please be mindful of third-party libraries which are used by PolyFEM and may be available under a different license.
"},{"location":"_json_spec/","title":"json spec","text":"/
(object
)
/\n
Description Root of the configuration file. Required /geometry
(list
) /geometry\n
Description List of geometry objects. /geometry/*
/geometry/*\n
/geometry/*
(object
)mesh_arrayplanegroundmesh_sequence Description Each geometry object stores a mesh, a set of transformations applied to it after loading, and a set of selections, which can be used to specify boundary conditions, materials, optimization parameters and other quantities that can be associated with a part of an object. Required
/geometry/*/mesh
(file
) /geometry/*/mesh\n
Description Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
Optional
/geometry/*/type
(string
) /geometry/*/type\n
Description Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Description Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Description Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Description Geometric transformations applied to the geometry after loading it. Default: None
Optional
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Description Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Description Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Description Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Description Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection\n
/geometry/*/volume_selection
(int
)/geometry/*/volume_selection
(file
)/geometry/*/volume_selection
(object
)/geometry/*/volume_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description Offsets the volume IDs loaded from the mesh.
Default: None
Optional
/geometry/*/volume_selection/id_offset
(int
) /geometry/*/volume_selection/id_offset\n
Description Offsets the volume IDs loaded from the mesh. Default: 0
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*\n
/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box
(list
) /geometry/*/volume_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*
(list
) /geometry/*/volume_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*/*
(float
) /geometry/*/volume_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center
(list
) /geometry/*/volume_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center/*
(float
) /geometry/*/volume_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1
(list
) /geometry/*/volume_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1/*
(float
) /geometry/*/volume_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2
(list
) /geometry/*/volume_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2/*
(float
) /geometry/*/volume_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point
(list
) /geometry/*/volume_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point/*
(float
) /geometry/*/volume_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal
(list
) /geometry/*/volume_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal/*
(float
) /geometry/*/volume_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis\n
/geometry/*/volume_selection/*/axis
(int
)/geometry/*/volume_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/volume_selection/*/position
(float
) /geometry/*/volume_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection\n
/geometry/*/surface_selection
(int
)/geometry/*/surface_selection
(file
)/geometry/*/surface_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*\n
/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box
(list
) /geometry/*/surface_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*
(list
) /geometry/*/surface_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*/*
(float
) /geometry/*/surface_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center
(list
) /geometry/*/surface_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center/*
(float
) /geometry/*/surface_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1
(list
) /geometry/*/surface_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1/*
(float
) /geometry/*/surface_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2
(list
) /geometry/*/surface_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2/*
(float
) /geometry/*/surface_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point
(list
) /geometry/*/surface_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point/*
(float
) /geometry/*/surface_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal
(list
) /geometry/*/surface_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal/*
(float
) /geometry/*/surface_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis\n
/geometry/*/surface_selection/*/axis
(int
)/geometry/*/surface_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/surface_selection/*/position
(float
) /geometry/*/surface_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
Required
/geometry/*/surface_selection/*/threshold
(float
) /geometry/*/surface_selection/*/threshold\n
Description Threshold for box side selection. Optional
/geometry/*/surface_selection/*/id_offset
(int
) /geometry/*/surface_selection/*/id_offset\n
Description ID offset of box side selection. Default: 0
/geometry/*/curve_selection
(object
) /geometry/*/curve_selection\n
Description Selection of curves Default: None
/geometry/*/point_selection
/geometry/*/point_selection\n
/geometry/*/point_selection
(int
)/geometry/*/point_selection
(file
)/geometry/*/point_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/point_selection/*
/geometry/*/point_selection/*\n
/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box
(list
) /geometry/*/point_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*
(list
) /geometry/*/point_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*/*
(float
) /geometry/*/point_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center
(list
) /geometry/*/point_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center/*
(float
) /geometry/*/point_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1
(list
) /geometry/*/point_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1/*
(float
) /geometry/*/point_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2
(list
) /geometry/*/point_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2/*
(float
) /geometry/*/point_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point
(list
) /geometry/*/point_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point/*
(float
) /geometry/*/point_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal
(list
) /geometry/*/point_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal/*
(float
) /geometry/*/point_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis\n
/geometry/*/point_selection/*/axis
(int
)/geometry/*/point_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/point_selection/*/position
(float
) /geometry/*/point_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
Required
/geometry/*/point_selection/*/threshold
(float
) /geometry/*/point_selection/*/threshold\n
Description Threshold for box side selection. Optional
/geometry/*/point_selection/*/id_offset
(int
) /geometry/*/point_selection/*/id_offset\n
Description ID offset of box side selection. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
Description number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Description Advanced options for geometry Default: None
Optional
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Description Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Description Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
Description parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Description Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Description Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
Description The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: mesh_array Description Each geometry object stores a mesh, a set of transformations applied to it after loading, and a set of selections, which can be used to specify boundary conditions, materials, optimization parameters and other quantities that can be associated with a part of an object. Required
/geometry/*/mesh
(file
) /geometry/*/mesh\n
Description Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/array
(object
) /geometry/*/array\n
Description Array of meshes Required /geometry/*/array/offset
(float
) /geometry/*/array/offset\n
Description Offset of the mesh in the array. /geometry/*/array/size
(list
) /geometry/*/array/size\n
Description Size of the array (two entries for 2D problems or three entries for 3D problems). /geometry/*/array/size/*
(int
) /geometry/*/array/size/*\n
Description Size of the array (two entries for 2D problems or three entries for 3D problems). Range: [1, inf]
Optional
/geometry/*/array/relative
(bool
) /geometry/*/array/relative\n
Description Is the offset value relative to the mesh\u2019s dimensions. Default: False
Optional
/geometry/*/type
(string
) /geometry/*/type\n
Description Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Description Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Description Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Description Geometric transformations applied to the geometry after loading it. Default: None
Optional
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Description Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Description Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Description Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Description Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection\n
/geometry/*/volume_selection
(int
)/geometry/*/volume_selection
(file
)/geometry/*/volume_selection
(object
)/geometry/*/volume_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description Offsets the volume IDs loaded from the mesh.
Default: None
Optional
/geometry/*/volume_selection/id_offset
(int
) /geometry/*/volume_selection/id_offset\n
Description Offsets the volume IDs loaded from the mesh. Default: 0
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*\n
/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box
(list
) /geometry/*/volume_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*
(list
) /geometry/*/volume_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*/*
(float
) /geometry/*/volume_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center
(list
) /geometry/*/volume_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center/*
(float
) /geometry/*/volume_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1
(list
) /geometry/*/volume_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1/*
(float
) /geometry/*/volume_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2
(list
) /geometry/*/volume_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2/*
(float
) /geometry/*/volume_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point
(list
) /geometry/*/volume_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point/*
(float
) /geometry/*/volume_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal
(list
) /geometry/*/volume_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal/*
(float
) /geometry/*/volume_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis\n
/geometry/*/volume_selection/*/axis
(int
)/geometry/*/volume_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/volume_selection/*/position
(float
) /geometry/*/volume_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection\n
/geometry/*/surface_selection
(int
)/geometry/*/surface_selection
(file
)/geometry/*/surface_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*\n
/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box
(list
) /geometry/*/surface_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*
(list
) /geometry/*/surface_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*/*
(float
) /geometry/*/surface_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center
(list
) /geometry/*/surface_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center/*
(float
) /geometry/*/surface_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1
(list
) /geometry/*/surface_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1/*
(float
) /geometry/*/surface_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2
(list
) /geometry/*/surface_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2/*
(float
) /geometry/*/surface_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point
(list
) /geometry/*/surface_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point/*
(float
) /geometry/*/surface_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal
(list
) /geometry/*/surface_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal/*
(float
) /geometry/*/surface_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis\n
/geometry/*/surface_selection/*/axis
(int
)/geometry/*/surface_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/surface_selection/*/position
(float
) /geometry/*/surface_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
Required
/geometry/*/surface_selection/*/threshold
(float
) /geometry/*/surface_selection/*/threshold\n
Description Threshold for box side selection. Optional
/geometry/*/surface_selection/*/id_offset
(int
) /geometry/*/surface_selection/*/id_offset\n
Description ID offset of box side selection. Default: 0
/geometry/*/curve_selection
(object
) /geometry/*/curve_selection\n
Description Selection of curves Default: None
/geometry/*/point_selection
/geometry/*/point_selection\n
/geometry/*/point_selection
(int
)/geometry/*/point_selection
(file
)/geometry/*/point_selection
(list
) Description Assign specified ID to all elements of the geometry.
Description Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Description List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/point_selection/*
/geometry/*/point_selection/*\n
/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
) Description Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box
(list
) /geometry/*/point_selection/*/box\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*
(list
) /geometry/*/point_selection/*/box/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*/*
(float
) /geometry/*/point_selection/*/box/*/*\n
Description FIXME: Missing documentation in the specification. Default: 0
Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center
(list
) /geometry/*/point_selection/*/center\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center/*
(float
) /geometry/*/point_selection/*/center/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1
(list
) /geometry/*/point_selection/*/p1\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1/*
(float
) /geometry/*/point_selection/*/p1/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2
(list
) /geometry/*/point_selection/*/p2\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2/*
(float
) /geometry/*/point_selection/*/p2/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point
(list
) /geometry/*/point_selection/*/point\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point/*
(float
) /geometry/*/point_selection/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal
(list
) /geometry/*/point_selection/*/normal\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal/*
(float
) /geometry/*/point_selection/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
Required
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
Description FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis\n
/geometry/*/point_selection/*/axis
(int
)/geometry/*/point_selection/*/axis
(string
) Description FIXME: Missing documentation in the specification.
Description FIXME: Missing documentation in the specification.
/geometry/*/point_selection/*/position
(float
) /geometry/*/point_selection/*/position\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
Description FIXME: Missing documentation in the specification. Default: False
Description Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
Required
/geometry/*/point_selection/*/threshold
(float
) /geometry/*/point_selection/*/threshold\n
Description Threshold for box side selection. Optional
/geometry/*/point_selection/*/id_offset
(int
) /geometry/*/point_selection/*/id_offset\n
Description ID offset of box side selection. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
Description number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Description Advanced options for geometry Default: None
Optional
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Description Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Description Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
Description parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Description Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Description Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
Description The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: plane Description Plane geometry object defined by its origin and normal. Required
/geometry/*/point
(list
) /geometry/*/point\n
Description Point on plane (two entries for 2D problems or three entries for 3D problems). /geometry/*/point/*
(float
) /geometry/*/point/*\n
Description FIXME: Missing documentation in the specification. /geometry/*/normal
(list
) /geometry/*/normal\n
Description Normal of plane (two entries for 2D problems or three entries for 3D problems). /geometry/*/normal/*
(float
) /geometry/*/normal/*\n
Description FIXME: Missing documentation in the specification. Optional
/geometry/*/type
(string
) /geometry/*/type\n
Description Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Description Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
Description The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: ground Description Plane orthogonal to gravity defined by its height. Required
/geometry/*/height
(float
) /geometry/*/height\n
Description Height of ground plane. Optional
/geometry/*/type
(string
) /geometry/*/type\n
Description Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Description Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
Description The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: mesh_sequence Description Mesh sequence. Required
/geometry/*/mesh_sequence
/geometry/*/mesh_sequence\n
/geometry/*/mesh_sequence
(string
)/geometry/*/mesh_sequence
(list
) Description Directory (or GLOB) of meshes for the mesh sequence.
Description List of mesh files for the mesh sequence.
/geometry/*/mesh_sequence/*
(file
) /geometry/*/mesh_sequence/*\n
Description Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/fps
(int
) /geometry/*/fps\n
Description Frames of the mesh sequence per second. Optional
/geometry/*/type
(string
) /geometry/*/type\n
Description Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Description Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Description Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Description Geometric transformations applied to the geometry after loading it. Default: None
Optional
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Description Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Description Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Description Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Description Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Description Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
Description FIXME: Missing documentation in the specification. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
Description number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Description Advanced options for geometry Default: None
Optional
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Description Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Description Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
Description parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Description Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Description Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
Description The geometry elements are not included in deforming geometry, only in collision computations Default: False
/materials
(list
) /materials\n
Description Material Parameters lists including ID pointing to volume selection, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), Density (\\(\\rho\\)), or Lam\u00e9 constants (\\(\\lambda\\) and \\(\\mu\\)). /materials/*
/materials/*\n
NeoHookeanNeoHookeanMooneyRivlinMooneyRivlin3ParamMooneyRivlin3ParamSymbolicUnconstrainedOgdenIncompressibleOgdenLinearElasticityLinearElasticityHookeLinearElasticityHookeLinearElasticitySaintVenantSaintVenantStokesNavierStokesOperatorSplittingIncompressibleLinearElasticityIncompressibleLinearElasticityLaplacianHelmholtzBilaplacianAMIPSFixedCorotationalFixedCorotational Type: NeoHookean Description Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: NeoHookean Description Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
Description The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: MooneyRivlin Description Material Parameters including ID, for Mooney-Rivlin Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
Description The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
Description The unit of the Value /materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: MooneyRivlin3Param Description Material Parameters including ID, for Mooney-Rivlin Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
Description The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
Description The unit of the Value /materials/*/c3
/materials/*/c3\n
/materials/*/c3
(float
)/materials/*/c3
(string
)/materials/*/c3
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c3/value
/materials/*/c3/value\n
/materials/*/c3/value
(float
)/materials/*/c3/value
(string
)/materials/*/c3/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c3/unit
(string
) /materials/*/c3/unit\n
Description The unit of the Value /materials/*/d1
/materials/*/d1\n
/materials/*/d1
(float
)/materials/*/d1
(string
)/materials/*/d1
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/d1/value
/materials/*/d1/value\n
/materials/*/d1/value
(float
)/materials/*/d1/value
(string
)/materials/*/d1/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/d1/unit
(string
) /materials/*/d1/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: MooneyRivlin3ParamSymbolic Description Material Parameters including ID, for Mooney-Rivlin Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
Description The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
Description The unit of the Value /materials/*/c3
/materials/*/c3\n
/materials/*/c3
(float
)/materials/*/c3
(string
)/materials/*/c3
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c3/value
/materials/*/c3/value\n
/materials/*/c3/value
(float
)/materials/*/c3/value
(string
)/materials/*/c3/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c3/unit
(string
) /materials/*/c3/unit\n
Description The unit of the Value /materials/*/d1
/materials/*/d1\n
/materials/*/d1
(float
)/materials/*/d1
(string
)/materials/*/d1
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/d1/value
/materials/*/d1/value\n
/materials/*/d1/value
(float
)/materials/*/d1/value
(string
)/materials/*/d1/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/d1/unit
(string
) /materials/*/d1/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: UnconstrainedOgden Description Material Parameters including ID, for Ogden. Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/alphas
/materials/*/alphas\n
/materials/*/alphas
(float
)/materials/*/alphas
(string
)/materials/*/alphas
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/alphas/value
/materials/*/alphas/value\n
/materials/*/alphas/value
(float
)/materials/*/alphas/value
(string
)/materials/*/alphas/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/alphas/unit
(string
) /materials/*/alphas/unit\n
Description The unit of the Value /materials/*/mus
(list
) /materials/*/mus\n
Description Ogden mu /materials/*/mus/*
/materials/*/mus/*\n
/materials/*/mus/*
(float
)/materials/*/mus/*
(string
)/materials/*/mus/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/mus/*/value
/materials/*/mus/*/value\n
/materials/*/mus/*/value
(float
)/materials/*/mus/*/value
(string
)/materials/*/mus/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/mus/*/unit
(string
) /materials/*/mus/*/unit\n
Description The unit of the Value /materials/*/Ds
(list
) /materials/*/Ds\n
Description Ogden D /materials/*/Ds/*
/materials/*/Ds/*\n
/materials/*/Ds/*
(float
)/materials/*/Ds/*
(string
)/materials/*/Ds/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/Ds/*/value
/materials/*/Ds/*/value\n
/materials/*/Ds/*/value
(float
)/materials/*/Ds/*/value
(string
)/materials/*/Ds/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/Ds/*/unit
(string
) /materials/*/Ds/*/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: IncompressibleOgden Description Material Parameters including ID, for Ogden. Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c
/materials/*/c\n
/materials/*/c
(float
)/materials/*/c
(string
)/materials/*/c
(object
)/materials/*/c
(list
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c/value
/materials/*/c/value\n
/materials/*/c/value
(float
)/materials/*/c/value
(string
)/materials/*/c/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c/unit
(string
) /materials/*/c/unit\n
Description The unit of the Value Description Coefficient(s) of Incompressible Ogden
/materials/*/c/*
/materials/*/c/*\n
/materials/*/c/*
(float
)/materials/*/c/*
(string
)/materials/*/c/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/c/*/value
/materials/*/c/*/value\n
/materials/*/c/*/value
(float
)/materials/*/c/*/value
(string
)/materials/*/c/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/c/*/unit
(string
) /materials/*/c/*/unit\n
Description The unit of the Value /materials/*/m
/materials/*/m\n
/materials/*/m
(float
)/materials/*/m
(string
)/materials/*/m
(object
)/materials/*/m
(list
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/m/value
/materials/*/m/value\n
/materials/*/m/value
(float
)/materials/*/m/value
(string
)/materials/*/m/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/m/unit
(string
) /materials/*/m/unit\n
Description The unit of the Value Description Exponent(s) of Incompressible Ogden
/materials/*/m/*
/materials/*/m/*\n
/materials/*/m/*
(float
)/materials/*/m/*
(string
)/materials/*/m/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/m/*/value
/materials/*/m/*/value\n
/materials/*/m/*/value
(float
)/materials/*/m/*/value
(string
)/materials/*/m/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/m/*/unit
(string
) /materials/*/m/*/unit\n
Description The unit of the Value /materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: LinearElasticity Description Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: LinearElasticity Description Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
Description The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: HookeLinearElasticity Description Material Parameters including ID, E, nu, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: HookeLinearElasticity Description Material Parameters including ID, E, nu, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
) /materials/*/elasticity_tensor\n
Description Symmetric elasticity tensor /materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*\n
/materials/*/elasticity_tensor/*
(float
)/materials/*/elasticity_tensor/*
(string
)/materials/*/elasticity_tensor/*
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value\n
/materials/*/elasticity_tensor/*/value
(float
)/materials/*/elasticity_tensor/*/value
(string
)/materials/*/elasticity_tensor/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/elasticity_tensor/*/unit
(string
) /materials/*/elasticity_tensor/*/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: SaintVenant Description Material Parameters including ID, E, nu, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: SaintVenant Description Material Parameters including ID, E, nu, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
) /materials/*/elasticity_tensor\n
Description Symmetric elasticity tensor /materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*\n
/materials/*/elasticity_tensor/*
(float
)/materials/*/elasticity_tensor/*
(string
)/materials/*/elasticity_tensor/*
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value\n
/materials/*/elasticity_tensor/*/value
(float
)/materials/*/elasticity_tensor/*/value
(string
)/materials/*/elasticity_tensor/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/elasticity_tensor/*/unit
(string
) /materials/*/elasticity_tensor/*/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: Stokes Description Material Parameters including ID, viscosity, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: NavierStokes Description Material Parameters including ID, viscosity, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: OperatorSplitting Description Material Parameters including ID, viscosity, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: IncompressibleLinearElasticity Description Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: IncompressibleLinearElasticity Description Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
Description The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: Laplacian Description Material Parameters including ID, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: Helmholtz Description Material Parameters including ID, k, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: Bilaplacian Description Material Parameters including ID, density (\\(\\rho\\)) Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value Type: AMIPS Description Material Parameters including ID Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID Type: FixedCorotational Description Material Parameters including ID Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
Description The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Type: FixedCorotational Description Material Parameters including ID Required
/materials/*/type
(string
) /materials/*/type\n
Description Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
Description The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
Description The unit of the Value Optional
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Description Volume selection ID
Default: 0
Description Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Description Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Description Value as a constant float
Default: 1
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
Description The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
Description The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
Description The unit of the Value Optional
/units
(object
) /units\n
Description Basic units used in the code. Default: None
Optional
/units/length
(string
) /units/length\n
Description Length unit. Default: 'm'
/units/mass
(string
) /units/mass\n
Description Mass unit. Default: 'kg'
/units/time
(string
) /units/time\n
Description Time unit. Default: 's'
/units/characteristic_length
(float
) /units/characteristic_length\n
Description Characteristic length, used for tolerances. Default: 1
/preset_problem
/preset_problem\n
LinearQuadraticCubicSineFrankeFrankeOldGenericScalarExactZero_BCElasticWalkTorsionElasticDoubleTorsionElasticElasticZeroBCElasticExactElasticCantileverExactCompressionElasticExactQuadraticElasticExactLinearElasticExactPointBasedTensorKernelNodeTimeDependentScalarMinSurfGravityConstantVelocityTwoSpheresDrivenCavityDrivenCavityC0DrivenCavitySmoothFlowFlowWithObstacleCornerFlowUnitFlowWithObstacleStokesLawTaylorGreenVortexSimpleStokeProblemExactSineStokeProblemExactTransientStokeProblemExactKovnaszyAirfoilLshapeTestProblemBilaplacianProblemWithSolution Type: Linear Description TODO
Default: 'skip'
Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Quadratic Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Cubic Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Sine Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Franke Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FrankeOld Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: GenericScalarExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/func
(int
) /preset_problem/func\n
Description TODO Default: 0
Type: Zero_BC Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Elastic Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Walk Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TorsionElastic Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/axis_coordiante
(int
) /preset_problem/axis_coordiante\n
Description TODO Default: 2
/preset_problem/n_turns
(float
) /preset_problem/n_turns\n
Description TODO Default: 0.5
/preset_problem/fixed_boundary
(int
) /preset_problem/fixed_boundary\n
Description TODO Default: 5
/preset_problem/turning_boundary
(int
) /preset_problem/turning_boundary\n
Description TODO Default: 6
/preset_problem/bbox_center
(list
) /preset_problem/bbox_center\n
Description TODO /preset_problem/bbox_center/*
(float
) /preset_problem/bbox_center/*\n
Description TODO Default: 0
Type: DoubleTorsionElastic Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/axis_coordiante0
(int
) /preset_problem/axis_coordiante0\n
Description TODO Default: 2
/preset_problem/axis_coordiante1
(int
) /preset_problem/axis_coordiante1\n
Description TODO Default: 2
/preset_problem/angular_v0
(float
) /preset_problem/angular_v0\n
Description TODO Default: 0.5
/preset_problem/angular_v1
(float
) /preset_problem/angular_v1\n
Description TODO Default: -0.5
/preset_problem/turning_boundary0
(int
) /preset_problem/turning_boundary0\n
Description TODO Default: 5
/preset_problem/turning_boundary1
(int
) /preset_problem/turning_boundary1\n
Description TODO Default: 6
/preset_problem/bbox_center
(list
) /preset_problem/bbox_center\n
Description TODO /preset_problem/bbox_center/*
(float
) /preset_problem/bbox_center/*\n
Description TODO Default: 0
Type: ElasticZeroBC Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticCantileverExact Description TODO, add displacement, E, nu, formulation, mesh_size Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CompressionElasticExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: QuadraticElasticExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: LinearElasticExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: PointBasedTensor Description TODO, add optionals Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Kernel Description TODO, add optionals Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/formulation
(string
) /preset_problem/formulation\n
Description TODO Default: ''
/preset_problem/n_kernels
(int
) /preset_problem/n_kernels\n
Description TODO Default: 0
/preset_problem/kernel_distance
(float
) /preset_problem/kernel_distance\n
Description TODO Default: 0
/preset_problem/kernel_weights
(string
) /preset_problem/kernel_weights\n
Description TODO Default: ''
Type: Node Description TODO, add optionals Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TimeDependentScalar Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: MinSurf Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Gravity Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: ConstantVelocity Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TwoSpheres Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavity Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavityC0 Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavitySmooth Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Flow Description TODO, add inflow, outflow, inflow_amout, outflow_amout, direction, obstacle Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FlowWithObstacle Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: CornerFlow Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: UnitFlowWithObstacle Description TODO, add inflow_id, direction, no_slip Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: StokesLaw Description TODO, add radius Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
Description TODO Default: 1
Type: TaylorGreenVortex Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
Description TODO Default: 1
Type: SimpleStokeProblemExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/func
(int
) /preset_problem/func\n
Description TODO Default: 0
Type: SineStokeProblemExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TransientStokeProblemExact Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/func
(int
) /preset_problem/func\n
Description TODO Default: 0
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
Description TODO Default: 1
Type: Kovnaszy Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
Description TODO Default: 1
Type: Airfoil Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: Lshape Description TODO Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Optional
Type: TestProblem Description TODO, type, omega, is_scalar Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: BilaplacianProblemWithSolution Description TODO, type, omega, is_scalar Required
/preset_problem/type
(string
) /preset_problem/type\n
Description Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/common
(file
) /common\n
Description Path to common settings will patch the current file. Default: ''
Extensions: ['.json']
/root_path
(string
) /root_path\n
Description Path for all relative paths, set automatically to the folder containing this JSON. Default: ''
/space
(object
) /space\n
Description Options related to the FE space. Default: None
Optional
/space/discr_order
/space/discr_order\n
/space/discr_order
(int
)/space/discr_order
(file
)/space/discr_order
(list
) Description Lagrange element order for the space for the main unknown, for all elements.
Default: 1
Description Path to file containing Lagrange element order for the space for the main unknown per element.
Extensions: ['.txt', '.bin']
Description List of Lagrange element order for the space for the main unknown with volume IDs.
/space/discr_order/*
(object
) /space/discr_order/*\n
Description Lagrange element order for the a space tagged with volume ID for the main unknown. Required /space/discr_order/*/id
/space/discr_order/*/id\n
/space/discr_order/*/id
(int
)/space/discr_order/*/id
(list
) Description Volume selection ID to apply the discr_order to.
Description List of volume selection IDs to apply the discr_order to.
/space/discr_order/*/id/*
(int
) /space/discr_order/*/id/*\n
Description Volume selection ID to apply the discr_order to. /space/discr_order/*/order
(int
) /space/discr_order/*/order\n
Description Lagrange element order for the space for the main unknown, for all elements. /space/pressure_discr_order
(int
) /space/pressure_discr_order\n
Description Lagrange element order for the space for the pressure unknown, for all elements. Default: 1
/space/basis_type
(string
) /space/basis_type\n
Description Type of basis to use for non polygonal element, one of Lagrange, Spline, or Serendipity. Spline or Serendipity work only for quad/hex meshes Default: 'Lagrange'
Options: ['Lagrange', 'Spline', 'Serendipity']
/space/poly_basis_type
(string
) /space/poly_basis_type\n
Description Type of basis to use for a polygonal element, one of MFSHarmonic, MeanValue, or Wachspress see \u2018PolySpline..\u2019 paper for details. Default: 'MFSHarmonic'
Options: ['MFSHarmonic', 'MeanValue', 'Wachspress']
/space/use_p_ref
(bool
) /space/use_p_ref\n
Description Perform a priori p-refinement based on element shape, as described in \u2018Decoupling..\u2019 paper. Default: False
/space/remesh
(object
) /space/remesh\n
Description Settings for adaptive remeshing Default: None
Optional
/space/remesh/enabled
(bool
) /space/remesh/enabled\n
Description Whether to do adaptive remeshing Default: False
/space/remesh/split
(object
) /space/remesh/split\n
Description Settings for adaptive remeshing edge splitting operations Default: None
Optional
/space/remesh/split/enabled
(bool
) /space/remesh/split/enabled\n
Description Whether to do edge splitting in adaptive remeshing Default: True
/space/remesh/split/acceptance_tolerance
(float
) /space/remesh/split/acceptance_tolerance\n
Description Accept split operation if energy decreased by at least x Default: 0.001
Range: [0, inf]
/space/remesh/split/culling_threshold
(float
) /space/remesh/split/culling_threshold\n
Description Split operation culling threshold on energy Default: 0.95
Range: [0, 1]
/space/remesh/split/max_depth
(int
) /space/remesh/split/max_depth\n
Description Maximum depth split per time-step Default: 3
Range: [1, inf]
/space/remesh/split/min_edge_length
(float
) /space/remesh/split/min_edge_length\n
Description Minimum edge length to split Default: 1e-06
Range: [0, inf]
/space/remesh/collapse
(object
) /space/remesh/collapse\n
Description Settings for adaptive remeshing edge collapse operations Default: None
Optional
/space/remesh/collapse/enabled
(bool
) /space/remesh/collapse/enabled\n
Description Whether to do edge collapse in adaptive remeshing Default: True
/space/remesh/collapse/acceptance_tolerance
(float
) /space/remesh/collapse/acceptance_tolerance\n
Description Accept collapse operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/collapse/culling_threshold
(float
) /space/remesh/collapse/culling_threshold\n
Description Collapse operation culling threshold on energy Default: 0.01
Range: [0, 1]
/space/remesh/collapse/max_depth
(int
) /space/remesh/collapse/max_depth\n
Description Maximum depth collapse per time-step Default: 3
Range: [1, inf]
/space/remesh/collapse/rel_max_edge_length
(float
) /space/remesh/collapse/rel_max_edge_length\n
Description Length of maximum edge length to collapse relative to initial minimum edge length Default: 1
Range: [0, inf]
/space/remesh/collapse/abs_max_edge_length
(float
) /space/remesh/collapse/abs_max_edge_length\n
Description Length of maximum edge length to collapse in absolute units of distance Default: 1e+100
Range: [0, inf]
/space/remesh/swap
(object
) /space/remesh/swap\n
Description Settings for adaptive remeshing edge/face swap operations Default: None
Optional
/space/remesh/swap/enabled
(bool
) /space/remesh/swap/enabled\n
Description Whether to do edge/face swap in adaptive remeshing Default: False
/space/remesh/swap/acceptance_tolerance
(float
) /space/remesh/swap/acceptance_tolerance\n
Description Accept swap operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/swap/max_depth
(int
) /space/remesh/swap/max_depth\n
Description Maximum depth swap per time-step Default: 3
Range: [1, inf]
/space/remesh/smooth
(object
) /space/remesh/smooth\n
Description Settings for adaptive remeshing vertex smoothing operations Default: None
Optional
/space/remesh/smooth/enabled
(bool
) /space/remesh/smooth/enabled\n
Description Whether to do vertex smoothing in adaptive remeshing Default: False
/space/remesh/smooth/acceptance_tolerance
(float
) /space/remesh/smooth/acceptance_tolerance\n
Description Accept smooth operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/smooth/max_iters
(int
) /space/remesh/smooth/max_iters\n
Description Maximum number of smoothing iterations per time-step Default: 1
Range: [1, inf]
/space/remesh/local_relaxation
(object
) /space/remesh/local_relaxation\n
Description Settings for adaptive remeshing local relaxation Default: None
Optional
/space/remesh/local_relaxation/local_mesh_n_ring
(int
) /space/remesh/local_relaxation/local_mesh_n_ring\n
Description Size of n-ring for local relaxation Default: 2
/space/remesh/local_relaxation/local_mesh_rel_area
(float
) /space/remesh/local_relaxation/local_mesh_rel_area\n
Description Minimum area for local relaxation Default: 0.01
/space/remesh/local_relaxation/max_nl_iterations
(int
) /space/remesh/local_relaxation/max_nl_iterations\n
Description Maximum number of nonlinear solver iterations before acceptance check Default: 1
/space/remesh/type
(string
) /space/remesh/type\n
Description Type of adaptive remeshing to use. Default: 'physics'
Options: ['physics', 'sizing_field']
/space/advanced
(object
) /space/advanced\n
Description Advanced settings for the FE space. Default: None
Optional
/space/advanced/discr_order_max
(int
) /space/advanced/discr_order_max\n
Description Maximal discretization order in adaptive p-refinement and hp-refinement Default: 4
/space/advanced/isoparametric
(bool
) /space/advanced/isoparametric\n
Description Forces geometric map basis to be the same degree as the main variable basis, irrespective of the degree associated with the geom. map degrees associated with the elements of the geometry. Default: False
/space/advanced/bc_method
(string
) /space/advanced/bc_method\n
Description Method for imposing analytic Dirichet boundary conditions. If \u2018lsq\u2019 (least-squares fit), then the bc function is sampled at quadrature points, and the FEspace nodal values on the boundary are determined by minimizing L2 norm of the difference. If \u2018sample\u2019, then the analytic bc function is sampled at the boundary nodes. Default: 'sample'
Options: ['lsq', 'sample']
/space/advanced/n_boundary_samples
(int
) /space/advanced/n_boundary_samples\n
Description Per-element number of boundary samples for analytic Dirichlet and Neumann boundary conditions. Default: -1
/space/advanced/quadrature_order
(int
) /space/advanced/quadrature_order\n
Description Minimal quadrature order to use in matrix and rhs assembly; the actual order is determined as min(2*(p-1)+1,quadrature_order). Default: -1
/space/advanced/mass_quadrature_order
(int
) /space/advanced/mass_quadrature_order\n
Description Minimal quadrature order to use in mass matrix assembler; the actual order is determined as min(2*p+1,quadrature_order) Default: -1
/space/advanced/integral_constraints
(int
) /space/advanced/integral_constraints\n
Description Number of constraints for non-conforming polygonal basis; 0, 1, or 2; see \u2018PolySpline..\u2019 paper for details. Default: 2
/space/advanced/n_harmonic_samples
(int
) /space/advanced/n_harmonic_samples\n
Description If MFSHarmonics is used for a polygonal element, number of collocation samples used in the basis construction;see \u2018PolySpline..\u2019 paper for details. Default: 10
/space/advanced/force_no_ref_for_harmonic
(bool
) /space/advanced/force_no_ref_for_harmonic\n
Description If true, do not do uniform global refinement if the mesh contains polygonal elements. Default: False
/space/advanced/B
(int
) /space/advanced/B\n
Description The target deviation of the error on elements from perfect element error, for a priori geometry-dependent p-refinement, see \u2018Decoupling .. \u2018 paper. Default: 3
/space/advanced/h1_formula
(bool
) /space/advanced/h1_formula\n
Description Default: False
/space/advanced/count_flipped_els
(bool
) /space/advanced/count_flipped_els\n
Description Count the number of elements with Jacobian of the geometric map not positive at quadrature points. Default: True
/space/advanced/use_particle_advection
(bool
) /space/advanced/use_particle_advection\n
Description Use particle advection in splitting method for solving NS equation. Default: False
/time
/time\n
/time
(object
)/time
(object
)/time
(object
) Description The time parameters: start time t0
, end time tend
, time step dt
.
Default: 'skip'
Required
/time/tend
(float
) /time/tend\n
Description Ending time Range: [0, inf]
/time/dt
(float
) /time/dt\n
Description Time step size \\(\\Delta t\\) Range: [0, inf]
Optional
/time/t0
(float
) /time/t0\n
Description Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Description Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Description Implicit Euler time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Description Backwards differentiation formula time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/steps
(int
) /time/integrator/steps\n
Description BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Description Implicit Newmark time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Description Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Description Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Description Ignore inertia in time dependent. Used for doing incremental load. Default: False
Description The time parameters: start time t0
, time step dt
, number of time steps. Required
/time/time_steps
(int
) /time/time_steps\n
Description Number of time steps Range: [0, inf]
/time/dt
(float
) /time/dt\n
Description Time step size \\(\\Delta t\\) Range: [0, inf]
Optional
/time/t0
(float
) /time/t0\n
Description Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Description Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Description Implicit Euler time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Description Backwards differentiation formula time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/steps
(int
) /time/integrator/steps\n
Description BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Description Implicit Newmark time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Description Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Description Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Description Ignore inertia in time dependent. Used for doing incremental load. Default: False
Description The time parameters: start time t0
, end time tend
, number of time steps. Required
/time/time_steps
(int
) /time/time_steps\n
Description Number of time steps Range: [0, inf]
/time/tend
(float
) /time/tend\n
Description Ending time Range: [0, inf]
Optional
/time/t0
(float
) /time/t0\n
Description Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Description Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Description Implicit Euler time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Description Backwards differentiation formula time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/steps
(int
) /time/integrator/steps\n
Description BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Description Implicit Newmark time integration Required
/time/integrator/type
(string
) /time/integrator/type\n
Description Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Optional
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Description Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Description Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Description Ignore inertia in time dependent. Used for doing incremental load. Default: False
/contact
(object
) /contact\n
Description Contact handling parameters. Default: None
Optional
/contact/enabled
(bool
) /contact/enabled\n
Description True if contact handling is enabled. Default: False
/contact/dhat
(float
) /contact/dhat\n
Description Contact barrier activation distance. Default: 0.001
Range: [0, inf]
/contact/dhat_percentage
(float
) /contact/dhat_percentage\n
Description \\(\\hat{d}\\) as percentage of the diagonal of the bounding box Default: 0.8
/contact/epsv
(float
) /contact/epsv\n
Description Friction smoothing parameter. Default: 0.001
Range: [0, inf]
/contact/friction_coefficient
(float
) /contact/friction_coefficient\n
Description Coefficient of friction (global) Default: 0
/contact/use_convergent_formulation
(bool
) /contact/use_convergent_formulation\n
Description Whether to use the convergent (area weighted) formulation of IPC. Default: False
/contact/collision_mesh
/contact/collision_mesh\n
/contact/collision_mesh
(object
)/contact/collision_mesh
(object
) Description Load a preconstructed collision mesh.
Default: 'skip'
Required
/contact/collision_mesh/mesh
(string
) /contact/collision_mesh/mesh\n
Description Path to preconstructed collision mesh. /contact/collision_mesh/linear_map
(string
) /contact/collision_mesh/linear_map\n
Description HDF file storing the linear mapping of displacements. Optional
/contact/collision_mesh/enabled
(bool
) /contact/collision_mesh/enabled\n
Description Default: True
Description Construct a collision mesh with a maximum edge length. Required
/contact/collision_mesh/max_edge_length
(float
) /contact/collision_mesh/max_edge_length\n
Description Maximum edge length to use for building the collision mesh. Optional
/contact/collision_mesh/tessellation_type
(string
) /contact/collision_mesh/tessellation_type\n
Description Type of tessellation to use for building the collision mesh. Default: 'regular'
Options: ['regular', 'irregular']
/contact/collision_mesh/enabled
(bool
) /contact/collision_mesh/enabled\n
Description Default: True
/contact/periodic
(bool
) /contact/periodic\n
Description Set to true to check collision between adjacent periodic cells. Default: False
/solver
(object
) /solver\n
Description The settings for the solver including linear solver, nonlinear solver, and some advanced options. Default: None
Optional
/solver/max_threads
(int
) /solver/max_threads\n
Description Maximum number of threads used; 0 is unlimited. Default: 0
Range: [0, inf]
/solver/linear
(object
) /solver/linear\n
Description Settings for the linear solver. Default: None
Optional
/solver/linear/enable_overwrite_solver
(bool
) /solver/linear/enable_overwrite_solver\n
Description If solver name is not present, falls back to default Default: False
/solver/linear/solver
(string
) /solver/linear/solver\n
Description Linear solver type. Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/linear/precond
(string
) /solver/linear/precond\n
Description Preconditioner used if using an iterative linear solver. Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/linear/Eigen::LeastSquaresConjugateGradient
(object
) /solver/linear/Eigen::LeastSquaresConjugateGradient\n
Description Settings for the Eigen\u2019s Least Squares Conjugate Gradient solver. Default: None
Optional
/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
) /solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
) /solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::DGMRES
(object
) /solver/linear/Eigen::DGMRES\n
Description Settings for the Eigen\u2019s DGMRES solver. Default: None
Optional
/solver/linear/Eigen::DGMRES/max_iter
(int
) /solver/linear/Eigen::DGMRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::DGMRES/tolerance
(float
) /solver/linear/Eigen::DGMRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::ConjugateGradient
(object
) /solver/linear/Eigen::ConjugateGradient\n
Description Settings for the Eigen\u2019s Conjugate Gradient solver. Default: None
Optional
/solver/linear/Eigen::ConjugateGradient/max_iter
(int
) /solver/linear/Eigen::ConjugateGradient/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::ConjugateGradient/tolerance
(float
) /solver/linear/Eigen::ConjugateGradient/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::BiCGSTAB
(object
) /solver/linear/Eigen::BiCGSTAB\n
Description Settings for the Eigen\u2019s BiCGSTAB solver. Default: None
Optional
/solver/linear/Eigen::BiCGSTAB/max_iter
(int
) /solver/linear/Eigen::BiCGSTAB/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::BiCGSTAB/tolerance
(float
) /solver/linear/Eigen::BiCGSTAB/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::GMRES
(object
) /solver/linear/Eigen::GMRES\n
Description Settings for the Eigen\u2019s GMRES solver. Default: None
Optional
/solver/linear/Eigen::GMRES/max_iter
(int
) /solver/linear/Eigen::GMRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::GMRES/tolerance
(float
) /solver/linear/Eigen::GMRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::MINRES
(object
) /solver/linear/Eigen::MINRES\n
Description Settings for the Eigen\u2019s MINRES solver. Default: None
Optional
/solver/linear/Eigen::MINRES/max_iter
(int
) /solver/linear/Eigen::MINRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Eigen::MINRES/tolerance
(float
) /solver/linear/Eigen::MINRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/linear/Pardiso
(object
) /solver/linear/Pardiso\n
Description Settings for the Pardiso solver. Default: None
Optional
/solver/linear/Pardiso/mtype
(int
) /solver/linear/Pardiso/mtype\n
Description Matrix type. Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/linear/Hypre
(object
) /solver/linear/Hypre\n
Description Settings for the Hypre solver. Default: None
Optional
/solver/linear/Hypre/max_iter
(int
) /solver/linear/Hypre/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/Hypre/pre_max_iter
(int
) /solver/linear/Hypre/pre_max_iter\n
Description Maximum number of pre iterations. Default: 1
/solver/linear/Hypre/tolerance
(float
) /solver/linear/Hypre/tolerance\n
Description Convergence tolerance. Default: 1e-10
/solver/linear/AMGCL
(object
) /solver/linear/AMGCL\n
Description Settings for the AMGCL solver. Default: None
Optional
/solver/linear/AMGCL/solver
(object
) /solver/linear/AMGCL/solver\n
Description Solver settings for the AMGCL. Default: None
Optional
/solver/linear/AMGCL/solver/tol
(float
) /solver/linear/AMGCL/solver/tol\n
Description Convergence tolerance. Default: 1e-10
/solver/linear/AMGCL/solver/maxiter
(int
) /solver/linear/AMGCL/solver/maxiter\n
Description Maximum number of iterations. Default: 1000
/solver/linear/AMGCL/solver/type
(string
) /solver/linear/AMGCL/solver/type\n
Description Type of solver to use. Default: 'cg'
/solver/linear/AMGCL/precond
(object
) /solver/linear/AMGCL/precond\n
Description Preconditioner settings for the AMGCL. Default: None
Optional
/solver/linear/AMGCL/precond/relax
(object
) /solver/linear/AMGCL/precond/relax\n
Description Preconditioner settings for the AMGCL. Default: None
Optional
/solver/linear/AMGCL/precond/relax/degree
(int
) /solver/linear/AMGCL/precond/relax/degree\n
Description Degree of the polynomial. Default: 16
/solver/linear/AMGCL/precond/relax/type
(string
) /solver/linear/AMGCL/precond/relax/type\n
Description Type of relaxation to use. Default: 'chebyshev'
/solver/linear/AMGCL/precond/relax/power_iters
(int
) /solver/linear/AMGCL/precond/relax/power_iters\n
Description Number of power iterations. Default: 100
/solver/linear/AMGCL/precond/relax/higher
(float
) /solver/linear/AMGCL/precond/relax/higher\n
Description Higher level relaxation. Default: 2
/solver/linear/AMGCL/precond/relax/lower
(float
) /solver/linear/AMGCL/precond/relax/lower\n
Description Lower level relaxation. Default: 0.008333333333
/solver/linear/AMGCL/precond/relax/scale
(bool
) /solver/linear/AMGCL/precond/relax/scale\n
Description Scale. Default: True
/solver/linear/AMGCL/precond/class
(string
) /solver/linear/AMGCL/precond/class\n
Description Type of preconditioner to use. Default: 'amg'
/solver/linear/AMGCL/precond/max_levels
(int
) /solver/linear/AMGCL/precond/max_levels\n
Description Maximum number of levels. Default: 6
/solver/linear/AMGCL/precond/direct_coarse
(bool
) /solver/linear/AMGCL/precond/direct_coarse\n
Description Use direct solver for the coarsest level. Default: False
/solver/linear/AMGCL/precond/ncycle
(int
) /solver/linear/AMGCL/precond/ncycle\n
Description Number of cycles. Default: 2
/solver/linear/AMGCL/precond/coarsening
(object
) /solver/linear/AMGCL/precond/coarsening\n
Description Coarsening parameters. Default: None
Optional
/solver/linear/AMGCL/precond/coarsening/type
(string
) /solver/linear/AMGCL/precond/coarsening/type\n
Description Coarsening type. Default: 'smoothed_aggregation'
/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
) /solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius\n
Description Should the spectral radius be estimated. Default: True
/solver/linear/AMGCL/precond/coarsening/relax
(float
) /solver/linear/AMGCL/precond/coarsening/relax\n
Description Coarsening relaxation. Default: 1
/solver/linear/AMGCL/precond/coarsening/aggr
(object
) /solver/linear/AMGCL/precond/coarsening/aggr\n
Description Aggregation settings. Default: None
Optional
/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
) /solver/linear/AMGCL/precond/coarsening/aggr/eps_strong\n
Description Aggregation epsilon strong. Default: 0
/solver/adjoint_linear
(object
) /solver/adjoint_linear\n
Description Settings for the linear solver. Default: None
Optional
/solver/adjoint_linear/enable_overwrite_solver
(bool
) /solver/adjoint_linear/enable_overwrite_solver\n
Description If solver name is not present, falls back to default Default: False
/solver/adjoint_linear/solver
(string
) /solver/adjoint_linear/solver\n
Description Linear solver type. Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/adjoint_linear/precond
(string
) /solver/adjoint_linear/precond\n
Description Preconditioner used if using an iterative linear solver. Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
(object
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient\n
Description Settings for the Eigen\u2019s Least Squares Conjugate Gradient solver. Default: None
Optional
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::DGMRES
(object
) /solver/adjoint_linear/Eigen::DGMRES\n
Description Settings for the Eigen\u2019s DGMRES solver. Default: None
Optional
/solver/adjoint_linear/Eigen::DGMRES/max_iter
(int
) /solver/adjoint_linear/Eigen::DGMRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::DGMRES/tolerance
(float
) /solver/adjoint_linear/Eigen::DGMRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::ConjugateGradient
(object
) /solver/adjoint_linear/Eigen::ConjugateGradient\n
Description Settings for the Eigen\u2019s Conjugate Gradient solver. Default: None
Optional
/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
(int
) /solver/adjoint_linear/Eigen::ConjugateGradient/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
(float
) /solver/adjoint_linear/Eigen::ConjugateGradient/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::BiCGSTAB
(object
) /solver/adjoint_linear/Eigen::BiCGSTAB\n
Description Settings for the Eigen\u2019s BiCGSTAB solver. Default: None
Optional
/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
(int
) /solver/adjoint_linear/Eigen::BiCGSTAB/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
(float
) /solver/adjoint_linear/Eigen::BiCGSTAB/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::GMRES
(object
) /solver/adjoint_linear/Eigen::GMRES\n
Description Settings for the Eigen\u2019s GMRES solver. Default: None
Optional
/solver/adjoint_linear/Eigen::GMRES/max_iter
(int
) /solver/adjoint_linear/Eigen::GMRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::GMRES/tolerance
(float
) /solver/adjoint_linear/Eigen::GMRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::MINRES
(object
) /solver/adjoint_linear/Eigen::MINRES\n
Description Settings for the Eigen\u2019s MINRES solver. Default: None
Optional
/solver/adjoint_linear/Eigen::MINRES/max_iter
(int
) /solver/adjoint_linear/Eigen::MINRES/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::MINRES/tolerance
(float
) /solver/adjoint_linear/Eigen::MINRES/tolerance\n
Description Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Pardiso
(object
) /solver/adjoint_linear/Pardiso\n
Description Settings for the Pardiso solver. Default: None
Optional
/solver/adjoint_linear/Pardiso/mtype
(int
) /solver/adjoint_linear/Pardiso/mtype\n
Description Matrix type. Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/adjoint_linear/Hypre
(object
) /solver/adjoint_linear/Hypre\n
Description Settings for the Hypre solver. Default: None
Optional
/solver/adjoint_linear/Hypre/max_iter
(int
) /solver/adjoint_linear/Hypre/max_iter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Hypre/pre_max_iter
(int
) /solver/adjoint_linear/Hypre/pre_max_iter\n
Description Maximum number of pre iterations. Default: 1
/solver/adjoint_linear/Hypre/tolerance
(float
) /solver/adjoint_linear/Hypre/tolerance\n
Description Convergence tolerance. Default: 1e-10
/solver/adjoint_linear/AMGCL
(object
) /solver/adjoint_linear/AMGCL\n
Description Settings for the AMGCL solver. Default: None
Optional
/solver/adjoint_linear/AMGCL/solver
(object
) /solver/adjoint_linear/AMGCL/solver\n
Description Solver settings for the AMGCL. Default: None
Optional
/solver/adjoint_linear/AMGCL/solver/tol
(float
) /solver/adjoint_linear/AMGCL/solver/tol\n
Description Convergence tolerance. Default: 1e-10
/solver/adjoint_linear/AMGCL/solver/maxiter
(int
) /solver/adjoint_linear/AMGCL/solver/maxiter\n
Description Maximum number of iterations. Default: 1000
/solver/adjoint_linear/AMGCL/solver/type
(string
) /solver/adjoint_linear/AMGCL/solver/type\n
Description Type of solver to use. Default: 'cg'
/solver/adjoint_linear/AMGCL/precond
(object
) /solver/adjoint_linear/AMGCL/precond\n
Description Preconditioner settings for the AMGCL. Default: None
Optional
/solver/adjoint_linear/AMGCL/precond/relax
(object
) /solver/adjoint_linear/AMGCL/precond/relax\n
Description Preconditioner settings for the AMGCL. Default: None
Optional
/solver/adjoint_linear/AMGCL/precond/relax/degree
(int
) /solver/adjoint_linear/AMGCL/precond/relax/degree\n
Description Degree of the polynomial. Default: 16
/solver/adjoint_linear/AMGCL/precond/relax/type
(string
) /solver/adjoint_linear/AMGCL/precond/relax/type\n
Description Type of relaxation to use. Default: 'chebyshev'
/solver/adjoint_linear/AMGCL/precond/relax/power_iters
(int
) /solver/adjoint_linear/AMGCL/precond/relax/power_iters\n
Description Number of power iterations. Default: 100
/solver/adjoint_linear/AMGCL/precond/relax/higher
(float
) /solver/adjoint_linear/AMGCL/precond/relax/higher\n
Description Higher level relaxation. Default: 2
/solver/adjoint_linear/AMGCL/precond/relax/lower
(float
) /solver/adjoint_linear/AMGCL/precond/relax/lower\n
Description Lower level relaxation. Default: 0.008333333333
/solver/adjoint_linear/AMGCL/precond/relax/scale
(bool
) /solver/adjoint_linear/AMGCL/precond/relax/scale\n
Description Scale. Default: True
/solver/adjoint_linear/AMGCL/precond/class
(string
) /solver/adjoint_linear/AMGCL/precond/class\n
Description Type of preconditioner to use. Default: 'amg'
/solver/adjoint_linear/AMGCL/precond/max_levels
(int
) /solver/adjoint_linear/AMGCL/precond/max_levels\n
Description Maximum number of levels. Default: 6
/solver/adjoint_linear/AMGCL/precond/direct_coarse
(bool
) /solver/adjoint_linear/AMGCL/precond/direct_coarse\n
Description Use direct solver for the coarsest level. Default: False
/solver/adjoint_linear/AMGCL/precond/ncycle
(int
) /solver/adjoint_linear/AMGCL/precond/ncycle\n
Description Number of cycles. Default: 2
/solver/adjoint_linear/AMGCL/precond/coarsening
(object
) /solver/adjoint_linear/AMGCL/precond/coarsening\n
Description Coarsening parameters. Default: None
Optional
/solver/adjoint_linear/AMGCL/precond/coarsening/type
(string
) /solver/adjoint_linear/AMGCL/precond/coarsening/type\n
Description Coarsening type. Default: 'smoothed_aggregation'
/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
) /solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius\n
Description Should the spectral radius be estimated. Default: True
/solver/adjoint_linear/AMGCL/precond/coarsening/relax
(float
) /solver/adjoint_linear/AMGCL/precond/coarsening/relax\n
Description Coarsening relaxation. Default: 1
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
(object
) /solver/adjoint_linear/AMGCL/precond/coarsening/aggr\n
Description Aggregation settings. Default: None
Optional
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
) /solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong\n
Description Aggregation epsilon strong. Default: 0
/solver/nonlinear
(object
) /solver/nonlinear\n
Description Settings for nonlinear solver. Interior-loop linear solver settings are defined in the solver/linear section. Default: None
Optional
/solver/nonlinear/solver
/solver/nonlinear/solver\n
/solver/nonlinear/solver
(string
)/solver/nonlinear/solver
(list
) Description Nonlinear solver type
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
Description List of solvers for ballback. Eg, [{\u2018type\u2019:\u2019Newton\u2019}, {\u2018type\u2019:\u2019L-BFGS\u2019}, {\u2018type\u2019:\u2019GradientDescent\u2019}] will solve using Newton, in case of failure will fallback to L-BFGS and eventually to GradientDescent
/solver/nonlinear/solver/*
/solver/nonlinear/solver/*\n
NewtonProjectedNewtonRegularizedNewtonRegularizedProjectedNewtonDenseNewtonDenseProjectedNewtonDenseRegularizedNewtonDenseRegularizedProjectedNewtonGradientDescentStochasticGradientDescentL-BFGSBFGSADAMStochasticADAM Type: Newton Description Options for Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: ProjectedNewton Description Options for projected Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: RegularizedNewton Description Options for regularized Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: RegularizedProjectedNewton Description Options for regularized projected Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: DenseNewton Description Options for Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseProjectedNewton Description Options for projected Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseRegularizedNewton Description Options for regularized Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: DenseRegularizedProjectedNewton Description Options for projected regularized Newton. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: GradientDescent Description Options for Gradient Descent. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent Description Options for Stochastic Gradient Descent. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/erase_component_probability
(float
) /solver/nonlinear/solver/*/erase_component_probability\n
Description Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
Type: L-BFGS Description Options for L-BFGS. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/history_size
(int
) /solver/nonlinear/solver/*/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
Type: BFGS Description Options for BFGS. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM Description Options for ADAM. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/alpha
(float
) /solver/nonlinear/solver/*/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
) /solver/nonlinear/solver/*/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
) /solver/nonlinear/solver/*/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
) /solver/nonlinear/solver/*/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
Type: StochasticADAM Description Options for ADAM. Required
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/nonlinear/solver/*/alpha
(float
) /solver/nonlinear/solver/*/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
) /solver/nonlinear/solver/*/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
) /solver/nonlinear/solver/*/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
) /solver/nonlinear/solver/*/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/solver/*/erase_component_probability
(float
) /solver/nonlinear/solver/*/erase_component_probability\n
Description Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
/solver/nonlinear/x_delta
(float
) /solver/nonlinear/x_delta\n
Description Stopping criterion: minimal change of the variables x for the iterations to continue. Computed as the L2 norm of x divide by the time step. Default: 0
Range: [0, inf]
/solver/nonlinear/grad_norm
(float
) /solver/nonlinear/grad_norm\n
Description Stopping criterion: Minimal gradient norm for the iterations to continue. Default: 1e-08
Range: [0, inf]
/solver/nonlinear/first_grad_norm_tol
(float
) /solver/nonlinear/first_grad_norm_tol\n
Description Minimal gradient norm for the iterations to not start, assume we already are at a minimum. Default: 1e-10
/solver/nonlinear/max_iterations
(int
) /solver/nonlinear/max_iterations\n
Description Maximum number of iterations for a nonlinear solve. Default: 500
/solver/nonlinear/iterations_per_strategy
/solver/nonlinear/iterations_per_strategy\n
/solver/nonlinear/iterations_per_strategy
(int
)/solver/nonlinear/iterations_per_strategy
(list
) Description Number of iterations for every substrategy before reset.
Default: 5
Description Number of iterations for every substrategy before reset.
/solver/nonlinear/iterations_per_strategy/*
(int
) /solver/nonlinear/iterations_per_strategy/*\n
Description Number of iterations for every substrategy before reset. Default: 5
/solver/nonlinear/line_search
(object
) /solver/nonlinear/line_search\n
Description Settings for line-search in the nonlinear solver Default: None
Optional
/solver/nonlinear/line_search/method
(string
) /solver/nonlinear/line_search/method\n
Description Line-search type Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/nonlinear/line_search/use_grad_norm_tol
(float
) /solver/nonlinear/line_search/use_grad_norm_tol\n
Description When the energy is smaller than use_grad_norm_tol, line-search uses norm of gradient instead of energy Default: 1e-06
/solver/nonlinear/line_search/min_step_size
(float
) /solver/nonlinear/line_search/min_step_size\n
Description Mimimum step size Default: 1e-10
/solver/nonlinear/line_search/max_step_size_iter
(int
) /solver/nonlinear/line_search/max_step_size_iter\n
Description Number of iterations Default: 30
/solver/nonlinear/line_search/min_step_size_final
(float
) /solver/nonlinear/line_search/min_step_size_final\n
Description Mimimum step size for last descent strategy Default: 1e-20
/solver/nonlinear/line_search/max_step_size_iter_final
(int
) /solver/nonlinear/line_search/max_step_size_iter_final\n
Description Number of iterations for last descent strategy Default: 100
/solver/nonlinear/line_search/default_init_step_size
(float
) /solver/nonlinear/line_search/default_init_step_size\n
Description Initial step size Default: 1
/solver/nonlinear/line_search/step_ratio
(float
) /solver/nonlinear/line_search/step_ratio\n
Description Ratio used to decrease the step Default: 0.5
/solver/nonlinear/line_search/Armijo
(object
) /solver/nonlinear/line_search/Armijo\n
Description Options for Armijo. Default: None
Optional
/solver/nonlinear/line_search/Armijo/c
(float
) /solver/nonlinear/line_search/Armijo/c\n
Description Armijo c parameter. Default: 0.0001
/solver/nonlinear/line_search/RobustArmijo
(object
) /solver/nonlinear/line_search/RobustArmijo\n
Description Options for RobustArmijo. Default: None
Optional
/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
) /solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance\n
Description Relative tolerance on E to switch to approximate. Default: 0.1
/solver/nonlinear/allow_out_of_iterations
(bool
) /solver/nonlinear/allow_out_of_iterations\n
Description If false (default), an exception will be thrown when the nonlinear solver reaches the maximum number of iterations. Default: False
/solver/nonlinear/L-BFGS
(object
) /solver/nonlinear/L-BFGS\n
Description Options for LBFGS. Default: None
Optional
/solver/nonlinear/L-BFGS/history_size
(int
) /solver/nonlinear/L-BFGS/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/nonlinear/L-BFGS-B
(object
) /solver/nonlinear/L-BFGS-B\n
Description Options for the boxed L-BFGS. Default: None
Optional
/solver/nonlinear/L-BFGS-B/history_size
(int
) /solver/nonlinear/L-BFGS-B/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/nonlinear/Newton
(object
) /solver/nonlinear/Newton\n
Description Options for Newton. Default: None
Optional
/solver/nonlinear/Newton/residual_tolerance
(float
) /solver/nonlinear/Newton/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/Newton/reg_weight_min
(float
) /solver/nonlinear/Newton/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/Newton/reg_weight_max
(float
) /solver/nonlinear/Newton/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/Newton/reg_weight_inc
(float
) /solver/nonlinear/Newton/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
/solver/nonlinear/Newton/force_psd_projection
(bool
) /solver/nonlinear/Newton/force_psd_projection\n
Description Force the Hessian to be PSD when using second order solvers (i.e., Newton\u2019s method). Default: False
/solver/nonlinear/Newton/use_psd_projection
(bool
) /solver/nonlinear/Newton/use_psd_projection\n
Description Use PSD as fallback using second order solvers (i.e., Newton\u2019s method). Default: True
/solver/nonlinear/Newton/use_psd_projection_in_regularized
(bool
) /solver/nonlinear/Newton/use_psd_projection_in_regularized\n
Description Use PSD in regularized Newton. Default: True
/solver/nonlinear/ADAM
(object
) /solver/nonlinear/ADAM\n
Description Options for ADAM. Default: None
Optional
/solver/nonlinear/ADAM/alpha
(float
) /solver/nonlinear/ADAM/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/ADAM/beta_1
(float
) /solver/nonlinear/ADAM/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/ADAM/beta_2
(float
) /solver/nonlinear/ADAM/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/ADAM/epsilon
(float
) /solver/nonlinear/ADAM/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/StochasticADAM
(object
) /solver/nonlinear/StochasticADAM\n
Description Options for ADAM. Default: None
Optional
/solver/nonlinear/StochasticADAM/alpha
(float
) /solver/nonlinear/StochasticADAM/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/StochasticADAM/beta_1
(float
) /solver/nonlinear/StochasticADAM/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/StochasticADAM/beta_2
(float
) /solver/nonlinear/StochasticADAM/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/StochasticADAM/epsilon
(float
) /solver/nonlinear/StochasticADAM/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/StochasticADAM/erase_component_probability
(float
) /solver/nonlinear/StochasticADAM/erase_component_probability\n
Description Probability of erasing a component on the gradient for ADAM. Default: 0.3
/solver/nonlinear/StochasticGradientDescent
(object
) /solver/nonlinear/StochasticGradientDescent\n
Description Options for Stochastic Gradient Descent. Default: None
Optional
/solver/nonlinear/StochasticGradientDescent/erase_component_probability
(float
) /solver/nonlinear/StochasticGradientDescent/erase_component_probability\n
Description Probability of erasing a component on the gradient for StochasticGradientDescent. Default: 0.3
/solver/nonlinear/box_constraints
(object
) /solver/nonlinear/box_constraints\n
Description FIXME: Missing documentation in the specification. Default: None
Optional
/solver/nonlinear/box_constraints/bounds
(list
) /solver/nonlinear/box_constraints/bounds\n
Description Box constraints on optimization variables. /solver/nonlinear/box_constraints/bounds/*
/solver/nonlinear/box_constraints/bounds/*\n
/solver/nonlinear/box_constraints/bounds/*
(list
)/solver/nonlinear/box_constraints/bounds/*
(float
) Description Box constraint values on optimization variables.
/solver/nonlinear/box_constraints/bounds/*/*
(float
) /solver/nonlinear/box_constraints/bounds/*/*\n
Description Box constraint values on optimization variables. Description Box constraint values on optimization variables.
/solver/nonlinear/box_constraints/max_change
/solver/nonlinear/box_constraints/max_change\n
/solver/nonlinear/box_constraints/max_change
(float
)/solver/nonlinear/box_constraints/max_change
(list
) Description Maximum change of optimization variables in one iteration, only for solvers with box constraints. Negative value to disable this constraint.
Default: -1
Description Maximum change of optimization variables in one iteration, only for solvers with box constraints.
/solver/nonlinear/box_constraints/max_change/*
(float
) /solver/nonlinear/box_constraints/max_change/*\n
Description Maximum change of every optimization variable in one iteration, only for solvers with box constraints. /solver/nonlinear/advanced
(object
) /solver/nonlinear/advanced\n
Description Nonlinear solver advanced options Default: None
Optional
/solver/nonlinear/advanced/f_delta
(float
) /solver/nonlinear/advanced/f_delta\n
Description Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/f_delta_step_tol
(int
) /solver/nonlinear/advanced/f_delta_step_tol\n
Description Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 100
/solver/nonlinear/advanced/derivative_along_delta_x_tol
(float
) /solver/nonlinear/advanced/derivative_along_delta_x_tol\n
Description Quit the optimization if the directional derivative along the descent direction is smaller than this tolerance. Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/apply_gradient_fd
(string
) /solver/nonlinear/advanced/apply_gradient_fd\n
Description Expensive Option: For every iteration of the nonlinear solver, run finite difference to verify gradient of energy. Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/nonlinear/advanced/gradient_fd_eps
(float
) /solver/nonlinear/advanced/gradient_fd_eps\n
Description Expensive Option: Eps for finite difference to verify gradient of energy. Default: 1e-07
/solver/augmented_lagrangian
(object
) /solver/augmented_lagrangian\n
Description Parameters for the AL for imposing Dirichlet BCs. If the bc are not imposable, we add \\(w\\|u - bc\\|^2\\) to the energy (\\(u\\) is the solution at the Dirichlet nodes and \\(bc\\) are the Dirichlet values). After convergence, we try to impose bc again. The algorithm computes E + a/2*AL^2 - lambda AL, where E is the current energy (elastic, inertia, contact, etc.) and AL is the augmented Lagrangian energy. a starts at initial_weight
and, in case DBC cannot be imposed, we update a as a *= scaling
until max_weight
. See IPC additional material Default: None
Optional
/solver/augmented_lagrangian/initial_weight
(float
) /solver/augmented_lagrangian/initial_weight\n
Description Initial weight for AL Default: 1000000.0
Range: [0, inf]
/solver/augmented_lagrangian/scaling
(float
) /solver/augmented_lagrangian/scaling\n
Description Multiplication factor Default: 2.0
/solver/augmented_lagrangian/max_weight
(float
) /solver/augmented_lagrangian/max_weight\n
Description Maximum weight Default: 100000000.0
/solver/augmented_lagrangian/eta
(float
) /solver/augmented_lagrangian/eta\n
Description Tolerance for increasing the weight or updating the lagrangian Default: 0.99
Range: [0, 1]
/solver/augmented_lagrangian/nonlinear
(object
) /solver/augmented_lagrangian/nonlinear\n
Description Settings for nonlinear solver. Interior-loop linear solver settings are defined in the solver/linear section. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/solver
/solver/augmented_lagrangian/nonlinear/solver\n
/solver/augmented_lagrangian/nonlinear/solver
(string
)/solver/augmented_lagrangian/nonlinear/solver
(list
) Description Nonlinear solver type
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
Description List of solvers for ballback. Eg, [{\u2018type\u2019:\u2019Newton\u2019}, {\u2018type\u2019:\u2019L-BFGS\u2019}, {\u2018type\u2019:\u2019GradientDescent\u2019}] will solve using Newton, in case of failure will fallback to L-BFGS and eventually to GradientDescent
/solver/augmented_lagrangian/nonlinear/solver/*
/solver/augmented_lagrangian/nonlinear/solver/*\n
NewtonProjectedNewtonRegularizedNewtonRegularizedProjectedNewtonDenseNewtonDenseProjectedNewtonDenseRegularizedNewtonDenseRegularizedProjectedNewtonGradientDescentStochasticGradientDescentL-BFGSBFGSADAMStochasticADAM Type: Newton Description Options for Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: ProjectedNewton Description Options for projected Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: RegularizedNewton Description Options for regularized Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: RegularizedProjectedNewton Description Options for regularized projected Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: DenseNewton Description Options for Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseProjectedNewton Description Options for projected Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseRegularizedNewton Description Options for regularized Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: DenseRegularizedProjectedNewton Description Options for projected regularized Newton. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
Type: GradientDescent Description Options for Gradient Descent. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent Description Options for Stochastic Gradient Descent. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability\n
Description Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
Type: L-BFGS Description Options for L-BFGS. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/history_size
(int
) /solver/augmented_lagrangian/nonlinear/solver/*/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
Type: BFGS Description Options for BFGS. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM Description Options for ADAM. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
Type: StochasticADAM Description Options for ADAM. Required
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Description Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Optional
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability\n
Description Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
/solver/augmented_lagrangian/nonlinear/x_delta
(float
) /solver/augmented_lagrangian/nonlinear/x_delta\n
Description Stopping criterion: minimal change of the variables x for the iterations to continue. Computed as the L2 norm of x divide by the time step. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/grad_norm
(float
) /solver/augmented_lagrangian/nonlinear/grad_norm\n
Description Stopping criterion: Minimal gradient norm for the iterations to continue. Default: 1e-08
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
(float
) /solver/augmented_lagrangian/nonlinear/first_grad_norm_tol\n
Description Minimal gradient norm for the iterations to not start, assume we already are at a minimum. Default: 1e-10
/solver/augmented_lagrangian/nonlinear/max_iterations
(int
) /solver/augmented_lagrangian/nonlinear/max_iterations\n
Description Maximum number of iterations for a nonlinear solve. Default: 500
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy\n
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
(int
)/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
(list
) Description Number of iterations for every substrategy before reset.
Default: 5
Description Number of iterations for every substrategy before reset.
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
(int
) /solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*\n
Description Number of iterations for every substrategy before reset. Default: 5
/solver/augmented_lagrangian/nonlinear/line_search
(object
) /solver/augmented_lagrangian/nonlinear/line_search\n
Description Settings for line-search in the nonlinear solver Default: None
Optional
/solver/augmented_lagrangian/nonlinear/line_search/method
(string
) /solver/augmented_lagrangian/nonlinear/line_search/method\n
Description Line-search type Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
(float
) /solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol\n
Description When the energy is smaller than use_grad_norm_tol, line-search uses norm of gradient instead of energy Default: 1e-06
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
(float
) /solver/augmented_lagrangian/nonlinear/line_search/min_step_size\n
Description Mimimum step size Default: 1e-10
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
(int
) /solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter\n
Description Number of iterations Default: 30
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
(float
) /solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final\n
Description Mimimum step size for last descent strategy Default: 1e-20
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
(int
) /solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final\n
Description Number of iterations for last descent strategy Default: 100
/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
(float
) /solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size\n
Description Initial step size Default: 1
/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
(float
) /solver/augmented_lagrangian/nonlinear/line_search/step_ratio\n
Description Ratio used to decrease the step Default: 0.5
/solver/augmented_lagrangian/nonlinear/line_search/Armijo
(object
) /solver/augmented_lagrangian/nonlinear/line_search/Armijo\n
Description Options for Armijo. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
(float
) /solver/augmented_lagrangian/nonlinear/line_search/Armijo/c\n
Description Armijo c parameter. Default: 0.0001
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
(object
) /solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo\n
Description Options for RobustArmijo. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance\n
Description Relative tolerance on E to switch to approximate. Default: 0.1
/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
(bool
) /solver/augmented_lagrangian/nonlinear/allow_out_of_iterations\n
Description If false (default), an exception will be thrown when the nonlinear solver reaches the maximum number of iterations. Default: False
/solver/augmented_lagrangian/nonlinear/L-BFGS
(object
) /solver/augmented_lagrangian/nonlinear/L-BFGS\n
Description Options for LBFGS. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
(int
) /solver/augmented_lagrangian/nonlinear/L-BFGS/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/augmented_lagrangian/nonlinear/L-BFGS-B
(object
) /solver/augmented_lagrangian/nonlinear/L-BFGS-B\n
Description Options for the boxed L-BFGS. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
(int
) /solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size\n
Description The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/augmented_lagrangian/nonlinear/Newton
(object
) /solver/augmented_lagrangian/nonlinear/Newton\n
Description Options for Newton. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance\n
Description Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min\n
Description Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max\n
Description Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc\n
Description Regulariztion weight increment. Default: 10
/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection\n
Description Force the Hessian to be PSD when using second order solvers (i.e., Newton\u2019s method). Default: False
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection\n
Description Use PSD as fallback using second order solvers (i.e., Newton\u2019s method). Default: True
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized\n
Description Use PSD in regularized Newton. Default: True
/solver/augmented_lagrangian/nonlinear/ADAM
(object
) /solver/augmented_lagrangian/nonlinear/ADAM\n
Description Options for ADAM. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/ADAM/alpha
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM
(object
) /solver/augmented_lagrangian/nonlinear/StochasticADAM\n
Description Options for ADAM. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha\n
Description Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1\n
Description Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2\n
Description Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon\n
Description Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability\n
Description Probability of erasing a component on the gradient for ADAM. Default: 0.3
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
(object
) /solver/augmented_lagrangian/nonlinear/StochasticGradientDescent\n
Description Options for Stochastic Gradient Descent. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability\n
Description Probability of erasing a component on the gradient for StochasticGradientDescent. Default: 0.3
/solver/augmented_lagrangian/nonlinear/box_constraints
(object
) /solver/augmented_lagrangian/nonlinear/box_constraints\n
Description FIXME: Missing documentation in the specification. Default: None
Optional
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
(list
) /solver/augmented_lagrangian/nonlinear/box_constraints/bounds\n
Description Box constraints on optimization variables. /solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*\n
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
(list
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
(float
) Description Box constraint values on optimization variables.
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
(float
) /solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*\n
Description Box constraint values on optimization variables. Description Box constraint values on optimization variables.
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change\n
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
(list
) Description Maximum change of optimization variables in one iteration, only for solvers with box constraints. Negative value to disable this constraint.
Default: -1
Description Maximum change of optimization variables in one iteration, only for solvers with box constraints.
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
(float
) /solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*\n
Description Maximum change of every optimization variable in one iteration, only for solvers with box constraints. /solver/augmented_lagrangian/nonlinear/advanced
(object
) /solver/augmented_lagrangian/nonlinear/advanced\n
Description Nonlinear solver advanced options Default: None
Optional
/solver/augmented_lagrangian/nonlinear/advanced/f_delta
(float
) /solver/augmented_lagrangian/nonlinear/advanced/f_delta\n
Description Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
(int
) /solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol\n
Description Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 100
/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
(float
) /solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol\n
Description Quit the optimization if the directional derivative along the descent direction is smaller than this tolerance. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
(string
) /solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd\n
Description Expensive Option: For every iteration of the nonlinear solver, run finite difference to verify gradient of energy. Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
(float
) /solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps\n
Description Expensive Option: Eps for finite difference to verify gradient of energy. Default: 1e-07
/solver/contact
(object
) /solver/contact\n
Description Settings for contact handling in the solver. Default: None
Optional
/solver/contact/CCD
(object
) /solver/contact/CCD\n
Description CCD options Default: None
Optional
/solver/contact/CCD/broad_phase
(string
) /solver/contact/CCD/broad_phase\n
Description Broad phase collision-detection algorithm to use Default: 'hash_grid'
Options: ['hash_grid', 'HG', 'brute_force', 'BF', 'spatial_hash', 'SH', 'bvh', 'BVH', 'sweep_and_prune', 'SAP', 'sweep_and_tiniest_queue', 'STQ']
/solver/contact/CCD/tolerance
(float
) /solver/contact/CCD/tolerance\n
Description CCD tolerance Default: 1e-06
/solver/contact/CCD/max_iterations
(int
) /solver/contact/CCD/max_iterations\n
Description Maximum number of iterations for continuous collision detection Default: 1000000
/solver/contact/friction_iterations
(int
) /solver/contact/friction_iterations\n
Description Maximum number of update iterations for lagged friction formulation (see IPC paper). Default: 1
/solver/contact/friction_convergence_tol
(float
) /solver/contact/friction_convergence_tol\n
Description Tolerence for friction convergence Default: 0.01
/solver/contact/barrier_stiffness
/solver/contact/barrier_stiffness\n
/solver/contact/barrier_stiffness
(string
)/solver/contact/barrier_stiffness
(float
) Description How coefficient of clamped log-barrier function for contact is updated
Default: 'adaptive'
Options: ['adaptive']
Description The coefficient of clamped log-barrier function value when not adaptive
/solver/rayleigh_damping
(list
) /solver/rayleigh_damping\n
Description Apply Rayleigh damping. /solver/rayleigh_damping/*
/solver/rayleigh_damping/*\n
/solver/rayleigh_damping/*
(object
)/solver/rayleigh_damping/*
(object
) Description Apply Rayleigh damping to the given Form with a stiffness ratio. Required
/solver/rayleigh_damping/*/form
(string
) /solver/rayleigh_damping/*/form\n
Description Form to damp. Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness_ratio
(float
) /solver/rayleigh_damping/*/stiffness_ratio\n
Description Ratio of to damp (stiffness = 0.75 * stiffness_ratio * \u0394t\u00b3). Range: [0, inf]
Optional
/solver/rayleigh_damping/*/lagging_iterations
(int
) /solver/rayleigh_damping/*/lagging_iterations\n
Description Maximum number of update iterations for lagging. Default: 1
Description Apply Rayleigh damping to the given Form with a stiffness. Required
/solver/rayleigh_damping/*/form
(string
) /solver/rayleigh_damping/*/form\n
Description Form to damp. Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness
(float
) /solver/rayleigh_damping/*/stiffness\n
Description Ratio of to damp. Range: [0, inf]
Optional
/solver/rayleigh_damping/*/lagging_iterations
(int
) /solver/rayleigh_damping/*/lagging_iterations\n
Description Maximum number of update iterations for lagging. Default: 1
/solver/advanced
(object
) /solver/advanced\n
Description Advanced settings for the solver Default: None
Optional
/solver/advanced/cache_size
(int
) /solver/advanced/cache_size\n
Description Maximum number of elements when the assembly values are cached. Default: 900000
/solver/advanced/lump_mass_matrix
(bool
) /solver/advanced/lump_mass_matrix\n
Description If true, use diagonal mass matrix with entries on the diagonal equal to the sum of entries in each row of the full mass matrix.} Default: False
/solver/advanced/lagged_regularization_weight
(float
) /solver/advanced/lagged_regularization_weight\n
Description Weight used to regularize singular static problems. Default: 0
/solver/advanced/lagged_regularization_iterations
(int
) /solver/advanced/lagged_regularization_iterations\n
Description Number of regularize singular static problems. Default: 1
/boundary_conditions
(object
) /boundary_conditions\n
Description The settings for boundary conditions. Default: None
Optional
/boundary_conditions/rhs
/boundary_conditions/rhs\n
/boundary_conditions/rhs
(float
)/boundary_conditions/rhs
(string
)/boundary_conditions/rhs
(object
)/boundary_conditions/rhs
(list
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/rhs/value
/boundary_conditions/rhs/value\n
/boundary_conditions/rhs/value
(float
)/boundary_conditions/rhs/value
(string
)/boundary_conditions/rhs/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/rhs/unit
(string
) /boundary_conditions/rhs/unit\n
Description The unit of the Value Description Right-hand side of the system being solved for vector-valued PDEs.
/boundary_conditions/rhs/*
/boundary_conditions/rhs/*\n
/boundary_conditions/rhs/*
(float
)/boundary_conditions/rhs/*
(string
)/boundary_conditions/rhs/*
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/rhs/*/value
/boundary_conditions/rhs/*/value\n
/boundary_conditions/rhs/*/value
(float
)/boundary_conditions/rhs/*/value
(string
)/boundary_conditions/rhs/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/rhs/*/unit
(string
) /boundary_conditions/rhs/*/unit\n
Description The unit of the Value /boundary_conditions/dirichlet_boundary
(list
) /boundary_conditions/dirichlet_boundary\n
Description The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/dirichlet_boundary/*
/boundary_conditions/dirichlet_boundary/*\n
/boundary_conditions/dirichlet_boundary/*
(object
)/boundary_conditions/dirichlet_boundary/*
(string
) Description Dirichlet boundary condition.
Default: None
Required
/boundary_conditions/dirichlet_boundary/*/id
/boundary_conditions/dirichlet_boundary/*/id\n
/boundary_conditions/dirichlet_boundary/*/id
(int
)/boundary_conditions/dirichlet_boundary/*/id
(string
) Description ID of boundary condition from surface selection.
Range: [0, 2147483646]
Description select all ids.
Options: ['all']
/boundary_conditions/dirichlet_boundary/*/value
(list
) /boundary_conditions/dirichlet_boundary/*/value\n
Description Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/dirichlet_boundary/*/value/*
/boundary_conditions/dirichlet_boundary/*/value/*\n
/boundary_conditions/dirichlet_boundary/*/value/*
(float
)/boundary_conditions/dirichlet_boundary/*/value/*
(string
)/boundary_conditions/dirichlet_boundary/*/value/*
(object
)/boundary_conditions/dirichlet_boundary/*/value/*
(list
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/dirichlet_boundary/*/value/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/value\n
/boundary_conditions/dirichlet_boundary/*/value/*/value
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/value
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/dirichlet_boundary/*/value/*/unit
(string
) /boundary_conditions/dirichlet_boundary/*/value/*/unit\n
Description The unit of the Value Description Dirichlet boundary condition specified per timestep.
/boundary_conditions/dirichlet_boundary/*/value/*/*
/boundary_conditions/dirichlet_boundary/*/value/*/*\n
/boundary_conditions/dirichlet_boundary/*/value/*/*
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/*
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/*/value\n
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
(string
) /boundary_conditions/dirichlet_boundary/*/value/*/*/unit\n
Description The unit of the Value Optional
/boundary_conditions/dirichlet_boundary/*/time_reference
(list
) /boundary_conditions/dirichlet_boundary/*/time_reference\n
Description List of times when the Dirichlet boundary condition is specified /boundary_conditions/dirichlet_boundary/*/time_reference/*
(float
) /boundary_conditions/dirichlet_boundary/*/time_reference/*\n
Description Values of Dirichlet boundary condition for timestep /boundary_conditions/dirichlet_boundary/*/interpolation
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation\n
Description interpolation of boundary condition /boundary_conditions/dirichlet_boundary/*/interpolation/*
/boundary_conditions/dirichlet_boundary/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none Description interpolation of boundary condition
Default: {'type': 'none'}
Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear Description interpolation of boundary condition Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp Description interpolation of boundary condition Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/to\n
Description interpolation ending time Optional
/boundary_conditions/dirichlet_boundary/*/interpolation/*/from
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/from\n
Description interpolation starting time Default: 0
Type: piecewise_constant Description interpolation of boundary condition Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear Description interpolation of boundary condition Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic Description interpolation of boundary condition Required
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/dirichlet_boundary/*/dimension
(list
) /boundary_conditions/dirichlet_boundary/*/dimension\n
Description List of 2 (2D) or 3 (3D) boolean values indicating if the Dirichlet boundary condition is applied for a particular dimension. /boundary_conditions/dirichlet_boundary/*/dimension/*
(bool
) /boundary_conditions/dirichlet_boundary/*/dimension/*\n
Description value Default: True
Description Dirichlet boundary condition loaded from a file, , 1 for scalar, \u2154 for tensor depending on dimension. /boundary_conditions/neumann_boundary
(list
)
/boundary_conditions/neumann_boundary\n
Description The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/neumann_boundary/*
(object
) /boundary_conditions/neumann_boundary/*\n
Description Neumann boundary condition Default: None
Required
/boundary_conditions/neumann_boundary/*/id
/boundary_conditions/neumann_boundary/*/id\n
/boundary_conditions/neumann_boundary/*/id
(int
)/boundary_conditions/neumann_boundary/*/id
(string
) Description ID of boundary condition from surface selection.
Range: [0, 2147483646]
Description select all ids.
Options: ['all']
/boundary_conditions/neumann_boundary/*/value
(list
) /boundary_conditions/neumann_boundary/*/value\n
Description Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/neumann_boundary/*/value/*
/boundary_conditions/neumann_boundary/*/value/*\n
/boundary_conditions/neumann_boundary/*/value/*
(float
)/boundary_conditions/neumann_boundary/*/value/*
(string
)/boundary_conditions/neumann_boundary/*/value/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/neumann_boundary/*/value/*/value
/boundary_conditions/neumann_boundary/*/value/*/value\n
/boundary_conditions/neumann_boundary/*/value/*/value
(float
)/boundary_conditions/neumann_boundary/*/value/*/value
(string
)/boundary_conditions/neumann_boundary/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/neumann_boundary/*/value/*/unit
(string
) /boundary_conditions/neumann_boundary/*/value/*/unit\n
Description The unit of the Value Optional
/boundary_conditions/neumann_boundary/*/interpolation
(list
) /boundary_conditions/neumann_boundary/*/interpolation\n
Description interpolation of boundary condition /boundary_conditions/neumann_boundary/*/interpolation/*
/boundary_conditions/neumann_boundary/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none Description interpolation of boundary condition
Default: {'type': 'none'}
Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear Description interpolation of boundary condition Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp Description interpolation of boundary condition Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/to
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/to\n
Description interpolation ending time Optional
/boundary_conditions/neumann_boundary/*/interpolation/*/from
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/from\n
Description interpolation starting time Default: 0
Type: piecewise_constant Description interpolation of boundary condition Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear Description interpolation of boundary condition Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic Description interpolation of boundary condition Required
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/normal_aligned_neumann_boundary
(list
) /boundary_conditions/normal_aligned_neumann_boundary\n
Description Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/normal_aligned_neumann_boundary/*
(object
) /boundary_conditions/normal_aligned_neumann_boundary/*\n
Description pressure BC entry Default: None
Required
/boundary_conditions/normal_aligned_neumann_boundary/*/id
(int
) /boundary_conditions/normal_aligned_neumann_boundary/*/id\n
Description ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/normal_aligned_neumann_boundary/*/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value\n
/boundary_conditions/normal_aligned_neumann_boundary/*/value
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/value
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value\n
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/value/unit\n
Description The unit of the Value Optional
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none Description interpolation of boundary condition
Default: {'type': 'none'}
Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear Description interpolation of boundary condition Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp Description interpolation of boundary condition Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to\n
Description interpolation ending time Optional
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from\n
Description interpolation starting time Default: 0
Type: piecewise_constant Description interpolation of boundary condition Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
Description interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
Description interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
Description interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
Description interpolation value Optional
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear Description interpolation of boundary condition Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
Description interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
Description interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
Description interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
Description interpolation value Optional
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic Description interpolation of boundary condition Required
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
Description interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
Description interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
Description interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
Description interpolation value Optional
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/pressure_boundary
(list
) /boundary_conditions/pressure_boundary\n
Description Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/pressure_boundary/*
(object
) /boundary_conditions/pressure_boundary/*\n
Description pressure BC entry Default: None
Required
/boundary_conditions/pressure_boundary/*/id
(int
) /boundary_conditions/pressure_boundary/*/id\n
Description ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/pressure_boundary/*/value
/boundary_conditions/pressure_boundary/*/value\n
/boundary_conditions/pressure_boundary/*/value
(float
)/boundary_conditions/pressure_boundary/*/value
(string
)/boundary_conditions/pressure_boundary/*/value
(object
)/boundary_conditions/pressure_boundary/*/value
(list
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/pressure_boundary/*/value/value
/boundary_conditions/pressure_boundary/*/value/value\n
/boundary_conditions/pressure_boundary/*/value/value
(float
)/boundary_conditions/pressure_boundary/*/value/value
(string
)/boundary_conditions/pressure_boundary/*/value/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/pressure_boundary/*/value/unit
(string
) /boundary_conditions/pressure_boundary/*/value/unit\n
Description The unit of the Value Description Values of pressure boundary condition specified per timestep
/boundary_conditions/pressure_boundary/*/value/*
/boundary_conditions/pressure_boundary/*/value/*\n
/boundary_conditions/pressure_boundary/*/value/*
(float
)/boundary_conditions/pressure_boundary/*/value/*
(string
)/boundary_conditions/pressure_boundary/*/value/*
(object
) Description Value as a constant float
Default: 0
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/pressure_boundary/*/value/*/value
/boundary_conditions/pressure_boundary/*/value/*/value\n
/boundary_conditions/pressure_boundary/*/value/*/value
(float
)/boundary_conditions/pressure_boundary/*/value/*/value
(string
)/boundary_conditions/pressure_boundary/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/pressure_boundary/*/value/*/unit
(string
) /boundary_conditions/pressure_boundary/*/value/*/unit\n
Description The unit of the Value Optional
/boundary_conditions/pressure_boundary/*/time_reference
(list
) /boundary_conditions/pressure_boundary/*/time_reference\n
Description List of times when the pressure boundary condition is specified /boundary_conditions/pressure_boundary/*/time_reference/*
(float
) /boundary_conditions/pressure_boundary/*/time_reference/*\n
Description Values of pressure boundary condition for timestep /boundary_conditions/pressure_cavity
(list
) /boundary_conditions/pressure_cavity\n
Description Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/pressure_cavity/*
(object
) /boundary_conditions/pressure_cavity/*\n
Description pressure BC entry Default: None
Required
/boundary_conditions/pressure_cavity/*/id
(int
) /boundary_conditions/pressure_cavity/*/id\n
Description ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/pressure_cavity/*/value
/boundary_conditions/pressure_cavity/*/value\n
/boundary_conditions/pressure_cavity/*/value
(float
)/boundary_conditions/pressure_cavity/*/value
(string
)/boundary_conditions/pressure_cavity/*/value
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/pressure_cavity/*/value/value
/boundary_conditions/pressure_cavity/*/value/value\n
/boundary_conditions/pressure_cavity/*/value/value
(float
)/boundary_conditions/pressure_cavity/*/value/value
(string
)/boundary_conditions/pressure_cavity/*/value/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/pressure_cavity/*/value/unit
(string
) /boundary_conditions/pressure_cavity/*/value/unit\n
Description The unit of the Value /boundary_conditions/obstacle_displacements
(list
) /boundary_conditions/obstacle_displacements\n
Description The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/obstacle_displacements/*
(object
) /boundary_conditions/obstacle_displacements/*\n
Description Obstacle displacements Default: None
Required
/boundary_conditions/obstacle_displacements/*/id
/boundary_conditions/obstacle_displacements/*/id\n
/boundary_conditions/obstacle_displacements/*/id
(int
)/boundary_conditions/obstacle_displacements/*/id
(string
) Description ID of boundary condition from surface selection.
Range: [0, 2147483646]
Description select all ids.
Options: ['all']
/boundary_conditions/obstacle_displacements/*/value
(list
) /boundary_conditions/obstacle_displacements/*/value\n
Description Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/obstacle_displacements/*/value/*
/boundary_conditions/obstacle_displacements/*/value/*\n
/boundary_conditions/obstacle_displacements/*/value/*
(float
)/boundary_conditions/obstacle_displacements/*/value/*
(string
)/boundary_conditions/obstacle_displacements/*/value/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/boundary_conditions/obstacle_displacements/*/value/*/value
/boundary_conditions/obstacle_displacements/*/value/*/value\n
/boundary_conditions/obstacle_displacements/*/value/*/value
(float
)/boundary_conditions/obstacle_displacements/*/value/*/value
(string
)/boundary_conditions/obstacle_displacements/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/boundary_conditions/obstacle_displacements/*/value/*/unit
(string
) /boundary_conditions/obstacle_displacements/*/value/*/unit\n
Description The unit of the Value Optional
/boundary_conditions/obstacle_displacements/*/interpolation
(list
) /boundary_conditions/obstacle_displacements/*/interpolation\n
Description interpolation of boundary condition /boundary_conditions/obstacle_displacements/*/interpolation/*
/boundary_conditions/obstacle_displacements/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none Description interpolation of boundary condition
Default: {'type': 'none'}
Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear Description interpolation of boundary condition Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp Description interpolation of boundary condition Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/to
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/to\n
Description interpolation ending time Optional
/boundary_conditions/obstacle_displacements/*/interpolation/*/from
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/from\n
Description interpolation starting time Default: 0
Type: piecewise_constant Description interpolation of boundary condition Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear Description interpolation of boundary condition Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic Description interpolation of boundary condition Required
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
Description type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
Description interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
Description interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
Description interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
Description interpolation value Optional
/boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
Description how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/periodic_boundary
(object
) /boundary_conditions/periodic_boundary\n
Description Options for periodic boundary conditions. Default: None
Optional
/boundary_conditions/periodic_boundary/enabled
(bool
) /boundary_conditions/periodic_boundary/enabled\n
Description Default: False
/boundary_conditions/periodic_boundary/tolerance
(float
) /boundary_conditions/periodic_boundary/tolerance\n
Description Relative tolerance of deciding periodic correspondence Default: 1e-05
/boundary_conditions/periodic_boundary/correspondence
(list
) /boundary_conditions/periodic_boundary/correspondence\n
Description Periodic directions for periodic boundary conditions. If not specified, default to axis-aligned directions. /boundary_conditions/periodic_boundary/correspondence/*
(list
) /boundary_conditions/periodic_boundary/correspondence/*\n
Description One periodic direction. /boundary_conditions/periodic_boundary/correspondence/*/*
(float
) /boundary_conditions/periodic_boundary/correspondence/*/*\n
Description One entry of a periodic direction. /boundary_conditions/periodic_boundary/linear_displacement_offset
(list
) /boundary_conditions/periodic_boundary/linear_displacement_offset\n
Description /boundary_conditions/periodic_boundary/linear_displacement_offset/*
(list
) /boundary_conditions/periodic_boundary/linear_displacement_offset/*\n
Description /boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*\n
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
(float
)/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
(string
) Description
Description
/boundary_conditions/periodic_boundary/fixed_macro_strain
(list
) /boundary_conditions/periodic_boundary/fixed_macro_strain\n
Description /boundary_conditions/periodic_boundary/fixed_macro_strain/*
(int
) /boundary_conditions/periodic_boundary/fixed_macro_strain/*\n
Description /boundary_conditions/periodic_boundary/force_zero_mean
(bool
) /boundary_conditions/periodic_boundary/force_zero_mean\n
Description The periodic solution is not unique, set to true to find the solution with zero mean. Default: False
/initial_conditions
(object
) /initial_conditions\n
Description Initial conditions for the time-dependent problem, imposed on the main variable, its derivative or second derivative Default: None
Optional
/initial_conditions/solution
(list
) /initial_conditions/solution\n
Description initial solution /initial_conditions/solution/*
(object
) /initial_conditions/solution/*\n
Description A list of (ID, value) pairs defining the initial conditions for the main variable values. Ids are set by selection, and values can be floats or formulas. Default: None
Required
/initial_conditions/solution/*/id
(int
) /initial_conditions/solution/*/id\n
Description ID from volume selections /initial_conditions/solution/*/value
(list
) /initial_conditions/solution/*/value\n
Description value of the solution /initial_conditions/solution/*/value/*
/initial_conditions/solution/*/value/*\n
/initial_conditions/solution/*/value/*
(float
)/initial_conditions/solution/*/value/*
(string
)/initial_conditions/solution/*/value/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/initial_conditions/solution/*/value/*/value
/initial_conditions/solution/*/value/*/value\n
/initial_conditions/solution/*/value/*/value
(float
)/initial_conditions/solution/*/value/*/value
(string
)/initial_conditions/solution/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/initial_conditions/solution/*/value/*/unit
(string
) /initial_conditions/solution/*/value/*/unit\n
Description The unit of the Value /initial_conditions/velocity
(list
) /initial_conditions/velocity\n
Description initial velocity /initial_conditions/velocity/*
(object
) /initial_conditions/velocity/*\n
Description A list of (ID, value) pairs defining the initial conditions for the first derivative of the main variable values. Ids are set by selection, and values can be floats or formulas. Default: None
Required
/initial_conditions/velocity/*/id
(int
) /initial_conditions/velocity/*/id\n
Description ID from volume selections /initial_conditions/velocity/*/value
(list
) /initial_conditions/velocity/*/value\n
Description value od the initial velocity /initial_conditions/velocity/*/value/*
/initial_conditions/velocity/*/value/*\n
/initial_conditions/velocity/*/value/*
(float
)/initial_conditions/velocity/*/value/*
(string
)/initial_conditions/velocity/*/value/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/initial_conditions/velocity/*/value/*/value
/initial_conditions/velocity/*/value/*/value\n
/initial_conditions/velocity/*/value/*/value
(float
)/initial_conditions/velocity/*/value/*/value
(string
)/initial_conditions/velocity/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/initial_conditions/velocity/*/value/*/unit
(string
) /initial_conditions/velocity/*/value/*/unit\n
Description The unit of the Value /initial_conditions/acceleration
(list
) /initial_conditions/acceleration\n
Description initial acceleration /initial_conditions/acceleration/*
(object
) /initial_conditions/acceleration/*\n
Description entries Default: None
Required
/initial_conditions/acceleration/*/id
(int
) /initial_conditions/acceleration/*/id\n
Description ID from volume selections /initial_conditions/acceleration/*/value
(list
) /initial_conditions/acceleration/*/value\n
Description value /initial_conditions/acceleration/*/value/*
/initial_conditions/acceleration/*/value/*\n
/initial_conditions/acceleration/*/value/*
(float
)/initial_conditions/acceleration/*/value/*
(string
)/initial_conditions/acceleration/*/value/*
(object
) Description Value as a constant float
Description Value as an expression of \\(x,y,z,t\\) or a file
Description Value with unit Required
/initial_conditions/acceleration/*/value/*/value
/initial_conditions/acceleration/*/value/*/value\n
/initial_conditions/acceleration/*/value/*/value
(float
)/initial_conditions/acceleration/*/value/*/value
(string
)/initial_conditions/acceleration/*/value/*/value
(file
) Description The value of the constant
Description The value as an expression
Description The value as a file
/initial_conditions/acceleration/*/value/*/unit
(string
) /initial_conditions/acceleration/*/value/*/unit\n
Description The unit of the Value /output
(object
) /output\n
Description output settings Default: None
Optional
/output/directory
(string
) /output/directory\n
Description Directory for output files. Default: ''
/output/log
(object
) /output/log\n
Description Setting for the output log. Default: None
Optional
/output/log/level
/output/log/level\n
/output/log/level
(int
)/output/log/level
(string
) Description Level of logging, 0 trace, 1 debug, 2 info, 3 warning, 4 error, 5 critical, and 6 off.
Range: [0, 6]
Description Level of logging.
Default: 'debug'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/file_level
/output/log/file_level\n
/output/log/file_level
(int
)/output/log/file_level
(string
) Description Level of logging to a file, 0 trace, 1 debug, 2 info, 3 warning, 4 error, 5 critical, and 6 off.
Range: [0, 6]
Description Level of logging.
Default: 'trace'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/path
(string
) /output/log/path\n
Description File where to save the log; empty string is output to terminal. Default: ''
/output/log/quiet
(bool
) /output/log/quiet\n
Description Disable cout for logging. Default: False
/output/json
(string
) /output/json\n
Description File name for JSON output statistics on time/error/etc. Default: ''
/output/restart_json
(string
) /output/restart_json\n
Description File name for JSON output to restart the simulation. Default: ''
/output/paraview
(object
) /output/paraview\n
Description Output in paraview format Default: None
Optional
/output/paraview/file_name
(string
) /output/paraview/file_name\n
Description Paraview output file name Default: ''
/output/paraview/vismesh_rel_area
(float
) /output/paraview/vismesh_rel_area\n
Description relative area for the upsampled visualisation mesh Default: 1e-05
/output/paraview/skip_frame
(int
) /output/paraview/skip_frame\n
Description export every skip_frame-th frames for time dependent simulations Default: 1
/output/paraview/high_order_mesh
(bool
) /output/paraview/high_order_mesh\n
Description Enables/disables high-order output for paraview. Supported only for isoparametric or linear meshes with high-order solutions. Default: True
/output/paraview/volume
(bool
) /output/paraview/volume\n
Description Export volumetric mesh Default: True
/output/paraview/surface
(bool
) /output/paraview/surface\n
Description Export surface mesh (in 2d polygon) Default: False
/output/paraview/wireframe
(bool
) /output/paraview/wireframe\n
Description Export the wireframe of the mesh Default: False
/output/paraview/points
(bool
) /output/paraview/points\n
Description Export the Dirichlet points Default: False
/output/paraview/options
(object
) /output/paraview/options\n
Description Optional fields in the output Default: None
Optional
/output/paraview/options/use_hdf5
(bool
) /output/paraview/options/use_hdf5\n
Description If true, export the data as hdf5, compatible with paraview >5.11 Default: False
/output/paraview/options/material
(bool
) /output/paraview/options/material\n
Description If true, write out material values sampled on the vertices of the mesh Default: False
/output/paraview/options/body_ids
(bool
) /output/paraview/options/body_ids\n
Description Export volumes ids Default: False
/output/paraview/options/contact_forces
(bool
) /output/paraview/options/contact_forces\n
Description If true, write out contact forces for surface Default: False
/output/paraview/options/friction_forces
(bool
) /output/paraview/options/friction_forces\n
Description If true, write out friction forces for surface Default: False
/output/paraview/options/velocity
(bool
) /output/paraview/options/velocity\n
Description If true, write out velocities Default: False
/output/paraview/options/acceleration
(bool
) /output/paraview/options/acceleration\n
Description If true, write out accelerations Default: False
/output/paraview/options/scalar_values
(bool
) /output/paraview/options/scalar_values\n
Description If true, write out scalar values Default: True
/output/paraview/options/tensor_values
(bool
) /output/paraview/options/tensor_values\n
Description If true, write out tensor values Default: True
/output/paraview/options/discretization_order
(bool
) /output/paraview/options/discretization_order\n
Description If true, write out discretization order Default: True
/output/paraview/options/nodes
(bool
) /output/paraview/options/nodes\n
Description If true, write out node order Default: True
/output/paraview/options/forces
(bool
) /output/paraview/options/forces\n
Description If true, write out all variational forces on the FE mesh Default: False
/output/data
(object
) /output/data\n
Description File names to write output data to. Default: None
Optional
/output/data/solution
(string
) /output/data/solution\n
Description Main variable solution. Unrolled [xyz, xyz, \u2026] using PolyFEM ordering. If reorder_nodes exports the solution with the same order the vertices of the input mesh as a #n x d file Default: ''
/output/data/full_mat
(string
) /output/data/full_mat\n
Description System matrix without boundary conditions. Doesn\u2019t work for nonlinear problems Default: ''
/output/data/stiffness_mat
(string
) /output/data/stiffness_mat\n
Description System matrix with boundary conditions. Doesn\u2019t work for nonlinear problems Default: ''
/output/data/stress_mat
(string
) /output/data/stress_mat\n
Description Exports stress Default: ''
/output/data/state
(string
) /output/data/state\n
Description Writes the complete state in PolyFEM hdf5 format, used to restart the sim Default: ''
/output/data/rest_mesh
(string
) /output/data/rest_mesh\n
Description Writes the rest mesh in MSH format, used to restart the sim Default: ''
/output/data/mises
(string
) /output/data/mises\n
Description File name to write per-node Von Mises stress values to. Default: ''
/output/data/nodes
(string
) /output/data/nodes\n
Description Writes the FEM nodes Default: ''
/output/data/advanced
(object
) /output/data/advanced\n
Description advanced options Default: None
Optional
/output/data/advanced/reorder_nodes
(bool
) /output/data/advanced/reorder_nodes\n
Description Reorder nodes accodring to input Default: False
/output/advanced
(object
) /output/advanced\n
Description Additional output options Default: None
Optional
/output/advanced/timestep_prefix
(string
) /output/advanced/timestep_prefix\n
Description Prefix for output file names for each time step, the final file is step_i.[vtu|vtm] where i is the time index. Default: 'step_'
/output/advanced/sol_on_grid
(float
) /output/advanced/sol_on_grid\n
Description exports the solution sampled on a grid, specify the grid spacing Default: -1
/output/advanced/compute_error
(bool
) /output/advanced/compute_error\n
Description Enables the computation of the error. If no reference solution is provided, return the norms of the solution Default: True
/output/advanced/sol_at_node
(int
) /output/advanced/sol_at_node\n
Description Write out solution values at a specific node. the values will be written in the output JSON file Default: -1
/output/advanced/vis_boundary_only
(bool
) /output/advanced/vis_boundary_only\n
Description saves only elements touching the boundaries Default: False
/output/advanced/curved_mesh_size
(bool
) /output/advanced/curved_mesh_size\n
Description upsample curved edges to compute mesh size Default: False
/output/advanced/save_solve_sequence_debug
(bool
) /output/advanced/save_solve_sequence_debug\n
Description saves AL internal steps, for debugging Default: False
/output/advanced/save_ccd_debug_meshes
(bool
) /output/advanced/save_ccd_debug_meshes\n
Description saves AL internal steps, for debugging Default: False
/output/advanced/save_time_sequence
(bool
) /output/advanced/save_time_sequence\n
Description saves timesteps Default: True
/output/advanced/save_nl_solve_sequence
(bool
) /output/advanced/save_nl_solve_sequence\n
Description saves obj after every nonlinear iteration, for debugging Default: False
/output/advanced/spectrum
(bool
) /output/advanced/spectrum\n
Description exports the spectrum of the matrix in the output JSON. Works only if POLYSOLVE_WITH_SPECTRA is enabled Default: False
/output/reference
(object
) /output/reference\n
Description Write out the analytic/numerical ground-truth solution and or its gradient Default: None
Optional
/output/reference/solution
(list
) /output/reference/solution\n
Description reference solution used to compute errors /output/reference/solution/*
(string
) /output/reference/solution/*\n
Description value as a function of \\(x,y,z,t\\) Default: ''
/output/reference/gradient
(list
) /output/reference/gradient\n
Description gradient of the reference solution to compute errors /output/reference/gradient/*
(string
) /output/reference/gradient/*\n
Description value as a function of \\(x,y,z,t\\) Default: ''
/input
(object
) /input\n
Description input data Default: None
Optional
/input/data
(object
) /input/data\n
Description input to restart time dependent sim Default: None
Optional
/input/data/state
(file
) /input/data/state\n
Description input state as hdf5 Default: ''
/input/data/reorder
(bool
) /input/data/reorder\n
Description reorder input data Default: False
/tests
(object
) /tests\n
Description Used to test to compare different norms of solutions. Default: None
Optional
/tests/err_h1
(float
) /tests/err_h1\n
Description Reference h1 solution\u2019s norm. Default: 0
/tests/err_h1_semi
(float
) /tests/err_h1_semi\n
Description Reference h1 seminorm solution\u2019s norm. Default: 0
/tests/err_l2
(float
) /tests/err_l2\n
Description Reference \\(L^2\\) solution\u2019s norm. Default: 0
/tests/err_linf
(float
) /tests/err_linf\n
Description Reference \\(L^\\infty\\) solution\u2019s norm. Default: 0
/tests/err_linf_grad
(float
) /tests/err_linf_grad\n
Description Reference \\(L^\\infty\\) solution\u2019s gradient norm. Default: 0
/tests/err_lp
(float
) /tests/err_lp\n
Description Reference \\(L^8\\) solution\u2019s gradient norm. Default: 0
/tests/margin
(float
) /tests/margin\n
Description Reference tolerance used in tests. Default: 1e-05
/tests/time_steps
/tests/time_steps\n
/tests/time_steps
(int
)/tests/time_steps
(string
) Description Number of time steps to test.
Default: 1
Range: [1, inf]
Description Number of time steps to test.
Options: ['all', 'static']
PolyFEM in C++ uses modern CMake and is cross-platform.
"},{"location":"cxx_index/#compilation","title":"Compilation","text":"All the C++ dependencies required to build the code are automatically downloaded through CMake. We test PolyFEM on macOS, Linux, and Windows, and it should build out-of-the-box with CMake:
mkdir build\ncd build\ncmake ..\nmake -j4\n
"},{"location":"cxx_index/#optional","title":"Optional","text":"Optionally, the formulas for higher-order bases can be computed at CMake time using a Python script. If you choose to do so, PolyFEM requires a working installation of Python and some additional packages to build correctly:
numpy
and sympy
(optional)quadpy
(optional)The main executable, ./PolyFEM_bin
, can as command-line interface. Simply run:
./PolyFEM_bin --help\n
More detailed documentation can be found in the tutorial.
"},{"location":"json/","title":"JSON Input","text":""},{"location":"json/#json-files-structure","title":"JSON Files Structure","text":"PolyFEM_bin
expects as input a JSON file containing the setup and parameters of the problem you wish to solve. A basic example of such a file is as follows:
{\n\"common\": \"\", // path to another JSON file containing default arguments on which to patch these arguments\n\n\"geometry\": [{\n\"mesh\": \"\" // mesh path (absolute or relative to JSON file)\n}],\n\n\"time\": { // time-dependent problem\n\"tend\": 1, // end time\n\"dt\": 0.1, // time step size\n\"time_steps\": 10, // (alternativly) number of time steps\n\"integrator\": \"ImplicitEuler\" // time integration method\n},\n\n\"contact\": {\n\"enabled\": true // enable contact handling\n},\n\n\"solver\": {\n\"linear\": {\n\"solver\": \"Eigen::PardisoLDLT\"\n},\n\"nonlinear\": {\n\"line_search\": {\n\"method\": \"backtracking\"\n},\n\"solver\": \"newton\"\n}\n},\n\n// Material parameter\n\"materials\": {\n\"type\": \"NeoHookean\", // material model\n\"E\": 1.5, // Young's modulus\n\"nu\": 0.3, // Poisson ratio\n\"rho\": 1 // density\n},\n\n\"output\": {\n\"json\": \"sim.json\", // output statistics\n\"paraview\": { // output geometry as paraview VTU files\n\"file_name\": \"sim.pvd\",\n\"options\": {\n\"material\": true, // save material properties\n\"body_ids\": true // save body ids\n},\n\"vismesh_rel_area\": 1e-05 // relative area for upsampling the solution\n}\n}\n}\n
"},{"location":"json/#materials","title":"Materials","text":"Options:
Helmholtz
, Laplacian
, Bilaplacian
(mixed)HookeLinearElasticity
, LinearElasticity
, NeoHookean
, SaintVenant
, IncompressibleLinearElasticity
(mixed), Stokes
(mixed), NavierStokes
(mixed)Each formulation has a set of material parameters that can be set alongside it in materials
.
See formulations for more details.
"},{"location":"json/#time-integrators","title":"Time Integrators","text":"Options: ImplicitEuler
, ImplicitNewmark
, BDF
The parameters for the time integration are stored inside the \"time_integrator_params\"
field.
See time integrators for more details.
"},{"location":"json/#solvers","title":"Solvers","text":""},{"location":"json/#linear-solver","title":"Linear Solver","text":"PolyFEM offers several linear solver options based on compilation options. For more information, see PolySolve a stand-alone linear solver wrapper library used by PolyFEM.
Options: AMGCL
, Eigen::BiCGSTAB
, Eigen::CholmodSupernodalLLT
, Eigen::ConjugateGradient
, Eigen::DGMRES
, Eigen::GMRES
, Eigen::LeastSquaresConjugateGradient
, Eigen::MINRES
, Eigen::PardisoLDLT
, Eigen::PardisoLU
, Eigen::SimplicialLDLT
, Eigen::SparseLU
, Eigen::UmfPackLU
, Hypre
, Pardiso
Options: newton
, lbfgs
See solvers for more details.
"},{"location":"json/#line-search","title":"Line Search","text":"Options: backtracking
, armijo
, armijo_alt
, more_thuente
See solvers for more details.
"},{"location":"json/#contact","title":"Contact","text":"\"contact\": {\n\"has_collision\": false, // Enable collision detection\n\"dhat\": 0.03, // Barrier activation distance, check IPC paper\n\"mu\": 0.0, // Coefficient of friction (0 disables friction)\n\"epsv\": 1e-3, // Smoothing parameter for the transition between static and dynamic friction\n\"friction_iterations\": 1, // Friction lagging iterations (0 disables friction and < 0 indicates unlimited iterations)\n\"friction_convergence_tol\": 1e-2, // Friction lagging convergence tolerance\n\"barrier_stiffness\": \"adaptive\",\n}\n\n\"solver\": {\n\"contact\": {\n\"broad_phase_method\": \"hash_grid\",\n\"ccd_tolerance\": 1e-6,\n\"ccd_max_iterations\": 1e6\n}\n},\n
See contact for more details.
"},{"location":"json/#geometry","title":"Geometry","text":"\"geometry\": [{\n\"mesh\": \" \", // Mesh path (absolute or relative to JSON file)\n\"enabled\": true,\n\n\"transformation\": {\n\"scale\": [1, 1, 1],\n\"rotation\": [0, 0, 0],\n\"rotation_mode\": \"xyz\",\n\"translation\": [0, 0, 0]\n},\n\n\"surface_selection\": [],\n\"volume_selection\": [],\n\n\"is_obstacle\": false\n}],\n
"},{"location":"json/#mesh","title":"Mesh","text":"The path to the mesh file (absolute or relative to JSON file).
"},{"location":"json/#enable","title":"Enable","text":"A boolean for enabling the body. By default, bodies are enabled.
"},{"location":"json/#transformation","title":"Transformation","text":"A pre-transform is applied to the geometry at load. The order of the transformation is scale, rotate, then translate.
"},{"location":"json/#scale","title":"Scale","text":"The \"scale\"
field encodes a scaling of the mesh. This can either be a single number for uniform scaling or an array of \\(d\\) numbers for scaling in each axis.
Alternatively, the \"dimensions\"
field encodes the absolute size of the mesh\u2019s axis-aligned bounding box. This should be an array of \\(d\\) numbers for the dimensions of each axis. This is equivalent to using a scale of dimensions / initial_dimensions
where nonfinite values are replaced by 1
. If the \"dimensions\"
field is present, the \"scale\"
field is ignored.
The \"rotation\"
field encodes a rotation around the mesh\u2019s origin. The rotation can either be a single number or an array of numbers depending on the \"rotation_mode\"
.
The \"rotation_mode\"
field indicates how the \"rotation\"
is represented. The options are:
\"axis_angle\"
: The \"rotation\"
must be an array of four numbers where the first number is the angle of rotation in degrees and the last three are the axis of rotation. The axis will be normalized.\"quaternion\"
: The \"rotation\"
must be an array of four numbers which represent a quaternion \\(w + xi + yj + zk\\). The order of \"rotation\"
is [x, y, z, w]
. The quaternion will be normalized.\"rotation_vector\"
: The \"rotation\"
must be an array of three numbers whose magnitude is the angle of rotation in degrees and the normalized version is the axis of rotation.r\"[xyz]+\"
: Indicates the \"rotation\"
is a series of Euler angle rotations in degrees. The \"rotation\"
can be either a number or variable-length array as long as the length matches the rotation mode string\u2019s length. The Euler rotations will be applied in the order of the string (from left to right).The default \"rotation_mode\"
is \"xyz\"
which indicates an Euler angle rotation in the order x
, y
, and then z
.
The \"translation\"
field encodes a translation of the mesh. This must be an array of length \\(d\\), the dimension of the scene.
Either * a single number for a selection ID to apply to all surfaces in the mesh, * a file path containing one ID per surface element, or * a single or list of selection objects used to assign a given \"id\"
(see selections).
Same as surface selection, but for assigning IDs to the volume elements of the mesh.
"},{"location":"json/#obstacles","title":"Obstacles","text":"Obstacles serve as a way of specifying non-simulated collision objects.
"},{"location":"json/#mesh_1","title":"Mesh","text":"The path to the mesh file (absolute or relative to JSON file). In addition to the standard volumetric meshes supported by simulated meshes, this can be a codimensional/surface mesh (i.e., points, edges, or triangles). Currently, codimensional points and edges are only supported using the OBJ file format. Codimensional points are specified as vertices that are not indexed by any elements. Codimensional edges are specified as OBJ line elements.
"},{"location":"json/#surface-selection_1","title":"Surface Selection","text":"Must be a single number.
"},{"location":"json/#selections","title":"Selections","text":""},{"location":"json/#box","title":"Box","text":"An axis-aligned box selection.
Parameters:
box
: a \\(2 \\times n\\) array where the first row is the minimum corner and the second row is the maximum cornerrelative
(default: false
): if the coordinates of box
are relative to the mesh\u2019s rest bounding boxExample
{\"box\": [[0, 0, 0], [1, 0.1, 1]], \"relative\": true}
will select all points in the bottom 10% of the mesh (assuming the vertical direction if in the y-axis).
A sphere (or circle in 2D) selection.
Parameters:
center
: center of the sphere (\\(n\\)-length array)radius
: radius of the sphere (float value)relative
(default: false
): if the center
is relative to the mesh\u2019s rest bounding box and the radius is relative to the mesh\u2019s bounding box diagonalExample
{\"center\": [0, 0, 0], \"radius\": 1}
will select points that are less than 1 unit from the origin.
An axis-aligned plane selection. Everything on one side of the plane is selected.
Parameters:
axis
: axis aligned with the planer\"[+-]?[xyzXYZ]\"
or int matching the regular expression [+-]?[123]
where the sign is the side of the plane to select and coordinate is the axis to align the plane withposition
: position of the plane along the axis (float value)relative
(default: false
): if the position
is relative to the mesh\u2019s rest bounding boxExample
{\"axis\": \"-X\", \"position\": 1}
will select points with a x-coordinate less than 1.
A plane selection. Everything on one side of the plane is selected.
Parameters:
normal
: normal of the plane (\\(n\\)-length array)point
: point on the plane (has priority over offset
) (\\(n\\)-length array)offset
: offset along the normal from the origin defining the point (float value)relative
(default: false
): if the point
is relative to the mesh\u2019s rest bounding box (does not apply to the offset)Example
{\"normal\": [1, 1, 0], \"point\": [0, 1, 0]}
will select points \\(x\\) where \\((x-p) \\cdot n \\ge 0\\).
For time-dependent simulation, the state variables (\\(u\\), \\(v = \\dot{u}\\), and \\(a = \\ddot{u}\\)) are exported using the following parameters:
\"output\": {\n\"data\": {\n\"state\": \"<path/to/state.hdf5>\"\n}\n}\n
The path can be either absolute or relative to the output directory. The state will be saved in HDF5 format containing the keys u
, v
, and a
for the solution, velocity, and acceleration, respectively.
This file can then be used to initialize (or restart) the simulation from the saved state by specifying:
\"input\": {\n\"data\": {\n\"state\": \"<path/to/state.hdf5>\"\n}\n}\n
Note
When restarting the simulation it is necessary to also specify the \"time\": {\"t0\": <start_time>}
parameter for the starting time. Otherwise, it will assume a starting time of 0
.
The following json contains the default values by PolyFEM.
Values of \"REQUIRED!\"
indicate the field has no default and must be specified by the user.
{\n\"boundary_conditions\": {\n\"dirichlet_boundary\": [],\n\"neumann_boundary\": [],\n\"normal_aligned_neumann_boundary\": [],\n\"obstacle_displacements\": [],\n\"periodic_boundary\": {\n\"correspondence\": [],\n\"enabled\": false,\n\"fixed_macro_strain\": [],\n\"force_zero_mean\": false,\n\"linear_displacement_offset\": [],\n\"tolerance\": 1e-05\n},\n\"pressure_boundary\": [],\n\"pressure_cavity\": [],\n\"rhs\": {\n\"unit\": \"REQUIRED!\",\n\"value\": \"REQUIRED!\"\n}\n},\n\"common\": \"\",\n\"contact\": {\n\"collision_mesh\": {\n\"enabled\": true,\n\"linear_map\": \"REQUIRED!\",\n\"max_edge_length\": \"REQUIRED!\",\n\"mesh\": \"REQUIRED!\",\n\"tessellation_type\": \"regular\"\n},\n\"dhat\": 0.001,\n\"dhat_percentage\": 0.8,\n\"enabled\": false,\n\"epsv\": 0.001,\n\"friction_coefficient\": 0,\n\"periodic\": false,\n\"use_convergent_formulation\": false\n},\n\"geometry\": \"REQUIRED!\",\n\"initial_conditions\": {\n\"acceleration\": [],\n\"solution\": [],\n\"velocity\": []\n},\n\"input\": {\n\"data\": {\n\"reorder\": false,\n\"state\": \"\"\n}\n},\n\"materials\": \"REQUIRED!\",\n\"output\": {\n\"advanced\": {\n\"compute_error\": true,\n\"curved_mesh_size\": false,\n\"save_ccd_debug_meshes\": false,\n\"save_nl_solve_sequence\": false,\n\"save_solve_sequence_debug\": false,\n\"save_time_sequence\": true,\n\"sol_at_node\": -1,\n\"sol_on_grid\": -1,\n\"spectrum\": false,\n\"timestep_prefix\": \"step_\",\n\"vis_boundary_only\": false\n},\n\"data\": {\n\"advanced\": {\n\"reorder_nodes\": false\n},\n\"full_mat\": \"\",\n\"mises\": \"\",\n\"nodes\": \"\",\n\"rest_mesh\": \"\",\n\"solution\": \"\",\n\"state\": \"\",\n\"stiffness_mat\": \"\",\n\"stress_mat\": \"\"\n},\n\"directory\": \"\",\n\"json\": \"\",\n\"log\": {\n\"file_level\": \"trace\",\n\"level\": \"debug\",\n\"path\": \"\",\n\"quiet\": false\n},\n\"paraview\": {\n\"file_name\": \"\",\n\"high_order_mesh\": true,\n\"options\": {\n\"acceleration\": false,\n\"body_ids\": false,\n\"contact_forces\": false,\n\"discretization_order\": true,\n\"forces\": false,\n\"friction_forces\": false,\n\"material\": false,\n\"nodes\": true,\n\"scalar_values\": true,\n\"tensor_values\": true,\n\"use_hdf5\": false,\n\"velocity\": false\n},\n\"points\": false,\n\"skip_frame\": 1,\n\"surface\": false,\n\"vismesh_rel_area\": 1e-05,\n\"volume\": true,\n\"wireframe\": false\n},\n\"reference\": {\n\"gradient\": [],\n\"solution\": []\n},\n\"restart_json\": \"\"\n},\n\"preset_problem\": {\n\"U\": {},\n\"angular_v0\": 0.5,\n\"angular_v1\": -0.5,\n\"axis_coordiante\": 2,\n\"axis_coordiante0\": 2,\n\"axis_coordiante1\": 2,\n\"bbox_center\": [],\n\"fixed_boundary\": 5,\n\"force\": {},\n\"formulation\": \"\",\n\"func\": 0,\n\"kernel_distance\": 0,\n\"kernel_weights\": \"\",\n\"n_kernels\": 0,\n\"n_turns\": 0.5,\n\"time_dependent\": {},\n\"turning_boundary\": 6,\n\"turning_boundary0\": 5,\n\"turning_boundary1\": 6,\n\"type\": \"REQUIRED!\",\n\"viscosity\": 1\n},\n\"root_path\": \"\",\n\"solver\": {\n\"adjoint_linear\": {\n\"AMGCL\": {\n\"precond\": {\n\"class\": \"amg\",\n\"coarsening\": {\n\"aggr\": {\n\"eps_strong\": 0\n},\n\"estimate_spectral_radius\": true,\n\"relax\": 1,\n\"type\": \"smoothed_aggregation\"\n},\n\"direct_coarse\": false,\n\"max_levels\": 6,\n\"ncycle\": 2,\n\"relax\": {\n\"degree\": 16,\n\"higher\": 2,\n\"lower\": 0.008333333333,\n\"power_iters\": 100,\n\"scale\": true,\n\"type\": \"chebyshev\"\n}\n},\n\"solver\": {\n\"maxiter\": 1000,\n\"tol\": 1e-10,\n\"type\": \"cg\"\n}\n},\n\"Eigen::BiCGSTAB\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::ConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::DGMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::GMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::LeastSquaresConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::MINRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Hypre\": {\n\"max_iter\": 1000,\n\"pre_max_iter\": 1,\n\"tolerance\": 1e-10\n},\n\"Pardiso\": {\n\"mtype\": 11\n},\n\"enable_overwrite_solver\": false,\n\"precond\": \"\",\n\"solver\": \"\"\n},\n\"advanced\": {\n\"cache_size\": 900000,\n\"lagged_regularization_iterations\": 1,\n\"lagged_regularization_weight\": 0,\n\"lump_mass_matrix\": false\n},\n\"augmented_lagrangian\": {\n\"eta\": 0.99,\n\"initial_weight\": 1000000.0,\n\"max_weight\": 100000000.0,\n\"nonlinear\": {\n\"ADAM\": {\n\"alpha\": 0.001,\n\"beta_1\": 0.9,\n\"beta_2\": 0.999,\n\"epsilon\": 1e-08\n},\n\"L-BFGS\": {\n\"history_size\": 6\n},\n\"L-BFGS-B\": {\n\"history_size\": 6\n},\n\"Newton\": {\n\"force_psd_projection\": false,\n\"reg_weight_inc\": 10,\n\"reg_weight_max\": 100000000.0,\n\"reg_weight_min\": 1e-08,\n\"residual_tolerance\": 1e-05,\n\"use_psd_projection\": true,\n\"use_psd_projection_in_regularized\": true\n},\n\"StochasticADAM\": {\n\"alpha\": 0.001,\n\"beta_1\": 0.9,\n\"beta_2\": 0.999,\n\"epsilon\": 1e-08,\n\"erase_component_probability\": 0.3\n},\n\"StochasticGradientDescent\": {\n\"erase_component_probability\": 0.3\n},\n\"advanced\": {\n\"apply_gradient_fd\": \"None\",\n\"derivative_along_delta_x_tol\": 0,\n\"f_delta\": 0,\n\"f_delta_step_tol\": 100,\n\"gradient_fd_eps\": 1e-07\n},\n\"allow_out_of_iterations\": false,\n\"box_constraints\": {\n\"bounds\": [],\n\"max_change\": -1\n},\n\"first_grad_norm_tol\": 1e-10,\n\"grad_norm\": 1e-08,\n\"iterations_per_strategy\": 5,\n\"line_search\": {\n\"Armijo\": {\n\"c\": 0.0001\n},\n\"RobustArmijo\": {\n\"delta_relative_tolerance\": 0.1\n},\n\"default_init_step_size\": 1,\n\"max_step_size_iter\": 30,\n\"max_step_size_iter_final\": 100,\n\"method\": \"RobustArmijo\",\n\"min_step_size\": 1e-10,\n\"min_step_size_final\": 1e-20,\n\"step_ratio\": 0.5,\n\"use_grad_norm_tol\": 1e-06\n},\n\"max_iterations\": 500,\n\"solver\": \"Newton\",\n\"x_delta\": 0\n},\n\"scaling\": 2.0\n},\n\"contact\": {\n\"CCD\": {\n\"broad_phase\": \"hash_grid\",\n\"max_iterations\": 1000000,\n\"tolerance\": 1e-06\n},\n\"barrier_stiffness\": \"adaptive\",\n\"friction_convergence_tol\": 0.01,\n\"friction_iterations\": 1\n},\n\"linear\": {\n\"AMGCL\": {\n\"precond\": {\n\"class\": \"amg\",\n\"coarsening\": {\n\"aggr\": {\n\"eps_strong\": 0\n},\n\"estimate_spectral_radius\": true,\n\"relax\": 1,\n\"type\": \"smoothed_aggregation\"\n},\n\"direct_coarse\": false,\n\"max_levels\": 6,\n\"ncycle\": 2,\n\"relax\": {\n\"degree\": 16,\n\"higher\": 2,\n\"lower\": 0.008333333333,\n\"power_iters\": 100,\n\"scale\": true,\n\"type\": \"chebyshev\"\n}\n},\n\"solver\": {\n\"maxiter\": 1000,\n\"tol\": 1e-10,\n\"type\": \"cg\"\n}\n},\n\"Eigen::BiCGSTAB\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::ConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::DGMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::GMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::LeastSquaresConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Eigen::MINRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-12\n},\n\"Hypre\": {\n\"max_iter\": 1000,\n\"pre_max_iter\": 1,\n\"tolerance\": 1e-10\n},\n\"Pardiso\": {\n\"mtype\": 11\n},\n\"enable_overwrite_solver\": false,\n\"precond\": \"\",\n\"solver\": \"\"\n},\n\"max_threads\": 0,\n\"nonlinear\": {\n\"ADAM\": {\n\"alpha\": 0.001,\n\"beta_1\": 0.9,\n\"beta_2\": 0.999,\n\"epsilon\": 1e-08\n},\n\"L-BFGS\": {\n\"history_size\": 6\n},\n\"L-BFGS-B\": {\n\"history_size\": 6\n},\n\"Newton\": {\n\"force_psd_projection\": false,\n\"reg_weight_inc\": 10,\n\"reg_weight_max\": 100000000.0,\n\"reg_weight_min\": 1e-08,\n\"residual_tolerance\": 1e-05,\n\"use_psd_projection\": true,\n\"use_psd_projection_in_regularized\": true\n},\n\"StochasticADAM\": {\n\"alpha\": 0.001,\n\"beta_1\": 0.9,\n\"beta_2\": 0.999,\n\"epsilon\": 1e-08,\n\"erase_component_probability\": 0.3\n},\n\"StochasticGradientDescent\": {\n\"erase_component_probability\": 0.3\n},\n\"advanced\": {\n\"apply_gradient_fd\": \"None\",\n\"derivative_along_delta_x_tol\": 0,\n\"f_delta\": 0,\n\"f_delta_step_tol\": 100,\n\"gradient_fd_eps\": 1e-07\n},\n\"allow_out_of_iterations\": false,\n\"box_constraints\": {\n\"bounds\": [],\n\"max_change\": -1\n},\n\"first_grad_norm_tol\": 1e-10,\n\"grad_norm\": 1e-08,\n\"iterations_per_strategy\": 5,\n\"line_search\": {\n\"Armijo\": {\n\"c\": 0.0001\n},\n\"RobustArmijo\": {\n\"delta_relative_tolerance\": 0.1\n},\n\"default_init_step_size\": 1,\n\"max_step_size_iter\": 30,\n\"max_step_size_iter_final\": 100,\n\"method\": \"RobustArmijo\",\n\"min_step_size\": 1e-10,\n\"min_step_size_final\": 1e-20,\n\"step_ratio\": 0.5,\n\"use_grad_norm_tol\": 1e-06\n},\n\"max_iterations\": 500,\n\"solver\": \"Newton\",\n\"x_delta\": 0\n},\n\"rayleigh_damping\": []\n},\n\"space\": {\n\"advanced\": {\n\"B\": 3,\n\"bc_method\": \"sample\",\n\"count_flipped_els\": true,\n\"discr_order_max\": 4,\n\"force_no_ref_for_harmonic\": false,\n\"h1_formula\": false,\n\"integral_constraints\": 2,\n\"isoparametric\": false,\n\"mass_quadrature_order\": -1,\n\"n_boundary_samples\": -1,\n\"n_harmonic_samples\": 10,\n\"quadrature_order\": -1,\n\"use_particle_advection\": false\n},\n\"basis_type\": \"Lagrange\",\n\"discr_order\": 1,\n\"poly_basis_type\": \"MFSHarmonic\",\n\"pressure_discr_order\": 1,\n\"remesh\": {\n\"collapse\": {\n\"abs_max_edge_length\": 1e+100,\n\"acceptance_tolerance\": -1e-08,\n\"culling_threshold\": 0.01,\n\"enabled\": true,\n\"max_depth\": 3,\n\"rel_max_edge_length\": 1\n},\n\"enabled\": false,\n\"local_relaxation\": {\n\"local_mesh_n_ring\": 2,\n\"local_mesh_rel_area\": 0.01,\n\"max_nl_iterations\": 1\n},\n\"smooth\": {\n\"acceptance_tolerance\": -1e-08,\n\"enabled\": false,\n\"max_iters\": 1\n},\n\"split\": {\n\"acceptance_tolerance\": 0.001,\n\"culling_threshold\": 0.95,\n\"enabled\": true,\n\"max_depth\": 3,\n\"min_edge_length\": 1e-06\n},\n\"swap\": {\n\"acceptance_tolerance\": -1e-08,\n\"enabled\": false,\n\"max_depth\": 3\n},\n\"type\": \"physics\"\n},\n\"use_p_ref\": false\n},\n\"tests\": {\n\"err_h1\": 0,\n\"err_h1_semi\": 0,\n\"err_l2\": 0,\n\"err_linf\": 0,\n\"err_linf_grad\": 0,\n\"err_lp\": 0,\n\"margin\": 1e-05,\n\"time_steps\": 1\n},\n\"time\": {\n\"dt\": \"REQUIRED!\",\n\"integrator\": {\n\"beta\": 0.25,\n\"gamma\": 0.5,\n\"steps\": 1,\n\"type\": \"REQUIRED!\"\n},\n\"quasistatic\": false,\n\"t0\": 0,\n\"tend\": \"REQUIRED!\",\n\"time_steps\": \"REQUIRED!\"\n},\n\"units\": {\n\"characteristic_length\": 1,\n\"length\": \"m\",\n\"mass\": \"kg\",\n\"time\": \"s\"\n}\n}\n
"},{"location":"json_defaults_and_spec/#full-specification","title":"Full SpecificationDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionOptionalDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionRequiredDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionRequiredDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionOptionalDescriptionOptionalDescriptionDescriptionDescriptionOptionalDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescriptionDescription","text":"The following json contains the full specification of the PolyFEM JSON API.
/
(object
)
/\n
Root of the configuration file. /geometry
(list
) /geometry\n
List of geometry objects. /geometry/*
/geometry/*\n
/geometry/*
(object
)mesh_arrayplanegroundmesh_sequence Each geometry object stores a mesh, a set of transformations applied to it after loading, and a set of selections, which can be used to specify boundary conditions, materials, optimization parameters and other quantities that can be associated with a part of an object.
/geometry/*/mesh
(file
) /geometry/*/mesh\n
Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/type
(string
) /geometry/*/type\n
Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Geometric transformations applied to the geometry after loading it. Default: None
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection\n
/geometry/*/volume_selection
(int
)/geometry/*/volume_selection
(file
)/geometry/*/volume_selection
(object
)/geometry/*/volume_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Offsets the volume IDs loaded from the mesh.
Default: None
/geometry/*/volume_selection/id_offset
(int
) /geometry/*/volume_selection/id_offset\n
Offsets the volume IDs loaded from the mesh. Default: 0
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*\n
/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box
(list
) /geometry/*/volume_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*
(list
) /geometry/*/volume_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*/*
(float
) /geometry/*/volume_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center
(list
) /geometry/*/volume_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center/*
(float
) /geometry/*/volume_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1
(list
) /geometry/*/volume_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1/*
(float
) /geometry/*/volume_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2
(list
) /geometry/*/volume_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2/*
(float
) /geometry/*/volume_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point
(list
) /geometry/*/volume_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point/*
(float
) /geometry/*/volume_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal
(list
) /geometry/*/volume_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal/*
(float
) /geometry/*/volume_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis\n
/geometry/*/volume_selection/*/axis
(int
)/geometry/*/volume_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/volume_selection/*/position
(float
) /geometry/*/volume_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection\n
/geometry/*/surface_selection
(int
)/geometry/*/surface_selection
(file
)/geometry/*/surface_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*\n
/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box
(list
) /geometry/*/surface_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*
(list
) /geometry/*/surface_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*/*
(float
) /geometry/*/surface_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center
(list
) /geometry/*/surface_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center/*
(float
) /geometry/*/surface_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1
(list
) /geometry/*/surface_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1/*
(float
) /geometry/*/surface_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2
(list
) /geometry/*/surface_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2/*
(float
) /geometry/*/surface_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point
(list
) /geometry/*/surface_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point/*
(float
) /geometry/*/surface_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal
(list
) /geometry/*/surface_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal/*
(float
) /geometry/*/surface_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis\n
/geometry/*/surface_selection/*/axis
(int
)/geometry/*/surface_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/surface_selection/*/position
(float
) /geometry/*/surface_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
/geometry/*/surface_selection/*/threshold
(float
) /geometry/*/surface_selection/*/threshold\n
Threshold for box side selection. /geometry/*/surface_selection/*/id_offset
(int
) /geometry/*/surface_selection/*/id_offset\n
ID offset of box side selection. Default: 0
/geometry/*/curve_selection
(object
) /geometry/*/curve_selection\n
Selection of curves Default: None
/geometry/*/point_selection
/geometry/*/point_selection\n
/geometry/*/point_selection
(int
)/geometry/*/point_selection
(file
)/geometry/*/point_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/point_selection/*
/geometry/*/point_selection/*\n
/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box
(list
) /geometry/*/point_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*
(list
) /geometry/*/point_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*/*
(float
) /geometry/*/point_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center
(list
) /geometry/*/point_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center/*
(float
) /geometry/*/point_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1
(list
) /geometry/*/point_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1/*
(float
) /geometry/*/point_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2
(list
) /geometry/*/point_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2/*
(float
) /geometry/*/point_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point
(list
) /geometry/*/point_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point/*
(float
) /geometry/*/point_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal
(list
) /geometry/*/point_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal/*
(float
) /geometry/*/point_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis\n
/geometry/*/point_selection/*/axis
(int
)/geometry/*/point_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/point_selection/*/position
(float
) /geometry/*/point_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
/geometry/*/point_selection/*/threshold
(float
) /geometry/*/point_selection/*/threshold\n
Threshold for box side selection. /geometry/*/point_selection/*/id_offset
(int
) /geometry/*/point_selection/*/id_offset\n
ID offset of box side selection. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Advanced options for geometry Default: None
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: mesh_array Each geometry object stores a mesh, a set of transformations applied to it after loading, and a set of selections, which can be used to specify boundary conditions, materials, optimization parameters and other quantities that can be associated with a part of an object.
/geometry/*/mesh
(file
) /geometry/*/mesh\n
Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/array
(object
) /geometry/*/array\n
Array of meshes /geometry/*/array/offset
(float
) /geometry/*/array/offset\n
Offset of the mesh in the array. /geometry/*/array/size
(list
) /geometry/*/array/size\n
Size of the array (two entries for 2D problems or three entries for 3D problems). /geometry/*/array/size/*
(int
) /geometry/*/array/size/*\n
Size of the array (two entries for 2D problems or three entries for 3D problems). Range: [1, inf]
/geometry/*/array/relative
(bool
) /geometry/*/array/relative\n
Is the offset value relative to the mesh\u2019s dimensions. Default: False
/geometry/*/type
(string
) /geometry/*/type\n
Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Geometric transformations applied to the geometry after loading it. Default: None
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection
/geometry/*/volume_selection\n
/geometry/*/volume_selection
(int
)/geometry/*/volume_selection
(file
)/geometry/*/volume_selection
(object
)/geometry/*/volume_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
Offsets the volume IDs loaded from the mesh.
Default: None
/geometry/*/volume_selection/id_offset
(int
) /geometry/*/volume_selection/id_offset\n
Offsets the volume IDs loaded from the mesh. Default: 0
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/volume_selection/*
/geometry/*/volume_selection/*\n
/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
)/geometry/*/volume_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box
(list
) /geometry/*/volume_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*
(list
) /geometry/*/volume_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/box/*/*
(float
) /geometry/*/volume_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center
(list
) /geometry/*/volume_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/center/*
(float
) /geometry/*/volume_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/radius
(float
) /geometry/*/volume_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1
(list
) /geometry/*/volume_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p1/*
(float
) /geometry/*/volume_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2
(list
) /geometry/*/volume_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/p2/*
(float
) /geometry/*/volume_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point
(list
) /geometry/*/volume_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/point/*
(float
) /geometry/*/volume_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal
(list
) /geometry/*/volume_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/normal/*
(float
) /geometry/*/volume_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/volume_selection/*/id
(int
) /geometry/*/volume_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/axis
/geometry/*/volume_selection/*/axis\n
/geometry/*/volume_selection/*/axis
(int
)/geometry/*/volume_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/volume_selection/*/position
(float
) /geometry/*/volume_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/volume_selection/*/relative
(bool
) /geometry/*/volume_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
/geometry/*/surface_selection
/geometry/*/surface_selection\n
/geometry/*/surface_selection
(int
)/geometry/*/surface_selection
(file
)/geometry/*/surface_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/surface_selection/*
/geometry/*/surface_selection/*\n
/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
)/geometry/*/surface_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box
(list
) /geometry/*/surface_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*
(list
) /geometry/*/surface_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/box/*/*
(float
) /geometry/*/surface_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center
(list
) /geometry/*/surface_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/center/*
(float
) /geometry/*/surface_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/radius
(float
) /geometry/*/surface_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1
(list
) /geometry/*/surface_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p1/*
(float
) /geometry/*/surface_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2
(list
) /geometry/*/surface_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/p2/*
(float
) /geometry/*/surface_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point
(list
) /geometry/*/surface_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/point/*
(float
) /geometry/*/surface_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal
(list
) /geometry/*/surface_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/normal/*
(float
) /geometry/*/surface_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/surface_selection/*/id
(int
) /geometry/*/surface_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/axis
/geometry/*/surface_selection/*/axis\n
/geometry/*/surface_selection/*/axis
(int
)/geometry/*/surface_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/surface_selection/*/position
(float
) /geometry/*/surface_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/surface_selection/*/relative
(bool
) /geometry/*/surface_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
/geometry/*/surface_selection/*/threshold
(float
) /geometry/*/surface_selection/*/threshold\n
Threshold for box side selection. /geometry/*/surface_selection/*/id_offset
(int
) /geometry/*/surface_selection/*/id_offset\n
ID offset of box side selection. Default: 0
/geometry/*/curve_selection
(object
) /geometry/*/curve_selection\n
Selection of curves Default: None
/geometry/*/point_selection
/geometry/*/point_selection\n
/geometry/*/point_selection
(int
)/geometry/*/point_selection
(file
)/geometry/*/point_selection
(list
) Assign specified ID to all elements of the geometry.
Load ids from a file; the file is required to have one ID per element of the geometry
Extensions: ['.txt']
List of selection (ID assignment) operations to apply to the geometry; operations can be box, sphere, etc.
/geometry/*/point_selection/*
/geometry/*/point_selection/*\n
/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
)/geometry/*/point_selection/*
(object
) Assign the ID to all elements with barycenters inside an axis-aligned box given by the list of its 2 corners, one with min, the other with max coordinates along all axes. If relative option is set to true, the coordinates of the box corners are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box
(list
) /geometry/*/point_selection/*/box\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*
(list
) /geometry/*/point_selection/*/box/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/box/*/*
(float
) /geometry/*/point_selection/*/box/*/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a sphere with specified center and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center
(list
) /geometry/*/point_selection/*/center\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/center/*
(float
) /geometry/*/point_selection/*/center/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters inside a cylinder with specified axis (p1, p2) and radius. If relative option is set to true, the coordinates of the center are specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry, and the radius is specified relative to the bounding box diagonal length.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/radius
(float
) /geometry/*/point_selection/*/radius\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1
(list
) /geometry/*/point_selection/*/p1\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p1/*
(float
) /geometry/*/point_selection/*/p1/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2
(list
) /geometry/*/point_selection/*/p2\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/p2/*
(float
) /geometry/*/point_selection/*/p2/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assign the ID to all elements with barycenters in a halfspace. The halfspace boundary plane is defined by a point in the plane and the normal, which points to the halfspace. The option relative set to true indicates that the point position is specified in bilinear/trilinear coordinates with respect to the bounding box of the geometry.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point
(list
) /geometry/*/point_selection/*/point\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/point/*
(float
) /geometry/*/point_selection/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal
(list
) /geometry/*/point_selection/*/normal\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/normal/*
(float
) /geometry/*/point_selection/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Same as halfspace, but the boundary plane is axis-aligned. The choice of axis is specified either by a string matching the regexp r\u201d[+-][xyzXYZ]\u201d or an int matching the regular expression [+-]?[123] where the sign is the side of the plane to select and letter or number indicates the axis to which the plane is perpendicular. The offset is the plane offset from the origin. If the relative option is set to true, the offset is with respect to the center of the bounding box.
Default: None
/geometry/*/point_selection/*/id
(int
) /geometry/*/point_selection/*/id\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/axis
/geometry/*/point_selection/*/axis\n
/geometry/*/point_selection/*/axis
(int
)/geometry/*/point_selection/*/axis
(string
) FIXME: Missing documentation in the specification.
FIXME: Missing documentation in the specification.
/geometry/*/point_selection/*/position
(float
) /geometry/*/point_selection/*/position\n
FIXME: Missing documentation in the specification. /geometry/*/point_selection/*/relative
(bool
) /geometry/*/point_selection/*/relative\n
FIXME: Missing documentation in the specification. Default: False
Assigns ids to sides touching the bbox of the model using a threshold. Assigns 1+offset to left, 2+offset to bottom, 3+offset to right, 4+offset to top, 5+offset to front, 6+offset to back, 7+offset to everything else.
Default: None
/geometry/*/point_selection/*/threshold
(float
) /geometry/*/point_selection/*/threshold\n
Threshold for box side selection. /geometry/*/point_selection/*/id_offset
(int
) /geometry/*/point_selection/*/id_offset\n
ID offset of box side selection. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Advanced options for geometry Default: None
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: plane Plane geometry object defined by its origin and normal.
/geometry/*/point
(list
) /geometry/*/point\n
Point on plane (two entries for 2D problems or three entries for 3D problems). /geometry/*/point/*
(float
) /geometry/*/point/*\n
FIXME: Missing documentation in the specification. /geometry/*/normal
(list
) /geometry/*/normal\n
Normal of plane (two entries for 2D problems or three entries for 3D problems). /geometry/*/normal/*
(float
) /geometry/*/normal/*\n
FIXME: Missing documentation in the specification. /geometry/*/type
(string
) /geometry/*/type\n
Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: ground Plane orthogonal to gravity defined by its height.
/geometry/*/height
(float
) /geometry/*/height\n
Height of ground plane. /geometry/*/type
(string
) /geometry/*/type\n
Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
The geometry elements are not included in deforming geometry, only in collision computations Default: False
Type: mesh_sequence Mesh sequence.
/geometry/*/mesh_sequence
/geometry/*/mesh_sequence\n
/geometry/*/mesh_sequence
(string
)/geometry/*/mesh_sequence
(list
) Directory (or GLOB) of meshes for the mesh sequence.
List of mesh files for the mesh sequence.
/geometry/*/mesh_sequence/*
(file
) /geometry/*/mesh_sequence/*\n
Path of the mesh file to load. Extensions: ['.obj', '.msh', '.stl', '.ply', '.mesh']
/geometry/*/fps
(int
) /geometry/*/fps\n
Frames of the mesh sequence per second. /geometry/*/type
(string
) /geometry/*/type\n
Type of geometry, currently only one supported. In future we will add stuff like planes, spheres, etc. Default: 'mesh'
Options: ['mesh', 'plane', 'ground', 'mesh_sequence', 'mesh_array']
/geometry/*/extract
(string
) /geometry/*/extract\n
Used to extract stuff from the mesh. Eg extract surface extracts the surface from a tet mesh. Default: 'volume'
Options: ['volume', 'edges', 'points', 'surface']
/geometry/*/unit
(string
) /geometry/*/unit\n
Units of the geometric model. Default: ''
/geometry/*/transformation
(object
) /geometry/*/transformation\n
Geometric transformations applied to the geometry after loading it. Default: None
/geometry/*/transformation/translation
(list
) /geometry/*/transformation/translation\n
Translate (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/translation/*
(float
) /geometry/*/transformation/translation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation
(list
) /geometry/*/transformation/rotation\n
Rotate, in 2D, one number, the rotation angle, in 3D, three or four Euler angles, axis+angle, or a unit quaternion. Depends on rotation mode. /geometry/*/transformation/rotation/*
(float
) /geometry/*/transformation/rotation/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/rotation_mode
(string
) /geometry/*/transformation/rotation_mode\n
Type of rotation, supported are any permutation of [xyz]+, axis_angle, quaternion, or rotation_vector. Default: 'xyz'
/geometry/*/transformation/scale
(list
) /geometry/*/transformation/scale\n
Scale by specified factors along axes (two entries for 2D problems or three entries for 3D problems). /geometry/*/transformation/scale/*
(float
) /geometry/*/transformation/scale/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/transformation/dimensions
/geometry/*/transformation/dimensions\n
/geometry/*/transformation/dimensions
(float
)/geometry/*/transformation/dimensions
(list
) Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
Default: 1
Scale the object so that bounding box dimensions match specified dimensions, 2 entries for 2D problems, 3 entries for 3D problems.
/geometry/*/transformation/dimensions/*
(float
) /geometry/*/transformation/dimensions/*\n
FIXME: Missing documentation in the specification. Default: 0
/geometry/*/n_refs
(int
) /geometry/*/n_refs\n
number of uniform refinements Default: 0
/geometry/*/advanced
(object
) /geometry/*/advanced\n
Advanced options for geometry Default: None
/geometry/*/advanced/normalize_mesh
(bool
) /geometry/*/advanced/normalize_mesh\n
Rescale the mesh to it fits in the biunit cube Default: False
/geometry/*/advanced/force_linear_geometry
(bool
) /geometry/*/advanced/force_linear_geometry\n
Discard high-order nodes for curved geometries Default: False
/geometry/*/advanced/refinement_location
(float
) /geometry/*/advanced/refinement_location\n
parametric location of the refinement Default: 0.5
/geometry/*/advanced/min_component
(int
) /geometry/*/advanced/min_component\n
Size of the minumum component for collision Default: -1
/geometry/*/enabled
(bool
) /geometry/*/enabled\n
Skips the geometry if false Default: True
/geometry/*/is_obstacle
(bool
) /geometry/*/is_obstacle\n
The geometry elements are not included in deforming geometry, only in collision computations Default: False
/materials
(list
) /materials\n
Material Parameters lists including ID pointing to volume selection, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), Density (\\(\\rho\\)), or Lam\u00e9 constants (\\(\\lambda\\) and \\(\\mu\\)). /materials/*
/materials/*\n
NeoHookeanNeoHookeanMooneyRivlinMooneyRivlin3ParamMooneyRivlin3ParamSymbolicUnconstrainedOgdenIncompressibleOgdenLinearElasticityLinearElasticityHookeLinearElasticityHookeLinearElasticitySaintVenantSaintVenantStokesNavierStokesOperatorSplittingIncompressibleLinearElasticityIncompressibleLinearElasticityLaplacianHelmholtzBilaplacianAMIPSFixedCorotationalFixedCorotational Type: NeoHookean Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: NeoHookean Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: MooneyRivlin Material Parameters including ID, for Mooney-Rivlin
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
The unit of the Value /materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: MooneyRivlin3Param Material Parameters including ID, for Mooney-Rivlin
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
The unit of the Value /materials/*/c3
/materials/*/c3\n
/materials/*/c3
(float
)/materials/*/c3
(string
)/materials/*/c3
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c3/value
/materials/*/c3/value\n
/materials/*/c3/value
(float
)/materials/*/c3/value
(string
)/materials/*/c3/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c3/unit
(string
) /materials/*/c3/unit\n
The unit of the Value /materials/*/d1
/materials/*/d1\n
/materials/*/d1
(float
)/materials/*/d1
(string
)/materials/*/d1
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/d1/value
/materials/*/d1/value\n
/materials/*/d1/value
(float
)/materials/*/d1/value
(string
)/materials/*/d1/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/d1/unit
(string
) /materials/*/d1/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: MooneyRivlin3ParamSymbolic Material Parameters including ID, for Mooney-Rivlin
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c1
/materials/*/c1\n
/materials/*/c1
(float
)/materials/*/c1
(string
)/materials/*/c1
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c1/value
/materials/*/c1/value\n
/materials/*/c1/value
(float
)/materials/*/c1/value
(string
)/materials/*/c1/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c1/unit
(string
) /materials/*/c1/unit\n
The unit of the Value /materials/*/c2
/materials/*/c2\n
/materials/*/c2
(float
)/materials/*/c2
(string
)/materials/*/c2
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c2/value
/materials/*/c2/value\n
/materials/*/c2/value
(float
)/materials/*/c2/value
(string
)/materials/*/c2/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c2/unit
(string
) /materials/*/c2/unit\n
The unit of the Value /materials/*/c3
/materials/*/c3\n
/materials/*/c3
(float
)/materials/*/c3
(string
)/materials/*/c3
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c3/value
/materials/*/c3/value\n
/materials/*/c3/value
(float
)/materials/*/c3/value
(string
)/materials/*/c3/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c3/unit
(string
) /materials/*/c3/unit\n
The unit of the Value /materials/*/d1
/materials/*/d1\n
/materials/*/d1
(float
)/materials/*/d1
(string
)/materials/*/d1
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/d1/value
/materials/*/d1/value\n
/materials/*/d1/value
(float
)/materials/*/d1/value
(string
)/materials/*/d1/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/d1/unit
(string
) /materials/*/d1/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: UnconstrainedOgden Material Parameters including ID, for Ogden.
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/alphas
/materials/*/alphas\n
/materials/*/alphas
(float
)/materials/*/alphas
(string
)/materials/*/alphas
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/alphas/value
/materials/*/alphas/value\n
/materials/*/alphas/value
(float
)/materials/*/alphas/value
(string
)/materials/*/alphas/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/alphas/unit
(string
) /materials/*/alphas/unit\n
The unit of the Value /materials/*/mus
(list
) /materials/*/mus\n
Ogden mu /materials/*/mus/*
/materials/*/mus/*\n
/materials/*/mus/*
(float
)/materials/*/mus/*
(string
)/materials/*/mus/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/mus/*/value
/materials/*/mus/*/value\n
/materials/*/mus/*/value
(float
)/materials/*/mus/*/value
(string
)/materials/*/mus/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/mus/*/unit
(string
) /materials/*/mus/*/unit\n
The unit of the Value /materials/*/Ds
(list
) /materials/*/Ds\n
Ogden D /materials/*/Ds/*
/materials/*/Ds/*\n
/materials/*/Ds/*
(float
)/materials/*/Ds/*
(string
)/materials/*/Ds/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/Ds/*/value
/materials/*/Ds/*/value\n
/materials/*/Ds/*/value
(float
)/materials/*/Ds/*/value
(string
)/materials/*/Ds/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/Ds/*/unit
(string
) /materials/*/Ds/*/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: IncompressibleOgden Material Parameters including ID, for Ogden.
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/c
/materials/*/c\n
/materials/*/c
(float
)/materials/*/c
(string
)/materials/*/c
(object
)/materials/*/c
(list
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c/value
/materials/*/c/value\n
/materials/*/c/value
(float
)/materials/*/c/value
(string
)/materials/*/c/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c/unit
(string
) /materials/*/c/unit\n
The unit of the Value Coefficient(s) of Incompressible Ogden
/materials/*/c/*
/materials/*/c/*\n
/materials/*/c/*
(float
)/materials/*/c/*
(string
)/materials/*/c/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/c/*/value
/materials/*/c/*/value\n
/materials/*/c/*/value
(float
)/materials/*/c/*/value
(string
)/materials/*/c/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/c/*/unit
(string
) /materials/*/c/*/unit\n
The unit of the Value /materials/*/m
/materials/*/m\n
/materials/*/m
(float
)/materials/*/m
(string
)/materials/*/m
(object
)/materials/*/m
(list
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/m/value
/materials/*/m/value\n
/materials/*/m/value
(float
)/materials/*/m/value
(string
)/materials/*/m/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/m/unit
(string
) /materials/*/m/unit\n
The unit of the Value Exponent(s) of Incompressible Ogden
/materials/*/m/*
/materials/*/m/*\n
/materials/*/m/*
(float
)/materials/*/m/*
(string
)/materials/*/m/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/m/*/value
/materials/*/m/*/value\n
/materials/*/m/*/value
(float
)/materials/*/m/*/value
(string
)/materials/*/m/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/m/*/unit
(string
) /materials/*/m/*/unit\n
The unit of the Value /materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: LinearElasticity Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: LinearElasticity Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: HookeLinearElasticity Material Parameters including ID, E, nu, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: HookeLinearElasticity Material Parameters including ID, E, nu, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
) /materials/*/elasticity_tensor\n
Symmetric elasticity tensor /materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*\n
/materials/*/elasticity_tensor/*
(float
)/materials/*/elasticity_tensor/*
(string
)/materials/*/elasticity_tensor/*
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value\n
/materials/*/elasticity_tensor/*/value
(float
)/materials/*/elasticity_tensor/*/value
(string
)/materials/*/elasticity_tensor/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/elasticity_tensor/*/unit
(string
) /materials/*/elasticity_tensor/*/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: SaintVenant Material Parameters including ID, E, nu, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: SaintVenant Material Parameters including ID, E, nu, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/elasticity_tensor
(list
) /materials/*/elasticity_tensor\n
Symmetric elasticity tensor /materials/*/elasticity_tensor/*
/materials/*/elasticity_tensor/*\n
/materials/*/elasticity_tensor/*
(float
)/materials/*/elasticity_tensor/*
(string
)/materials/*/elasticity_tensor/*
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/elasticity_tensor/*/value
/materials/*/elasticity_tensor/*/value\n
/materials/*/elasticity_tensor/*/value
(float
)/materials/*/elasticity_tensor/*/value
(string
)/materials/*/elasticity_tensor/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/elasticity_tensor/*/unit
(string
) /materials/*/elasticity_tensor/*/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: Stokes Material Parameters including ID, viscosity, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: NavierStokes Material Parameters including ID, viscosity, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: OperatorSplitting Material Parameters including ID, viscosity, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/viscosity
/materials/*/viscosity\n
/materials/*/viscosity
(float
)/materials/*/viscosity
(string
)/materials/*/viscosity
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/viscosity/value
/materials/*/viscosity/value\n
/materials/*/viscosity/value
(float
)/materials/*/viscosity/value
(string
)/materials/*/viscosity/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/viscosity/unit
(string
) /materials/*/viscosity/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: IncompressibleLinearElasticity Material Parameters including ID, Young\u2019s modulus (\\(E\\)), Poisson\u2019s ratio (\\(\\nu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: IncompressibleLinearElasticity Material Parameters including ID, Lam\u00e9 first (\\(\\lambda\\)), Lam\u00e9 second (\\(\\mu\\)), density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: Laplacian Material Parameters including ID, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: Helmholtz Material Parameters including ID, k, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/k
/materials/*/k\n
/materials/*/k
(float
)/materials/*/k
(string
)/materials/*/k
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/k/value
/materials/*/k/value\n
/materials/*/k/value
(float
)/materials/*/k/value
(string
)/materials/*/k/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/k/unit
(string
) /materials/*/k/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: Bilaplacian Material Parameters including ID, density (\\(\\rho\\))
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value Type: AMIPS Material Parameters including ID
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID Type: FixedCorotational Material Parameters including ID
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/E
/materials/*/E\n
/materials/*/E
(float
)/materials/*/E
(string
)/materials/*/E
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/E/value
/materials/*/E/value\n
/materials/*/E/value
(float
)/materials/*/E/value
(string
)/materials/*/E/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/E/unit
(string
) /materials/*/E/unit\n
The unit of the Value /materials/*/nu
/materials/*/nu\n
/materials/*/nu
(float
)/materials/*/nu
(string
)/materials/*/nu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/nu/value
/materials/*/nu/value\n
/materials/*/nu/value
(float
)/materials/*/nu/value
(string
)/materials/*/nu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/nu/unit
(string
) /materials/*/nu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value Type: FixedCorotational Material Parameters including ID
/materials/*/type
(string
) /materials/*/type\n
Type of material Options: ['LinearElasticity', 'HookeLinearElasticity', 'SaintVenant', 'NeoHookean', 'MooneyRivlin', 'MooneyRivlin3Param', 'MooneyRivlin3ParamSymbolic', 'UnconstrainedOgden', 'IncompressibleOgden', 'Stokes', 'NavierStokes', 'OperatorSplitting', 'IncompressibleLinearElasticity', 'Laplacian', 'Helmholtz', 'Bilaplacian', 'AMIPS', 'FixedCorotational']
/materials/*/lambda
/materials/*/lambda\n
/materials/*/lambda
(float
)/materials/*/lambda
(string
)/materials/*/lambda
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/lambda/value
/materials/*/lambda/value\n
/materials/*/lambda/value
(float
)/materials/*/lambda/value
(string
)/materials/*/lambda/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/lambda/unit
(string
) /materials/*/lambda/unit\n
The unit of the Value /materials/*/mu
/materials/*/mu\n
/materials/*/mu
(float
)/materials/*/mu
(string
)/materials/*/mu
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/mu/value
/materials/*/mu/value\n
/materials/*/mu/value
(float
)/materials/*/mu/value
(string
)/materials/*/mu/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/mu/unit
(string
) /materials/*/mu/unit\n
The unit of the Value /materials/*/id
/materials/*/id\n
/materials/*/id
(int
)/materials/*/id
(list
) Volume selection ID
Default: 0
Volume selection IDs
/materials/*/id/*
(int
) /materials/*/id/*\n
Volume selection ID /materials/*/rho
/materials/*/rho\n
/materials/*/rho
(float
)/materials/*/rho
(string
)/materials/*/rho
(object
) Value as a constant float
Default: 1
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/rho/value
/materials/*/rho/value\n
/materials/*/rho/value
(float
)/materials/*/rho/value
(string
)/materials/*/rho/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/rho/unit
(string
) /materials/*/rho/unit\n
The unit of the Value /materials/*/phi
/materials/*/phi\n
/materials/*/phi
(float
)/materials/*/phi
(string
)/materials/*/phi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/phi/value
/materials/*/phi/value\n
/materials/*/phi/value
(float
)/materials/*/phi/value
(string
)/materials/*/phi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/phi/unit
(string
) /materials/*/phi/unit\n
The unit of the Value /materials/*/psi
/materials/*/psi\n
/materials/*/psi
(float
)/materials/*/psi
(string
)/materials/*/psi
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/materials/*/psi/value
/materials/*/psi/value\n
/materials/*/psi/value
(float
)/materials/*/psi/value
(string
)/materials/*/psi/value
(file
) The value of the constant
The value as an expression
The value as a file
/materials/*/psi/unit
(string
) /materials/*/psi/unit\n
The unit of the Value /units
(object
) /units\n
Basic units used in the code. Default: None
/units/length
(string
) /units/length\n
Length unit. Default: 'm'
/units/mass
(string
) /units/mass\n
Mass unit. Default: 'kg'
/units/time
(string
) /units/time\n
Time unit. Default: 's'
/units/characteristic_length
(float
) /units/characteristic_length\n
Characteristic length, used for tolerances. Default: 1
/preset_problem
/preset_problem\n
LinearQuadraticCubicSineFrankeFrankeOldGenericScalarExactZero_BCElasticWalkTorsionElasticDoubleTorsionElasticElasticZeroBCElasticExactElasticCantileverExactCompressionElasticExactQuadraticElasticExactLinearElasticExactPointBasedTensorKernelNodeTimeDependentScalarMinSurfGravityConstantVelocityTwoSpheresDrivenCavityDrivenCavityC0DrivenCavitySmoothFlowFlowWithObstacleCornerFlowUnitFlowWithObstacleStokesLawTaylorGreenVortexSimpleStokeProblemExactSineStokeProblemExactTransientStokeProblemExactKovnaszyAirfoilLshapeTestProblemBilaplacianProblemWithSolution Type: Linear TODO
Default: 'skip'
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Quadratic TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Cubic TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Sine TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Franke TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FrankeOld TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: GenericScalarExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
) /preset_problem/func\n
TODO Default: 0
Type: Zero_BC TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Elastic TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Walk TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TorsionElastic TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante
(int
) /preset_problem/axis_coordiante\n
TODO Default: 2
/preset_problem/n_turns
(float
) /preset_problem/n_turns\n
TODO Default: 0.5
/preset_problem/fixed_boundary
(int
) /preset_problem/fixed_boundary\n
TODO Default: 5
/preset_problem/turning_boundary
(int
) /preset_problem/turning_boundary\n
TODO Default: 6
/preset_problem/bbox_center
(list
) /preset_problem/bbox_center\n
TODO /preset_problem/bbox_center/*
(float
) /preset_problem/bbox_center/*\n
TODO Default: 0
Type: DoubleTorsionElastic TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/axis_coordiante0
(int
) /preset_problem/axis_coordiante0\n
TODO Default: 2
/preset_problem/axis_coordiante1
(int
) /preset_problem/axis_coordiante1\n
TODO Default: 2
/preset_problem/angular_v0
(float
) /preset_problem/angular_v0\n
TODO Default: 0.5
/preset_problem/angular_v1
(float
) /preset_problem/angular_v1\n
TODO Default: -0.5
/preset_problem/turning_boundary0
(int
) /preset_problem/turning_boundary0\n
TODO Default: 5
/preset_problem/turning_boundary1
(int
) /preset_problem/turning_boundary1\n
TODO Default: 6
/preset_problem/bbox_center
(list
) /preset_problem/bbox_center\n
TODO /preset_problem/bbox_center/*
(float
) /preset_problem/bbox_center/*\n
TODO Default: 0
Type: ElasticZeroBC TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ElasticCantileverExact TODO, add displacement, E, nu, formulation, mesh_size
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CompressionElasticExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: QuadraticElasticExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: LinearElasticExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: PointBasedTensor TODO, add optionals
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Kernel TODO, add optionals
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/formulation
(string
) /preset_problem/formulation\n
TODO Default: ''
/preset_problem/n_kernels
(int
) /preset_problem/n_kernels\n
TODO Default: 0
/preset_problem/kernel_distance
(float
) /preset_problem/kernel_distance\n
TODO Default: 0
/preset_problem/kernel_weights
(string
) /preset_problem/kernel_weights\n
TODO Default: ''
Type: Node TODO, add optionals
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TimeDependentScalar TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: MinSurf TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Gravity TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: ConstantVelocity TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TwoSpheres TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavity TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavityC0 TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: DrivenCavitySmooth TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Flow TODO, add inflow, outflow, inflow_amout, outflow_amout, direction, obstacle
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: FlowWithObstacle TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: CornerFlow TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: UnitFlowWithObstacle TODO, add inflow_id, direction, no_slip
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: StokesLaw TODO, add radius
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
TODO Default: 1
Type: TaylorGreenVortex TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
TODO Default: 1
Type: SimpleStokeProblemExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
) /preset_problem/func\n
TODO Default: 0
Type: SineStokeProblemExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TransientStokeProblemExact TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/func
(int
) /preset_problem/func\n
TODO Default: 0
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
TODO Default: 1
Type: Kovnaszy TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/preset_problem/viscosity
(float
) /preset_problem/viscosity\n
TODO Default: 1
Type: Airfoil TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: Lshape TODO
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: TestProblem TODO, type, omega, is_scalar
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
Type: BilaplacianProblemWithSolution TODO, type, omega, is_scalar
/preset_problem/type
(string
) /preset_problem/type\n
Type of preset problem to use. Options: ['Linear', 'Quadratic', 'Cubic', 'Sine', 'Franke', 'FrankeOld', 'GenericScalarExact', 'Zero_BC', 'Elastic', 'Walk', 'TorsionElastic', 'DoubleTorsionElastic', 'ElasticZeroBC', 'ElasticExact', 'ElasticCantileverExact', 'CompressionElasticExact', 'QuadraticElasticExact', 'LinearElasticExact', 'PointBasedTensor', 'Kernel', 'Node', 'TimeDependentScalar', 'MinSurf', 'Gravity', 'ConstantVelocity', 'TwoSpheres', 'DrivenCavity', 'DrivenCavityC0', 'DrivenCavitySmooth', 'Flow', 'FlowWithObstacle', 'CornerFlow', 'UnitFlowWithObstacle', 'StokesLaw', 'TaylorGreenVortex', 'SimpleStokeProblemExact', 'SineStokeProblemExact', 'TransientStokeProblemExact', 'Kovnaszy', 'Airfoil', 'Lshape', 'TestProblem', 'BilaplacianProblemWithSolution']
/common
(file
) /common\n
Path to common settings will patch the current file. Default: ''
Extensions: ['.json']
/root_path
(string
) /root_path\n
Path for all relative paths, set automatically to the folder containing this JSON. Default: ''
/space
(object
) /space\n
Options related to the FE space. Default: None
/space/discr_order
/space/discr_order\n
/space/discr_order
(int
)/space/discr_order
(file
)/space/discr_order
(list
) Lagrange element order for the space for the main unknown, for all elements.
Default: 1
Path to file containing Lagrange element order for the space for the main unknown per element.
Extensions: ['.txt', '.bin']
List of Lagrange element order for the space for the main unknown with volume IDs.
/space/discr_order/*
(object
) /space/discr_order/*\n
Lagrange element order for the a space tagged with volume ID for the main unknown. /space/discr_order/*/id
/space/discr_order/*/id\n
/space/discr_order/*/id
(int
)/space/discr_order/*/id
(list
) Volume selection ID to apply the discr_order to.
List of volume selection IDs to apply the discr_order to.
/space/discr_order/*/id/*
(int
) /space/discr_order/*/id/*\n
Volume selection ID to apply the discr_order to. /space/discr_order/*/order
(int
) /space/discr_order/*/order\n
Lagrange element order for the space for the main unknown, for all elements. /space/pressure_discr_order
(int
) /space/pressure_discr_order\n
Lagrange element order for the space for the pressure unknown, for all elements. Default: 1
/space/basis_type
(string
) /space/basis_type\n
Type of basis to use for non polygonal element, one of Lagrange, Spline, or Serendipity. Spline or Serendipity work only for quad/hex meshes Default: 'Lagrange'
Options: ['Lagrange', 'Spline', 'Serendipity']
/space/poly_basis_type
(string
) /space/poly_basis_type\n
Type of basis to use for a polygonal element, one of MFSHarmonic, MeanValue, or Wachspress see \u2018PolySpline..\u2019 paper for details. Default: 'MFSHarmonic'
Options: ['MFSHarmonic', 'MeanValue', 'Wachspress']
/space/use_p_ref
(bool
) /space/use_p_ref\n
Perform a priori p-refinement based on element shape, as described in \u2018Decoupling..\u2019 paper. Default: False
/space/remesh
(object
) /space/remesh\n
Settings for adaptive remeshing Default: None
/space/remesh/enabled
(bool
) /space/remesh/enabled\n
Whether to do adaptive remeshing Default: False
/space/remesh/split
(object
) /space/remesh/split\n
Settings for adaptive remeshing edge splitting operations Default: None
/space/remesh/split/enabled
(bool
) /space/remesh/split/enabled\n
Whether to do edge splitting in adaptive remeshing Default: True
/space/remesh/split/acceptance_tolerance
(float
) /space/remesh/split/acceptance_tolerance\n
Accept split operation if energy decreased by at least x Default: 0.001
Range: [0, inf]
/space/remesh/split/culling_threshold
(float
) /space/remesh/split/culling_threshold\n
Split operation culling threshold on energy Default: 0.95
Range: [0, 1]
/space/remesh/split/max_depth
(int
) /space/remesh/split/max_depth\n
Maximum depth split per time-step Default: 3
Range: [1, inf]
/space/remesh/split/min_edge_length
(float
) /space/remesh/split/min_edge_length\n
Minimum edge length to split Default: 1e-06
Range: [0, inf]
/space/remesh/collapse
(object
) /space/remesh/collapse\n
Settings for adaptive remeshing edge collapse operations Default: None
/space/remesh/collapse/enabled
(bool
) /space/remesh/collapse/enabled\n
Whether to do edge collapse in adaptive remeshing Default: True
/space/remesh/collapse/acceptance_tolerance
(float
) /space/remesh/collapse/acceptance_tolerance\n
Accept collapse operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/collapse/culling_threshold
(float
) /space/remesh/collapse/culling_threshold\n
Collapse operation culling threshold on energy Default: 0.01
Range: [0, 1]
/space/remesh/collapse/max_depth
(int
) /space/remesh/collapse/max_depth\n
Maximum depth collapse per time-step Default: 3
Range: [1, inf]
/space/remesh/collapse/rel_max_edge_length
(float
) /space/remesh/collapse/rel_max_edge_length\n
Length of maximum edge length to collapse relative to initial minimum edge length Default: 1
Range: [0, inf]
/space/remesh/collapse/abs_max_edge_length
(float
) /space/remesh/collapse/abs_max_edge_length\n
Length of maximum edge length to collapse in absolute units of distance Default: 1e+100
Range: [0, inf]
/space/remesh/swap
(object
) /space/remesh/swap\n
Settings for adaptive remeshing edge/face swap operations Default: None
/space/remesh/swap/enabled
(bool
) /space/remesh/swap/enabled\n
Whether to do edge/face swap in adaptive remeshing Default: False
/space/remesh/swap/acceptance_tolerance
(float
) /space/remesh/swap/acceptance_tolerance\n
Accept swap operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/swap/max_depth
(int
) /space/remesh/swap/max_depth\n
Maximum depth swap per time-step Default: 3
Range: [1, inf]
/space/remesh/smooth
(object
) /space/remesh/smooth\n
Settings for adaptive remeshing vertex smoothing operations Default: None
/space/remesh/smooth/enabled
(bool
) /space/remesh/smooth/enabled\n
Whether to do vertex smoothing in adaptive remeshing Default: False
/space/remesh/smooth/acceptance_tolerance
(float
) /space/remesh/smooth/acceptance_tolerance\n
Accept smooth operation if energy decreased by at least x Default: -1e-08
Range: [-inf, 0]
/space/remesh/smooth/max_iters
(int
) /space/remesh/smooth/max_iters\n
Maximum number of smoothing iterations per time-step Default: 1
Range: [1, inf]
/space/remesh/local_relaxation
(object
) /space/remesh/local_relaxation\n
Settings for adaptive remeshing local relaxation Default: None
/space/remesh/local_relaxation/local_mesh_n_ring
(int
) /space/remesh/local_relaxation/local_mesh_n_ring\n
Size of n-ring for local relaxation Default: 2
/space/remesh/local_relaxation/local_mesh_rel_area
(float
) /space/remesh/local_relaxation/local_mesh_rel_area\n
Minimum area for local relaxation Default: 0.01
/space/remesh/local_relaxation/max_nl_iterations
(int
) /space/remesh/local_relaxation/max_nl_iterations\n
Maximum number of nonlinear solver iterations before acceptance check Default: 1
/space/remesh/type
(string
) /space/remesh/type\n
Type of adaptive remeshing to use. Default: 'physics'
Options: ['physics', 'sizing_field']
/space/advanced
(object
) /space/advanced\n
Advanced settings for the FE space. Default: None
/space/advanced/discr_order_max
(int
) /space/advanced/discr_order_max\n
Maximal discretization order in adaptive p-refinement and hp-refinement Default: 4
/space/advanced/isoparametric
(bool
) /space/advanced/isoparametric\n
Forces geometric map basis to be the same degree as the main variable basis, irrespective of the degree associated with the geom. map degrees associated with the elements of the geometry. Default: False
/space/advanced/bc_method
(string
) /space/advanced/bc_method\n
Method for imposing analytic Dirichet boundary conditions. If \u2018lsq\u2019 (least-squares fit), then the bc function is sampled at quadrature points, and the FEspace nodal values on the boundary are determined by minimizing L2 norm of the difference. If \u2018sample\u2019, then the analytic bc function is sampled at the boundary nodes. Default: 'sample'
Options: ['lsq', 'sample']
/space/advanced/n_boundary_samples
(int
) /space/advanced/n_boundary_samples\n
Per-element number of boundary samples for analytic Dirichlet and Neumann boundary conditions. Default: -1
/space/advanced/quadrature_order
(int
) /space/advanced/quadrature_order\n
Minimal quadrature order to use in matrix and rhs assembly; the actual order is determined as min(2*(p-1)+1,quadrature_order). Default: -1
/space/advanced/mass_quadrature_order
(int
) /space/advanced/mass_quadrature_order\n
Minimal quadrature order to use in mass matrix assembler; the actual order is determined as min(2*p+1,quadrature_order) Default: -1
/space/advanced/integral_constraints
(int
) /space/advanced/integral_constraints\n
Number of constraints for non-conforming polygonal basis; 0, 1, or 2; see \u2018PolySpline..\u2019 paper for details. Default: 2
/space/advanced/n_harmonic_samples
(int
) /space/advanced/n_harmonic_samples\n
If MFSHarmonics is used for a polygonal element, number of collocation samples used in the basis construction;see \u2018PolySpline..\u2019 paper for details. Default: 10
/space/advanced/force_no_ref_for_harmonic
(bool
) /space/advanced/force_no_ref_for_harmonic\n
If true, do not do uniform global refinement if the mesh contains polygonal elements. Default: False
/space/advanced/B
(int
) /space/advanced/B\n
The target deviation of the error on elements from perfect element error, for a priori geometry-dependent p-refinement, see \u2018Decoupling .. \u2018 paper. Default: 3
/space/advanced/h1_formula
(bool
) /space/advanced/h1_formula\n
Default: False
/space/advanced/count_flipped_els
(bool
) /space/advanced/count_flipped_els\n
Count the number of elements with Jacobian of the geometric map not positive at quadrature points. Default: True
/space/advanced/use_particle_advection
(bool
) /space/advanced/use_particle_advection\n
Use particle advection in splitting method for solving NS equation. Default: False
/time
/time\n
/time
(object
)/time
(object
)/time
(object
) The time parameters: start time t0
, end time tend
, time step dt
.
Default: 'skip'
/time/tend
(float
) /time/tend\n
Ending time Range: [0, inf]
/time/dt
(float
) /time/dt\n
Time step size \\(\\Delta t\\) Range: [0, inf]
/time/t0
(float
) /time/t0\n
Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Implicit Euler time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Backwards differentiation formula time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
) /time/integrator/steps\n
BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Implicit Newmark time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Ignore inertia in time dependent. Used for doing incremental load. Default: False
The time parameters: start time t0
, time step dt
, number of time steps.
/time/time_steps
(int
) /time/time_steps\n
Number of time steps Range: [0, inf]
/time/dt
(float
) /time/dt\n
Time step size \\(\\Delta t\\) Range: [0, inf]
/time/t0
(float
) /time/t0\n
Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Implicit Euler time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Backwards differentiation formula time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
) /time/integrator/steps\n
BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Implicit Newmark time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Ignore inertia in time dependent. Used for doing incremental load. Default: False
The time parameters: start time t0
, end time tend
, number of time steps.
/time/time_steps
(int
) /time/time_steps\n
Number of time steps Range: [0, inf]
/time/tend
(float
) /time/tend\n
Ending time Range: [0, inf]
/time/t0
(float
) /time/t0\n
Startning time Default: 0
Range: [0, inf]
/time/integrator
/time/integrator\n
/time/integrator
(string
)ImplicitEulerBDFImplicitNewmark Time integrator
Default: 'ImplicitEuler'
Options: ['ImplicitEuler', 'BDF1', 'BDF2', 'BDF3', 'BDF4', 'BDF5', 'BDF6', 'ImplicitNewmark']
Type: ImplicitEuler Implicit Euler time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
Type: BDF Backwards differentiation formula time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/steps
(int
) /time/integrator/steps\n
BDF order Default: 1
Range: [1, 6]
Type: ImplicitNewmark Implicit Newmark time integration
/time/integrator/type
(string
) /time/integrator/type\n
Type of time integrator to use Options: ['ImplicitEuler', 'BDF', 'ImplicitNewmark']
/time/integrator/gamma
(float
) /time/integrator/gamma\n
Newmark gamma Default: 0.5
Range: [0, 1]
/time/integrator/beta
(float
) /time/integrator/beta\n
Newmark beta Default: 0.25
Range: [0, 0.5]
/time/quasistatic
(bool
) /time/quasistatic\n
Ignore inertia in time dependent. Used for doing incremental load. Default: False
/contact
(object
) /contact\n
Contact handling parameters. Default: None
/contact/enabled
(bool
) /contact/enabled\n
True if contact handling is enabled. Default: False
/contact/dhat
(float
) /contact/dhat\n
Contact barrier activation distance. Default: 0.001
Range: [0, inf]
/contact/dhat_percentage
(float
) /contact/dhat_percentage\n
\\(\\hat{d}\\) as percentage of the diagonal of the bounding box Default: 0.8
/contact/epsv
(float
) /contact/epsv\n
Friction smoothing parameter. Default: 0.001
Range: [0, inf]
/contact/friction_coefficient
(float
) /contact/friction_coefficient\n
Coefficient of friction (global) Default: 0
/contact/use_convergent_formulation
(bool
) /contact/use_convergent_formulation\n
Whether to use the convergent (area weighted) formulation of IPC. Default: False
/contact/collision_mesh
/contact/collision_mesh\n
/contact/collision_mesh
(object
)/contact/collision_mesh
(object
) Load a preconstructed collision mesh.
Default: 'skip'
/contact/collision_mesh/mesh
(string
) /contact/collision_mesh/mesh\n
Path to preconstructed collision mesh. /contact/collision_mesh/linear_map
(string
) /contact/collision_mesh/linear_map\n
HDF file storing the linear mapping of displacements. /contact/collision_mesh/enabled
(bool
) /contact/collision_mesh/enabled\n
Default: True
Construct a collision mesh with a maximum edge length.
/contact/collision_mesh/max_edge_length
(float
) /contact/collision_mesh/max_edge_length\n
Maximum edge length to use for building the collision mesh. /contact/collision_mesh/tessellation_type
(string
) /contact/collision_mesh/tessellation_type\n
Type of tessellation to use for building the collision mesh. Default: 'regular'
Options: ['regular', 'irregular']
/contact/collision_mesh/enabled
(bool
) /contact/collision_mesh/enabled\n
Default: True
/contact/periodic
(bool
) /contact/periodic\n
Set to true to check collision between adjacent periodic cells. Default: False
/solver
(object
) /solver\n
The settings for the solver including linear solver, nonlinear solver, and some advanced options. Default: None
/solver/max_threads
(int
) /solver/max_threads\n
Maximum number of threads used; 0 is unlimited. Default: 0
Range: [0, inf]
/solver/linear
(object
) /solver/linear\n
Settings for the linear solver. Default: None
/solver/linear/enable_overwrite_solver
(bool
) /solver/linear/enable_overwrite_solver\n
If solver name is not present, falls back to default Default: False
/solver/linear/solver
(string
) /solver/linear/solver\n
Linear solver type. Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/linear/precond
(string
) /solver/linear/precond\n
Preconditioner used if using an iterative linear solver. Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/linear/Eigen::LeastSquaresConjugateGradient
(object
) /solver/linear/Eigen::LeastSquaresConjugateGradient\n
Settings for the Eigen\u2019s Least Squares Conjugate Gradient solver. Default: None
/solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
) /solver/linear/Eigen::LeastSquaresConjugateGradient/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
) /solver/linear/Eigen::LeastSquaresConjugateGradient/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::DGMRES
(object
) /solver/linear/Eigen::DGMRES\n
Settings for the Eigen\u2019s DGMRES solver. Default: None
/solver/linear/Eigen::DGMRES/max_iter
(int
) /solver/linear/Eigen::DGMRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::DGMRES/tolerance
(float
) /solver/linear/Eigen::DGMRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::ConjugateGradient
(object
) /solver/linear/Eigen::ConjugateGradient\n
Settings for the Eigen\u2019s Conjugate Gradient solver. Default: None
/solver/linear/Eigen::ConjugateGradient/max_iter
(int
) /solver/linear/Eigen::ConjugateGradient/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::ConjugateGradient/tolerance
(float
) /solver/linear/Eigen::ConjugateGradient/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::BiCGSTAB
(object
) /solver/linear/Eigen::BiCGSTAB\n
Settings for the Eigen\u2019s BiCGSTAB solver. Default: None
/solver/linear/Eigen::BiCGSTAB/max_iter
(int
) /solver/linear/Eigen::BiCGSTAB/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::BiCGSTAB/tolerance
(float
) /solver/linear/Eigen::BiCGSTAB/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::GMRES
(object
) /solver/linear/Eigen::GMRES\n
Settings for the Eigen\u2019s GMRES solver. Default: None
/solver/linear/Eigen::GMRES/max_iter
(int
) /solver/linear/Eigen::GMRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::GMRES/tolerance
(float
) /solver/linear/Eigen::GMRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Eigen::MINRES
(object
) /solver/linear/Eigen::MINRES\n
Settings for the Eigen\u2019s MINRES solver. Default: None
/solver/linear/Eigen::MINRES/max_iter
(int
) /solver/linear/Eigen::MINRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Eigen::MINRES/tolerance
(float
) /solver/linear/Eigen::MINRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/linear/Pardiso
(object
) /solver/linear/Pardiso\n
Settings for the Pardiso solver. Default: None
/solver/linear/Pardiso/mtype
(int
) /solver/linear/Pardiso/mtype\n
Matrix type. Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/linear/Hypre
(object
) /solver/linear/Hypre\n
Settings for the Hypre solver. Default: None
/solver/linear/Hypre/max_iter
(int
) /solver/linear/Hypre/max_iter\n
Maximum number of iterations. Default: 1000
/solver/linear/Hypre/pre_max_iter
(int
) /solver/linear/Hypre/pre_max_iter\n
Maximum number of pre iterations. Default: 1
/solver/linear/Hypre/tolerance
(float
) /solver/linear/Hypre/tolerance\n
Convergence tolerance. Default: 1e-10
/solver/linear/AMGCL
(object
) /solver/linear/AMGCL\n
Settings for the AMGCL solver. Default: None
/solver/linear/AMGCL/solver
(object
) /solver/linear/AMGCL/solver\n
Solver settings for the AMGCL. Default: None
/solver/linear/AMGCL/solver/tol
(float
) /solver/linear/AMGCL/solver/tol\n
Convergence tolerance. Default: 1e-10
/solver/linear/AMGCL/solver/maxiter
(int
) /solver/linear/AMGCL/solver/maxiter\n
Maximum number of iterations. Default: 1000
/solver/linear/AMGCL/solver/type
(string
) /solver/linear/AMGCL/solver/type\n
Type of solver to use. Default: 'cg'
/solver/linear/AMGCL/precond
(object
) /solver/linear/AMGCL/precond\n
Preconditioner settings for the AMGCL. Default: None
/solver/linear/AMGCL/precond/relax
(object
) /solver/linear/AMGCL/precond/relax\n
Preconditioner settings for the AMGCL. Default: None
/solver/linear/AMGCL/precond/relax/degree
(int
) /solver/linear/AMGCL/precond/relax/degree\n
Degree of the polynomial. Default: 16
/solver/linear/AMGCL/precond/relax/type
(string
) /solver/linear/AMGCL/precond/relax/type\n
Type of relaxation to use. Default: 'chebyshev'
/solver/linear/AMGCL/precond/relax/power_iters
(int
) /solver/linear/AMGCL/precond/relax/power_iters\n
Number of power iterations. Default: 100
/solver/linear/AMGCL/precond/relax/higher
(float
) /solver/linear/AMGCL/precond/relax/higher\n
Higher level relaxation. Default: 2
/solver/linear/AMGCL/precond/relax/lower
(float
) /solver/linear/AMGCL/precond/relax/lower\n
Lower level relaxation. Default: 0.008333333333
/solver/linear/AMGCL/precond/relax/scale
(bool
) /solver/linear/AMGCL/precond/relax/scale\n
Scale. Default: True
/solver/linear/AMGCL/precond/class
(string
) /solver/linear/AMGCL/precond/class\n
Type of preconditioner to use. Default: 'amg'
/solver/linear/AMGCL/precond/max_levels
(int
) /solver/linear/AMGCL/precond/max_levels\n
Maximum number of levels. Default: 6
/solver/linear/AMGCL/precond/direct_coarse
(bool
) /solver/linear/AMGCL/precond/direct_coarse\n
Use direct solver for the coarsest level. Default: False
/solver/linear/AMGCL/precond/ncycle
(int
) /solver/linear/AMGCL/precond/ncycle\n
Number of cycles. Default: 2
/solver/linear/AMGCL/precond/coarsening
(object
) /solver/linear/AMGCL/precond/coarsening\n
Coarsening parameters. Default: None
/solver/linear/AMGCL/precond/coarsening/type
(string
) /solver/linear/AMGCL/precond/coarsening/type\n
Coarsening type. Default: 'smoothed_aggregation'
/solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
) /solver/linear/AMGCL/precond/coarsening/estimate_spectral_radius\n
Should the spectral radius be estimated. Default: True
/solver/linear/AMGCL/precond/coarsening/relax
(float
) /solver/linear/AMGCL/precond/coarsening/relax\n
Coarsening relaxation. Default: 1
/solver/linear/AMGCL/precond/coarsening/aggr
(object
) /solver/linear/AMGCL/precond/coarsening/aggr\n
Aggregation settings. Default: None
/solver/linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
) /solver/linear/AMGCL/precond/coarsening/aggr/eps_strong\n
Aggregation epsilon strong. Default: 0
/solver/adjoint_linear
(object
) /solver/adjoint_linear\n
Settings for the linear solver. Default: None
/solver/adjoint_linear/enable_overwrite_solver
(bool
) /solver/adjoint_linear/enable_overwrite_solver\n
If solver name is not present, falls back to default Default: False
/solver/adjoint_linear/solver
(string
) /solver/adjoint_linear/solver\n
Linear solver type. Default: ''
Options: ['Eigen::SimplicialLDLT', 'Eigen::SparseLU', 'Eigen::CholmodSupernodalLLT', 'Eigen::UmfPackLU', 'Eigen::SuperLU', 'Eigen::PardisoLDLT', 'Eigen::PardisoLLT', 'Eigen::PardisoLU', 'Pardiso', 'Hypre', 'AMGCL', 'Eigen::LeastSquaresConjugateGradient', 'Eigen::DGMRES', 'Eigen::ConjugateGradient', 'Eigen::BiCGSTAB', 'Eigen::GMRES', 'Eigen::MINRES']
/solver/adjoint_linear/precond
(string
) /solver/adjoint_linear/precond\n
Preconditioner used if using an iterative linear solver. Default: ''
Options: ['Eigen::IdentityPreconditioner', 'Eigen::DiagonalPreconditioner', 'Eigen::IncompleteCholesky', 'Eigen::LeastSquareDiagonalPreconditioner', 'Eigen::IncompleteLUT']
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient
(object
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient\n
Settings for the Eigen\u2019s Least Squares Conjugate Gradient solver. Default: None
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter
(int
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance
(float
) /solver/adjoint_linear/Eigen::LeastSquaresConjugateGradient/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::DGMRES
(object
) /solver/adjoint_linear/Eigen::DGMRES\n
Settings for the Eigen\u2019s DGMRES solver. Default: None
/solver/adjoint_linear/Eigen::DGMRES/max_iter
(int
) /solver/adjoint_linear/Eigen::DGMRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::DGMRES/tolerance
(float
) /solver/adjoint_linear/Eigen::DGMRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::ConjugateGradient
(object
) /solver/adjoint_linear/Eigen::ConjugateGradient\n
Settings for the Eigen\u2019s Conjugate Gradient solver. Default: None
/solver/adjoint_linear/Eigen::ConjugateGradient/max_iter
(int
) /solver/adjoint_linear/Eigen::ConjugateGradient/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::ConjugateGradient/tolerance
(float
) /solver/adjoint_linear/Eigen::ConjugateGradient/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::BiCGSTAB
(object
) /solver/adjoint_linear/Eigen::BiCGSTAB\n
Settings for the Eigen\u2019s BiCGSTAB solver. Default: None
/solver/adjoint_linear/Eigen::BiCGSTAB/max_iter
(int
) /solver/adjoint_linear/Eigen::BiCGSTAB/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::BiCGSTAB/tolerance
(float
) /solver/adjoint_linear/Eigen::BiCGSTAB/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::GMRES
(object
) /solver/adjoint_linear/Eigen::GMRES\n
Settings for the Eigen\u2019s GMRES solver. Default: None
/solver/adjoint_linear/Eigen::GMRES/max_iter
(int
) /solver/adjoint_linear/Eigen::GMRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::GMRES/tolerance
(float
) /solver/adjoint_linear/Eigen::GMRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Eigen::MINRES
(object
) /solver/adjoint_linear/Eigen::MINRES\n
Settings for the Eigen\u2019s MINRES solver. Default: None
/solver/adjoint_linear/Eigen::MINRES/max_iter
(int
) /solver/adjoint_linear/Eigen::MINRES/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Eigen::MINRES/tolerance
(float
) /solver/adjoint_linear/Eigen::MINRES/tolerance\n
Convergence tolerance. Default: 1e-12
/solver/adjoint_linear/Pardiso
(object
) /solver/adjoint_linear/Pardiso\n
Settings for the Pardiso solver. Default: None
/solver/adjoint_linear/Pardiso/mtype
(int
) /solver/adjoint_linear/Pardiso/mtype\n
Matrix type. Default: 11
Options: [1, 2, -2, 3, 4, -4, 6, 11, 13]
/solver/adjoint_linear/Hypre
(object
) /solver/adjoint_linear/Hypre\n
Settings for the Hypre solver. Default: None
/solver/adjoint_linear/Hypre/max_iter
(int
) /solver/adjoint_linear/Hypre/max_iter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/Hypre/pre_max_iter
(int
) /solver/adjoint_linear/Hypre/pre_max_iter\n
Maximum number of pre iterations. Default: 1
/solver/adjoint_linear/Hypre/tolerance
(float
) /solver/adjoint_linear/Hypre/tolerance\n
Convergence tolerance. Default: 1e-10
/solver/adjoint_linear/AMGCL
(object
) /solver/adjoint_linear/AMGCL\n
Settings for the AMGCL solver. Default: None
/solver/adjoint_linear/AMGCL/solver
(object
) /solver/adjoint_linear/AMGCL/solver\n
Solver settings for the AMGCL. Default: None
/solver/adjoint_linear/AMGCL/solver/tol
(float
) /solver/adjoint_linear/AMGCL/solver/tol\n
Convergence tolerance. Default: 1e-10
/solver/adjoint_linear/AMGCL/solver/maxiter
(int
) /solver/adjoint_linear/AMGCL/solver/maxiter\n
Maximum number of iterations. Default: 1000
/solver/adjoint_linear/AMGCL/solver/type
(string
) /solver/adjoint_linear/AMGCL/solver/type\n
Type of solver to use. Default: 'cg'
/solver/adjoint_linear/AMGCL/precond
(object
) /solver/adjoint_linear/AMGCL/precond\n
Preconditioner settings for the AMGCL. Default: None
/solver/adjoint_linear/AMGCL/precond/relax
(object
) /solver/adjoint_linear/AMGCL/precond/relax\n
Preconditioner settings for the AMGCL. Default: None
/solver/adjoint_linear/AMGCL/precond/relax/degree
(int
) /solver/adjoint_linear/AMGCL/precond/relax/degree\n
Degree of the polynomial. Default: 16
/solver/adjoint_linear/AMGCL/precond/relax/type
(string
) /solver/adjoint_linear/AMGCL/precond/relax/type\n
Type of relaxation to use. Default: 'chebyshev'
/solver/adjoint_linear/AMGCL/precond/relax/power_iters
(int
) /solver/adjoint_linear/AMGCL/precond/relax/power_iters\n
Number of power iterations. Default: 100
/solver/adjoint_linear/AMGCL/precond/relax/higher
(float
) /solver/adjoint_linear/AMGCL/precond/relax/higher\n
Higher level relaxation. Default: 2
/solver/adjoint_linear/AMGCL/precond/relax/lower
(float
) /solver/adjoint_linear/AMGCL/precond/relax/lower\n
Lower level relaxation. Default: 0.008333333333
/solver/adjoint_linear/AMGCL/precond/relax/scale
(bool
) /solver/adjoint_linear/AMGCL/precond/relax/scale\n
Scale. Default: True
/solver/adjoint_linear/AMGCL/precond/class
(string
) /solver/adjoint_linear/AMGCL/precond/class\n
Type of preconditioner to use. Default: 'amg'
/solver/adjoint_linear/AMGCL/precond/max_levels
(int
) /solver/adjoint_linear/AMGCL/precond/max_levels\n
Maximum number of levels. Default: 6
/solver/adjoint_linear/AMGCL/precond/direct_coarse
(bool
) /solver/adjoint_linear/AMGCL/precond/direct_coarse\n
Use direct solver for the coarsest level. Default: False
/solver/adjoint_linear/AMGCL/precond/ncycle
(int
) /solver/adjoint_linear/AMGCL/precond/ncycle\n
Number of cycles. Default: 2
/solver/adjoint_linear/AMGCL/precond/coarsening
(object
) /solver/adjoint_linear/AMGCL/precond/coarsening\n
Coarsening parameters. Default: None
/solver/adjoint_linear/AMGCL/precond/coarsening/type
(string
) /solver/adjoint_linear/AMGCL/precond/coarsening/type\n
Coarsening type. Default: 'smoothed_aggregation'
/solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius
(bool
) /solver/adjoint_linear/AMGCL/precond/coarsening/estimate_spectral_radius\n
Should the spectral radius be estimated. Default: True
/solver/adjoint_linear/AMGCL/precond/coarsening/relax
(float
) /solver/adjoint_linear/AMGCL/precond/coarsening/relax\n
Coarsening relaxation. Default: 1
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr
(object
) /solver/adjoint_linear/AMGCL/precond/coarsening/aggr\n
Aggregation settings. Default: None
/solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong
(float
) /solver/adjoint_linear/AMGCL/precond/coarsening/aggr/eps_strong\n
Aggregation epsilon strong. Default: 0
/solver/nonlinear
(object
) /solver/nonlinear\n
Settings for nonlinear solver. Interior-loop linear solver settings are defined in the solver/linear section. Default: None
/solver/nonlinear/solver
/solver/nonlinear/solver\n
/solver/nonlinear/solver
(string
)/solver/nonlinear/solver
(list
) Nonlinear solver type
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
List of solvers for ballback. Eg, [{\u2018type\u2019:\u2019Newton\u2019}, {\u2018type\u2019:\u2019L-BFGS\u2019}, {\u2018type\u2019:\u2019GradientDescent\u2019}] will solve using Newton, in case of failure will fallback to L-BFGS and eventually to GradientDescent
/solver/nonlinear/solver/*
/solver/nonlinear/solver/*\n
NewtonProjectedNewtonRegularizedNewtonRegularizedProjectedNewtonDenseNewtonDenseProjectedNewtonDenseRegularizedNewtonDenseRegularizedProjectedNewtonGradientDescentStochasticGradientDescentL-BFGSBFGSADAMStochasticADAM Type: Newton Options for Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: ProjectedNewton Options for projected Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: RegularizedNewton Options for regularized Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: RegularizedProjectedNewton Options for regularized projected Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: DenseNewton Options for Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseProjectedNewton Options for projected Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseRegularizedNewton Options for regularized Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: DenseRegularizedProjectedNewton Options for projected regularized Newton.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/residual_tolerance
(float
) /solver/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/solver/*/reg_weight_min
(float
) /solver/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/solver/*/reg_weight_max
(float
) /solver/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/solver/*/reg_weight_inc
(float
) /solver/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: GradientDescent Options for Gradient Descent.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent Options for Stochastic Gradient Descent.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/erase_component_probability
(float
) /solver/nonlinear/solver/*/erase_component_probability\n
Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
Type: L-BFGS Options for L-BFGS.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/history_size
(int
) /solver/nonlinear/solver/*/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
Type: BFGS Options for BFGS.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM Options for ADAM.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
) /solver/nonlinear/solver/*/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
) /solver/nonlinear/solver/*/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
) /solver/nonlinear/solver/*/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
) /solver/nonlinear/solver/*/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
Type: StochasticADAM Options for ADAM.
/solver/nonlinear/solver/*/type
(string
) /solver/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/nonlinear/solver/*/alpha
(float
) /solver/nonlinear/solver/*/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/solver/*/beta_1
(float
) /solver/nonlinear/solver/*/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/solver/*/beta_2
(float
) /solver/nonlinear/solver/*/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/solver/*/epsilon
(float
) /solver/nonlinear/solver/*/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/solver/*/erase_component_probability
(float
) /solver/nonlinear/solver/*/erase_component_probability\n
Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
/solver/nonlinear/x_delta
(float
) /solver/nonlinear/x_delta\n
Stopping criterion: minimal change of the variables x for the iterations to continue. Computed as the L2 norm of x divide by the time step. Default: 0
Range: [0, inf]
/solver/nonlinear/grad_norm
(float
) /solver/nonlinear/grad_norm\n
Stopping criterion: Minimal gradient norm for the iterations to continue. Default: 1e-08
Range: [0, inf]
/solver/nonlinear/first_grad_norm_tol
(float
) /solver/nonlinear/first_grad_norm_tol\n
Minimal gradient norm for the iterations to not start, assume we already are at a minimum. Default: 1e-10
/solver/nonlinear/max_iterations
(int
) /solver/nonlinear/max_iterations\n
Maximum number of iterations for a nonlinear solve. Default: 500
/solver/nonlinear/iterations_per_strategy
/solver/nonlinear/iterations_per_strategy\n
/solver/nonlinear/iterations_per_strategy
(int
)/solver/nonlinear/iterations_per_strategy
(list
) Number of iterations for every substrategy before reset.
Default: 5
Number of iterations for every substrategy before reset.
/solver/nonlinear/iterations_per_strategy/*
(int
) /solver/nonlinear/iterations_per_strategy/*\n
Number of iterations for every substrategy before reset. Default: 5
/solver/nonlinear/line_search
(object
) /solver/nonlinear/line_search\n
Settings for line-search in the nonlinear solver Default: None
/solver/nonlinear/line_search/method
(string
) /solver/nonlinear/line_search/method\n
Line-search type Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/nonlinear/line_search/use_grad_norm_tol
(float
) /solver/nonlinear/line_search/use_grad_norm_tol\n
When the energy is smaller than use_grad_norm_tol, line-search uses norm of gradient instead of energy Default: 1e-06
/solver/nonlinear/line_search/min_step_size
(float
) /solver/nonlinear/line_search/min_step_size\n
Mimimum step size Default: 1e-10
/solver/nonlinear/line_search/max_step_size_iter
(int
) /solver/nonlinear/line_search/max_step_size_iter\n
Number of iterations Default: 30
/solver/nonlinear/line_search/min_step_size_final
(float
) /solver/nonlinear/line_search/min_step_size_final\n
Mimimum step size for last descent strategy Default: 1e-20
/solver/nonlinear/line_search/max_step_size_iter_final
(int
) /solver/nonlinear/line_search/max_step_size_iter_final\n
Number of iterations for last descent strategy Default: 100
/solver/nonlinear/line_search/default_init_step_size
(float
) /solver/nonlinear/line_search/default_init_step_size\n
Initial step size Default: 1
/solver/nonlinear/line_search/step_ratio
(float
) /solver/nonlinear/line_search/step_ratio\n
Ratio used to decrease the step Default: 0.5
/solver/nonlinear/line_search/Armijo
(object
) /solver/nonlinear/line_search/Armijo\n
Options for Armijo. Default: None
/solver/nonlinear/line_search/Armijo/c
(float
) /solver/nonlinear/line_search/Armijo/c\n
Armijo c parameter. Default: 0.0001
/solver/nonlinear/line_search/RobustArmijo
(object
) /solver/nonlinear/line_search/RobustArmijo\n
Options for RobustArmijo. Default: None
/solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
) /solver/nonlinear/line_search/RobustArmijo/delta_relative_tolerance\n
Relative tolerance on E to switch to approximate. Default: 0.1
/solver/nonlinear/allow_out_of_iterations
(bool
) /solver/nonlinear/allow_out_of_iterations\n
If false (default), an exception will be thrown when the nonlinear solver reaches the maximum number of iterations. Default: False
/solver/nonlinear/L-BFGS
(object
) /solver/nonlinear/L-BFGS\n
Options for LBFGS. Default: None
/solver/nonlinear/L-BFGS/history_size
(int
) /solver/nonlinear/L-BFGS/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/nonlinear/L-BFGS-B
(object
) /solver/nonlinear/L-BFGS-B\n
Options for the boxed L-BFGS. Default: None
/solver/nonlinear/L-BFGS-B/history_size
(int
) /solver/nonlinear/L-BFGS-B/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/nonlinear/Newton
(object
) /solver/nonlinear/Newton\n
Options for Newton. Default: None
/solver/nonlinear/Newton/residual_tolerance
(float
) /solver/nonlinear/Newton/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/nonlinear/Newton/reg_weight_min
(float
) /solver/nonlinear/Newton/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/nonlinear/Newton/reg_weight_max
(float
) /solver/nonlinear/Newton/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/nonlinear/Newton/reg_weight_inc
(float
) /solver/nonlinear/Newton/reg_weight_inc\n
Regulariztion weight increment. Default: 10
/solver/nonlinear/Newton/force_psd_projection
(bool
) /solver/nonlinear/Newton/force_psd_projection\n
Force the Hessian to be PSD when using second order solvers (i.e., Newton\u2019s method). Default: False
/solver/nonlinear/Newton/use_psd_projection
(bool
) /solver/nonlinear/Newton/use_psd_projection\n
Use PSD as fallback using second order solvers (i.e., Newton\u2019s method). Default: True
/solver/nonlinear/Newton/use_psd_projection_in_regularized
(bool
) /solver/nonlinear/Newton/use_psd_projection_in_regularized\n
Use PSD in regularized Newton. Default: True
/solver/nonlinear/ADAM
(object
) /solver/nonlinear/ADAM\n
Options for ADAM. Default: None
/solver/nonlinear/ADAM/alpha
(float
) /solver/nonlinear/ADAM/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/ADAM/beta_1
(float
) /solver/nonlinear/ADAM/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/ADAM/beta_2
(float
) /solver/nonlinear/ADAM/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/ADAM/epsilon
(float
) /solver/nonlinear/ADAM/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/StochasticADAM
(object
) /solver/nonlinear/StochasticADAM\n
Options for ADAM. Default: None
/solver/nonlinear/StochasticADAM/alpha
(float
) /solver/nonlinear/StochasticADAM/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/nonlinear/StochasticADAM/beta_1
(float
) /solver/nonlinear/StochasticADAM/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/nonlinear/StochasticADAM/beta_2
(float
) /solver/nonlinear/StochasticADAM/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/nonlinear/StochasticADAM/epsilon
(float
) /solver/nonlinear/StochasticADAM/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/nonlinear/StochasticADAM/erase_component_probability
(float
) /solver/nonlinear/StochasticADAM/erase_component_probability\n
Probability of erasing a component on the gradient for ADAM. Default: 0.3
/solver/nonlinear/StochasticGradientDescent
(object
) /solver/nonlinear/StochasticGradientDescent\n
Options for Stochastic Gradient Descent. Default: None
/solver/nonlinear/StochasticGradientDescent/erase_component_probability
(float
) /solver/nonlinear/StochasticGradientDescent/erase_component_probability\n
Probability of erasing a component on the gradient for StochasticGradientDescent. Default: 0.3
/solver/nonlinear/box_constraints
(object
) /solver/nonlinear/box_constraints\n
FIXME: Missing documentation in the specification. Default: None
/solver/nonlinear/box_constraints/bounds
(list
) /solver/nonlinear/box_constraints/bounds\n
Box constraints on optimization variables. /solver/nonlinear/box_constraints/bounds/*
/solver/nonlinear/box_constraints/bounds/*\n
/solver/nonlinear/box_constraints/bounds/*
(list
)/solver/nonlinear/box_constraints/bounds/*
(float
) Box constraint values on optimization variables.
/solver/nonlinear/box_constraints/bounds/*/*
(float
) /solver/nonlinear/box_constraints/bounds/*/*\n
Box constraint values on optimization variables. Box constraint values on optimization variables.
/solver/nonlinear/box_constraints/max_change
/solver/nonlinear/box_constraints/max_change\n
/solver/nonlinear/box_constraints/max_change
(float
)/solver/nonlinear/box_constraints/max_change
(list
) Maximum change of optimization variables in one iteration, only for solvers with box constraints. Negative value to disable this constraint.
Default: -1
Maximum change of optimization variables in one iteration, only for solvers with box constraints.
/solver/nonlinear/box_constraints/max_change/*
(float
) /solver/nonlinear/box_constraints/max_change/*\n
Maximum change of every optimization variable in one iteration, only for solvers with box constraints. /solver/nonlinear/advanced
(object
) /solver/nonlinear/advanced\n
Nonlinear solver advanced options Default: None
/solver/nonlinear/advanced/f_delta
(float
) /solver/nonlinear/advanced/f_delta\n
Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/f_delta_step_tol
(int
) /solver/nonlinear/advanced/f_delta_step_tol\n
Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 100
/solver/nonlinear/advanced/derivative_along_delta_x_tol
(float
) /solver/nonlinear/advanced/derivative_along_delta_x_tol\n
Quit the optimization if the directional derivative along the descent direction is smaller than this tolerance. Default: 0
Range: [0, inf]
/solver/nonlinear/advanced/apply_gradient_fd
(string
) /solver/nonlinear/advanced/apply_gradient_fd\n
Expensive Option: For every iteration of the nonlinear solver, run finite difference to verify gradient of energy. Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/nonlinear/advanced/gradient_fd_eps
(float
) /solver/nonlinear/advanced/gradient_fd_eps\n
Expensive Option: Eps for finite difference to verify gradient of energy. Default: 1e-07
/solver/augmented_lagrangian
(object
) /solver/augmented_lagrangian\n
Parameters for the AL for imposing Dirichlet BCs. If the bc are not imposable, we add \\(w\\|u - bc\\|^2\\) to the energy (\\(u\\) is the solution at the Dirichlet nodes and \\(bc\\) are the Dirichlet values). After convergence, we try to impose bc again. The algorithm computes E + a/2*AL^2 - lambda AL, where E is the current energy (elastic, inertia, contact, etc.) and AL is the augmented Lagrangian energy. a starts at initial_weight
and, in case DBC cannot be imposed, we update a as a *= scaling
until max_weight
. See IPC additional material Default: None
/solver/augmented_lagrangian/initial_weight
(float
) /solver/augmented_lagrangian/initial_weight\n
Initial weight for AL Default: 1000000.0
Range: [0, inf]
/solver/augmented_lagrangian/scaling
(float
) /solver/augmented_lagrangian/scaling\n
Multiplication factor Default: 2.0
/solver/augmented_lagrangian/max_weight
(float
) /solver/augmented_lagrangian/max_weight\n
Maximum weight Default: 100000000.0
/solver/augmented_lagrangian/eta
(float
) /solver/augmented_lagrangian/eta\n
Tolerance for increasing the weight or updating the lagrangian Default: 0.99
Range: [0, 1]
/solver/augmented_lagrangian/nonlinear
(object
) /solver/augmented_lagrangian/nonlinear\n
Settings for nonlinear solver. Interior-loop linear solver settings are defined in the solver/linear section. Default: None
/solver/augmented_lagrangian/nonlinear/solver
/solver/augmented_lagrangian/nonlinear/solver\n
/solver/augmented_lagrangian/nonlinear/solver
(string
)/solver/augmented_lagrangian/nonlinear/solver
(list
) Nonlinear solver type
Default: 'Newton'
Options: ['Newton', 'DenseNewton', 'GradientDescent', 'ADAM', 'StochasticADAM', 'StochasticGradientDescent', 'L-BFGS', 'BFGS', 'L-BFGS-B', 'MMA']
List of solvers for ballback. Eg, [{\u2018type\u2019:\u2019Newton\u2019}, {\u2018type\u2019:\u2019L-BFGS\u2019}, {\u2018type\u2019:\u2019GradientDescent\u2019}] will solve using Newton, in case of failure will fallback to L-BFGS and eventually to GradientDescent
/solver/augmented_lagrangian/nonlinear/solver/*
/solver/augmented_lagrangian/nonlinear/solver/*\n
NewtonProjectedNewtonRegularizedNewtonRegularizedProjectedNewtonDenseNewtonDenseProjectedNewtonDenseRegularizedNewtonDenseRegularizedProjectedNewtonGradientDescentStochasticGradientDescentL-BFGSBFGSADAMStochasticADAM Type: Newton Options for Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: ProjectedNewton Options for projected Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: RegularizedNewton Options for regularized Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: RegularizedProjectedNewton Options for regularized projected Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: DenseNewton Options for Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseProjectedNewton Options for projected Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
Type: DenseRegularizedNewton Options for regularized Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: DenseRegularizedProjectedNewton Options for projected regularized Newton.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/reg_weight_inc\n
Regulariztion weight increment. Default: 10
Type: GradientDescent Options for Gradient Descent.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: StochasticGradientDescent Options for Stochastic Gradient Descent.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability\n
Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
Type: L-BFGS Options for L-BFGS.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/history_size
(int
) /solver/augmented_lagrangian/nonlinear/solver/*/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
Type: BFGS Options for BFGS.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
Type: ADAM Options for ADAM.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
Type: StochasticADAM Options for ADAM.
/solver/augmented_lagrangian/nonlinear/solver/*/type
(string
) /solver/augmented_lagrangian/nonlinear/solver/*/type\n
Nonlinear solver type Options: ['Newton', 'DenseNewton', 'ProjectedNewton', 'DenseProjectedNewton', 'RegularizedNewton', 'DenseRegularizedNewton', 'RegularizedProjectedNewton', 'DenseRegularizedProjectedNewton', 'GradientDescent', 'StochasticGradientDescent', 'ADAM', 'StochasticADAM', 'L-BFGS', 'BFGS']
/solver/augmented_lagrangian/nonlinear/solver/*/alpha
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/solver/*/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/solver/*/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/solver/*/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/solver/*/erase_component_probability\n
Probability of erasing a component on the gradient for stochastic solvers. Default: 0.3
/solver/augmented_lagrangian/nonlinear/x_delta
(float
) /solver/augmented_lagrangian/nonlinear/x_delta\n
Stopping criterion: minimal change of the variables x for the iterations to continue. Computed as the L2 norm of x divide by the time step. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/grad_norm
(float
) /solver/augmented_lagrangian/nonlinear/grad_norm\n
Stopping criterion: Minimal gradient norm for the iterations to continue. Default: 1e-08
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/first_grad_norm_tol
(float
) /solver/augmented_lagrangian/nonlinear/first_grad_norm_tol\n
Minimal gradient norm for the iterations to not start, assume we already are at a minimum. Default: 1e-10
/solver/augmented_lagrangian/nonlinear/max_iterations
(int
) /solver/augmented_lagrangian/nonlinear/max_iterations\n
Maximum number of iterations for a nonlinear solve. Default: 500
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy\n
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
(int
)/solver/augmented_lagrangian/nonlinear/iterations_per_strategy
(list
) Number of iterations for every substrategy before reset.
Default: 5
Number of iterations for every substrategy before reset.
/solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*
(int
) /solver/augmented_lagrangian/nonlinear/iterations_per_strategy/*\n
Number of iterations for every substrategy before reset. Default: 5
/solver/augmented_lagrangian/nonlinear/line_search
(object
) /solver/augmented_lagrangian/nonlinear/line_search\n
Settings for line-search in the nonlinear solver Default: None
/solver/augmented_lagrangian/nonlinear/line_search/method
(string
) /solver/augmented_lagrangian/nonlinear/line_search/method\n
Line-search type Default: 'RobustArmijo'
Options: ['Armijo', 'RobustArmijo', 'Backtracking', 'None']
/solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol
(float
) /solver/augmented_lagrangian/nonlinear/line_search/use_grad_norm_tol\n
When the energy is smaller than use_grad_norm_tol, line-search uses norm of gradient instead of energy Default: 1e-06
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size
(float
) /solver/augmented_lagrangian/nonlinear/line_search/min_step_size\n
Mimimum step size Default: 1e-10
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter
(int
) /solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter\n
Number of iterations Default: 30
/solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final
(float
) /solver/augmented_lagrangian/nonlinear/line_search/min_step_size_final\n
Mimimum step size for last descent strategy Default: 1e-20
/solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final
(int
) /solver/augmented_lagrangian/nonlinear/line_search/max_step_size_iter_final\n
Number of iterations for last descent strategy Default: 100
/solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size
(float
) /solver/augmented_lagrangian/nonlinear/line_search/default_init_step_size\n
Initial step size Default: 1
/solver/augmented_lagrangian/nonlinear/line_search/step_ratio
(float
) /solver/augmented_lagrangian/nonlinear/line_search/step_ratio\n
Ratio used to decrease the step Default: 0.5
/solver/augmented_lagrangian/nonlinear/line_search/Armijo
(object
) /solver/augmented_lagrangian/nonlinear/line_search/Armijo\n
Options for Armijo. Default: None
/solver/augmented_lagrangian/nonlinear/line_search/Armijo/c
(float
) /solver/augmented_lagrangian/nonlinear/line_search/Armijo/c\n
Armijo c parameter. Default: 0.0001
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo
(object
) /solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo\n
Options for RobustArmijo. Default: None
/solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/line_search/RobustArmijo/delta_relative_tolerance\n
Relative tolerance on E to switch to approximate. Default: 0.1
/solver/augmented_lagrangian/nonlinear/allow_out_of_iterations
(bool
) /solver/augmented_lagrangian/nonlinear/allow_out_of_iterations\n
If false (default), an exception will be thrown when the nonlinear solver reaches the maximum number of iterations. Default: False
/solver/augmented_lagrangian/nonlinear/L-BFGS
(object
) /solver/augmented_lagrangian/nonlinear/L-BFGS\n
Options for LBFGS. Default: None
/solver/augmented_lagrangian/nonlinear/L-BFGS/history_size
(int
) /solver/augmented_lagrangian/nonlinear/L-BFGS/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/augmented_lagrangian/nonlinear/L-BFGS-B
(object
) /solver/augmented_lagrangian/nonlinear/L-BFGS-B\n
Options for the boxed L-BFGS. Default: None
/solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size
(int
) /solver/augmented_lagrangian/nonlinear/L-BFGS-B/history_size\n
The number of corrections to approximate the inverse Hessian matrix. Default: 6
/solver/augmented_lagrangian/nonlinear/Newton
(object
) /solver/augmented_lagrangian/nonlinear/Newton\n
Options for Newton. Default: None
/solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance
(float
) /solver/augmented_lagrangian/nonlinear/Newton/residual_tolerance\n
Tolerance of the linear system residual. If residual is above, the direction is rejected. Default: 1e-05
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_min\n
Minimum regulariztion weight. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_max\n
Maximum regulariztion weight. Default: 100000000.0
/solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc
(float
) /solver/augmented_lagrangian/nonlinear/Newton/reg_weight_inc\n
Regulariztion weight increment. Default: 10
/solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/force_psd_projection\n
Force the Hessian to be PSD when using second order solvers (i.e., Newton\u2019s method). Default: False
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection\n
Use PSD as fallback using second order solvers (i.e., Newton\u2019s method). Default: True
/solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized
(bool
) /solver/augmented_lagrangian/nonlinear/Newton/use_psd_projection_in_regularized\n
Use PSD in regularized Newton. Default: True
/solver/augmented_lagrangian/nonlinear/ADAM
(object
) /solver/augmented_lagrangian/nonlinear/ADAM\n
Options for ADAM. Default: None
/solver/augmented_lagrangian/nonlinear/ADAM/alpha
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/ADAM/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/ADAM/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/ADAM/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/ADAM/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM
(object
) /solver/augmented_lagrangian/nonlinear/StochasticADAM\n
Options for ADAM. Default: None
/solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/alpha\n
Parameter alpha for ADAM. Default: 0.001
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_1\n
Parameter beta_1 for ADAM. Default: 0.9
/solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/beta_2\n
Parameter beta_2 for ADAM. Default: 0.999
/solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/epsilon\n
Parameter epsilon for ADAM. Default: 1e-08
/solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/StochasticADAM/erase_component_probability\n
Probability of erasing a component on the gradient for ADAM. Default: 0.3
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent
(object
) /solver/augmented_lagrangian/nonlinear/StochasticGradientDescent\n
Options for Stochastic Gradient Descent. Default: None
/solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability
(float
) /solver/augmented_lagrangian/nonlinear/StochasticGradientDescent/erase_component_probability\n
Probability of erasing a component on the gradient for StochasticGradientDescent. Default: 0.3
/solver/augmented_lagrangian/nonlinear/box_constraints
(object
) /solver/augmented_lagrangian/nonlinear/box_constraints\n
FIXME: Missing documentation in the specification. Default: None
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds
(list
) /solver/augmented_lagrangian/nonlinear/box_constraints/bounds\n
Box constraints on optimization variables. /solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*\n
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
(list
)/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*
(float
) Box constraint values on optimization variables.
/solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*
(float
) /solver/augmented_lagrangian/nonlinear/box_constraints/bounds/*/*\n
Box constraint values on optimization variables. Box constraint values on optimization variables.
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change\n
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
(float
)/solver/augmented_lagrangian/nonlinear/box_constraints/max_change
(list
) Maximum change of optimization variables in one iteration, only for solvers with box constraints. Negative value to disable this constraint.
Default: -1
Maximum change of optimization variables in one iteration, only for solvers with box constraints.
/solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*
(float
) /solver/augmented_lagrangian/nonlinear/box_constraints/max_change/*\n
Maximum change of every optimization variable in one iteration, only for solvers with box constraints. /solver/augmented_lagrangian/nonlinear/advanced
(object
) /solver/augmented_lagrangian/nonlinear/advanced\n
Nonlinear solver advanced options Default: None
/solver/augmented_lagrangian/nonlinear/advanced/f_delta
(float
) /solver/augmented_lagrangian/nonlinear/advanced/f_delta\n
Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol
(int
) /solver/augmented_lagrangian/nonlinear/advanced/f_delta_step_tol\n
Dangerous Option: Quit the optimization if the solver reduces the energy by less than f_delta for consecutive f_delta_step_tol steps. Default: 100
/solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol
(float
) /solver/augmented_lagrangian/nonlinear/advanced/derivative_along_delta_x_tol\n
Quit the optimization if the directional derivative along the descent direction is smaller than this tolerance. Default: 0
Range: [0, inf]
/solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd
(string
) /solver/augmented_lagrangian/nonlinear/advanced/apply_gradient_fd\n
Expensive Option: For every iteration of the nonlinear solver, run finite difference to verify gradient of energy. Default: 'None'
Options: ['None', 'DirectionalDerivative', 'FullFiniteDiff']
/solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps
(float
) /solver/augmented_lagrangian/nonlinear/advanced/gradient_fd_eps\n
Expensive Option: Eps for finite difference to verify gradient of energy. Default: 1e-07
/solver/contact
(object
) /solver/contact\n
Settings for contact handling in the solver. Default: None
/solver/contact/CCD
(object
) /solver/contact/CCD\n
CCD options Default: None
/solver/contact/CCD/broad_phase
(string
) /solver/contact/CCD/broad_phase\n
Broad phase collision-detection algorithm to use Default: 'hash_grid'
Options: ['hash_grid', 'HG', 'brute_force', 'BF', 'spatial_hash', 'SH', 'bvh', 'BVH', 'sweep_and_prune', 'SAP', 'sweep_and_tiniest_queue', 'STQ']
/solver/contact/CCD/tolerance
(float
) /solver/contact/CCD/tolerance\n
CCD tolerance Default: 1e-06
/solver/contact/CCD/max_iterations
(int
) /solver/contact/CCD/max_iterations\n
Maximum number of iterations for continuous collision detection Default: 1000000
/solver/contact/friction_iterations
(int
) /solver/contact/friction_iterations\n
Maximum number of update iterations for lagged friction formulation (see IPC paper). Default: 1
/solver/contact/friction_convergence_tol
(float
) /solver/contact/friction_convergence_tol\n
Tolerence for friction convergence Default: 0.01
/solver/contact/barrier_stiffness
/solver/contact/barrier_stiffness\n
/solver/contact/barrier_stiffness
(string
)/solver/contact/barrier_stiffness
(float
) How coefficient of clamped log-barrier function for contact is updated
Default: 'adaptive'
Options: ['adaptive']
The coefficient of clamped log-barrier function value when not adaptive
/solver/rayleigh_damping
(list
) /solver/rayleigh_damping\n
Apply Rayleigh damping. /solver/rayleigh_damping/*
/solver/rayleigh_damping/*\n
/solver/rayleigh_damping/*
(object
)/solver/rayleigh_damping/*
(object
) Apply Rayleigh damping to the given Form with a stiffness ratio.
/solver/rayleigh_damping/*/form
(string
) /solver/rayleigh_damping/*/form\n
Form to damp. Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness_ratio
(float
) /solver/rayleigh_damping/*/stiffness_ratio\n
Ratio of to damp (stiffness = 0.75 * stiffness_ratio * \u0394t\u00b3). Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
) /solver/rayleigh_damping/*/lagging_iterations\n
Maximum number of update iterations for lagging. Default: 1
Apply Rayleigh damping to the given Form with a stiffness.
/solver/rayleigh_damping/*/form
(string
) /solver/rayleigh_damping/*/form\n
Form to damp. Options: ['elasticity', 'contact', 'friction']
/solver/rayleigh_damping/*/stiffness
(float
) /solver/rayleigh_damping/*/stiffness\n
Ratio of to damp. Range: [0, inf]
/solver/rayleigh_damping/*/lagging_iterations
(int
) /solver/rayleigh_damping/*/lagging_iterations\n
Maximum number of update iterations for lagging. Default: 1
/solver/advanced
(object
) /solver/advanced\n
Advanced settings for the solver Default: None
/solver/advanced/cache_size
(int
) /solver/advanced/cache_size\n
Maximum number of elements when the assembly values are cached. Default: 900000
/solver/advanced/lump_mass_matrix
(bool
) /solver/advanced/lump_mass_matrix\n
If true, use diagonal mass matrix with entries on the diagonal equal to the sum of entries in each row of the full mass matrix.} Default: False
/solver/advanced/lagged_regularization_weight
(float
) /solver/advanced/lagged_regularization_weight\n
Weight used to regularize singular static problems. Default: 0
/solver/advanced/lagged_regularization_iterations
(int
) /solver/advanced/lagged_regularization_iterations\n
Number of regularize singular static problems. Default: 1
/boundary_conditions
(object
) /boundary_conditions\n
The settings for boundary conditions. Default: None
/boundary_conditions/rhs
/boundary_conditions/rhs\n
/boundary_conditions/rhs
(float
)/boundary_conditions/rhs
(string
)/boundary_conditions/rhs
(object
)/boundary_conditions/rhs
(list
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/rhs/value
/boundary_conditions/rhs/value\n
/boundary_conditions/rhs/value
(float
)/boundary_conditions/rhs/value
(string
)/boundary_conditions/rhs/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/rhs/unit
(string
) /boundary_conditions/rhs/unit\n
The unit of the Value Right-hand side of the system being solved for vector-valued PDEs.
/boundary_conditions/rhs/*
/boundary_conditions/rhs/*\n
/boundary_conditions/rhs/*
(float
)/boundary_conditions/rhs/*
(string
)/boundary_conditions/rhs/*
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/rhs/*/value
/boundary_conditions/rhs/*/value\n
/boundary_conditions/rhs/*/value
(float
)/boundary_conditions/rhs/*/value
(string
)/boundary_conditions/rhs/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/rhs/*/unit
(string
) /boundary_conditions/rhs/*/unit\n
The unit of the Value /boundary_conditions/dirichlet_boundary
(list
) /boundary_conditions/dirichlet_boundary\n
The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/dirichlet_boundary/*
/boundary_conditions/dirichlet_boundary/*\n
/boundary_conditions/dirichlet_boundary/*
(object
)/boundary_conditions/dirichlet_boundary/*
(string
) Dirichlet boundary condition.
Default: None
/boundary_conditions/dirichlet_boundary/*/id
/boundary_conditions/dirichlet_boundary/*/id\n
/boundary_conditions/dirichlet_boundary/*/id
(int
)/boundary_conditions/dirichlet_boundary/*/id
(string
) ID of boundary condition from surface selection.
Range: [0, 2147483646]
select all ids.
Options: ['all']
/boundary_conditions/dirichlet_boundary/*/value
(list
) /boundary_conditions/dirichlet_boundary/*/value\n
Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/dirichlet_boundary/*/value/*
/boundary_conditions/dirichlet_boundary/*/value/*\n
/boundary_conditions/dirichlet_boundary/*/value/*
(float
)/boundary_conditions/dirichlet_boundary/*/value/*
(string
)/boundary_conditions/dirichlet_boundary/*/value/*
(object
)/boundary_conditions/dirichlet_boundary/*/value/*
(list
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/dirichlet_boundary/*/value/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/value\n
/boundary_conditions/dirichlet_boundary/*/value/*/value
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/value
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/dirichlet_boundary/*/value/*/unit
(string
) /boundary_conditions/dirichlet_boundary/*/value/*/unit\n
The unit of the Value Dirichlet boundary condition specified per timestep.
/boundary_conditions/dirichlet_boundary/*/value/*/*
/boundary_conditions/dirichlet_boundary/*/value/*/*\n
/boundary_conditions/dirichlet_boundary/*/value/*/*
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/*
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
/boundary_conditions/dirichlet_boundary/*/value/*/*/value\n
/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(float
)/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(string
)/boundary_conditions/dirichlet_boundary/*/value/*/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/dirichlet_boundary/*/value/*/*/unit
(string
) /boundary_conditions/dirichlet_boundary/*/value/*/*/unit\n
The unit of the Value /boundary_conditions/dirichlet_boundary/*/time_reference
(list
) /boundary_conditions/dirichlet_boundary/*/time_reference\n
List of times when the Dirichlet boundary condition is specified /boundary_conditions/dirichlet_boundary/*/time_reference/*
(float
) /boundary_conditions/dirichlet_boundary/*/time_reference/*\n
Values of Dirichlet boundary condition for timestep /boundary_conditions/dirichlet_boundary/*/interpolation
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation\n
interpolation of boundary condition /boundary_conditions/dirichlet_boundary/*/interpolation/*
/boundary_conditions/dirichlet_boundary/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none interpolation of boundary condition
Default: {'type': 'none'}
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear interpolation of boundary condition
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp interpolation of boundary condition
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/to
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/to\n
interpolation ending time /boundary_conditions/dirichlet_boundary/*/interpolation/*/from
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/from\n
interpolation starting time Default: 0
Type: piecewise_constant interpolation of boundary condition
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear interpolation of boundary condition
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic interpolation of boundary condition
/boundary_conditions/dirichlet_boundary/*/interpolation/*/type
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/dirichlet_boundary/*/interpolation/*/points
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/dirichlet_boundary/*/interpolation/*/values
(list
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/dirichlet_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/dirichlet_boundary/*/dimension
(list
) /boundary_conditions/dirichlet_boundary/*/dimension\n
List of 2 (2D) or 3 (3D) boolean values indicating if the Dirichlet boundary condition is applied for a particular dimension. /boundary_conditions/dirichlet_boundary/*/dimension/*
(bool
) /boundary_conditions/dirichlet_boundary/*/dimension/*\n
value Default: True
Dirichlet boundary condition loaded from a file, , 1 for scalar, \u2154 for tensor depending on dimension. /boundary_conditions/neumann_boundary
(list
)
/boundary_conditions/neumann_boundary\n
The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/neumann_boundary/*
(object
) /boundary_conditions/neumann_boundary/*\n
Neumann boundary condition Default: None
/boundary_conditions/neumann_boundary/*/id
/boundary_conditions/neumann_boundary/*/id\n
/boundary_conditions/neumann_boundary/*/id
(int
)/boundary_conditions/neumann_boundary/*/id
(string
) ID of boundary condition from surface selection.
Range: [0, 2147483646]
select all ids.
Options: ['all']
/boundary_conditions/neumann_boundary/*/value
(list
) /boundary_conditions/neumann_boundary/*/value\n
Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/neumann_boundary/*/value/*
/boundary_conditions/neumann_boundary/*/value/*\n
/boundary_conditions/neumann_boundary/*/value/*
(float
)/boundary_conditions/neumann_boundary/*/value/*
(string
)/boundary_conditions/neumann_boundary/*/value/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/neumann_boundary/*/value/*/value
/boundary_conditions/neumann_boundary/*/value/*/value\n
/boundary_conditions/neumann_boundary/*/value/*/value
(float
)/boundary_conditions/neumann_boundary/*/value/*/value
(string
)/boundary_conditions/neumann_boundary/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/neumann_boundary/*/value/*/unit
(string
) /boundary_conditions/neumann_boundary/*/value/*/unit\n
The unit of the Value /boundary_conditions/neumann_boundary/*/interpolation
(list
) /boundary_conditions/neumann_boundary/*/interpolation\n
interpolation of boundary condition /boundary_conditions/neumann_boundary/*/interpolation/*
/boundary_conditions/neumann_boundary/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none interpolation of boundary condition
Default: {'type': 'none'}
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear interpolation of boundary condition
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp interpolation of boundary condition
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/to
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/to\n
interpolation ending time /boundary_conditions/neumann_boundary/*/interpolation/*/from
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/from\n
interpolation starting time Default: 0
Type: piecewise_constant interpolation of boundary condition
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear interpolation of boundary condition
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic interpolation of boundary condition
/boundary_conditions/neumann_boundary/*/interpolation/*/type
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/neumann_boundary/*/interpolation/*/points
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/points\n
interpolation time points /boundary_conditions/neumann_boundary/*/interpolation/*/points/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/neumann_boundary/*/interpolation/*/values
(list
) /boundary_conditions/neumann_boundary/*/interpolation/*/values\n
interpolation values /boundary_conditions/neumann_boundary/*/interpolation/*/values/*
(float
) /boundary_conditions/neumann_boundary/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/neumann_boundary/*/interpolation/*/extend
(string
) /boundary_conditions/neumann_boundary/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/normal_aligned_neumann_boundary
(list
) /boundary_conditions/normal_aligned_neumann_boundary\n
Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/normal_aligned_neumann_boundary/*
(object
) /boundary_conditions/normal_aligned_neumann_boundary/*\n
pressure BC entry Default: None
/boundary_conditions/normal_aligned_neumann_boundary/*/id
(int
) /boundary_conditions/normal_aligned_neumann_boundary/*/id\n
ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/normal_aligned_neumann_boundary/*/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value\n
/boundary_conditions/normal_aligned_neumann_boundary/*/value
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/value
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value\n
/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(float
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(string
)/boundary_conditions/normal_aligned_neumann_boundary/*/value/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/normal_aligned_neumann_boundary/*/value/unit
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/value/unit\n
The unit of the Value /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none interpolation of boundary condition
Default: {'type': 'none'}
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear interpolation of boundary condition
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp interpolation of boundary condition
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/to\n
interpolation ending time /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/from\n
interpolation starting time Default: 0
Type: piecewise_constant interpolation of boundary condition
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
interpolation value /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear interpolation of boundary condition
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
interpolation value /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic interpolation of boundary condition
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points\n
interpolation time points /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/points/*\n
interpolation time point /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values
(list
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values\n
interpolation values /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*
(float
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/values/*\n
interpolation value /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend
(string
) /boundary_conditions/normal_aligned_neumann_boundary/*/interpolation/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/pressure_boundary
(list
) /boundary_conditions/pressure_boundary\n
Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/pressure_boundary/*
(object
) /boundary_conditions/pressure_boundary/*\n
pressure BC entry Default: None
/boundary_conditions/pressure_boundary/*/id
(int
) /boundary_conditions/pressure_boundary/*/id\n
ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/pressure_boundary/*/value
/boundary_conditions/pressure_boundary/*/value\n
/boundary_conditions/pressure_boundary/*/value
(float
)/boundary_conditions/pressure_boundary/*/value
(string
)/boundary_conditions/pressure_boundary/*/value
(object
)/boundary_conditions/pressure_boundary/*/value
(list
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/pressure_boundary/*/value/value
/boundary_conditions/pressure_boundary/*/value/value\n
/boundary_conditions/pressure_boundary/*/value/value
(float
)/boundary_conditions/pressure_boundary/*/value/value
(string
)/boundary_conditions/pressure_boundary/*/value/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/pressure_boundary/*/value/unit
(string
) /boundary_conditions/pressure_boundary/*/value/unit\n
The unit of the Value Values of pressure boundary condition specified per timestep
/boundary_conditions/pressure_boundary/*/value/*
/boundary_conditions/pressure_boundary/*/value/*\n
/boundary_conditions/pressure_boundary/*/value/*
(float
)/boundary_conditions/pressure_boundary/*/value/*
(string
)/boundary_conditions/pressure_boundary/*/value/*
(object
) Value as a constant float
Default: 0
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/pressure_boundary/*/value/*/value
/boundary_conditions/pressure_boundary/*/value/*/value\n
/boundary_conditions/pressure_boundary/*/value/*/value
(float
)/boundary_conditions/pressure_boundary/*/value/*/value
(string
)/boundary_conditions/pressure_boundary/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/pressure_boundary/*/value/*/unit
(string
) /boundary_conditions/pressure_boundary/*/value/*/unit\n
The unit of the Value /boundary_conditions/pressure_boundary/*/time_reference
(list
) /boundary_conditions/pressure_boundary/*/time_reference\n
List of times when the pressure boundary condition is specified /boundary_conditions/pressure_boundary/*/time_reference/*
(float
) /boundary_conditions/pressure_boundary/*/time_reference/*\n
Values of pressure boundary condition for timestep /boundary_conditions/pressure_cavity
(list
) /boundary_conditions/pressure_cavity\n
Neumann boundary condition for normal times value for vector-valued PDEs. /boundary_conditions/pressure_cavity/*
(object
) /boundary_conditions/pressure_cavity/*\n
pressure BC entry Default: None
/boundary_conditions/pressure_cavity/*/id
(int
) /boundary_conditions/pressure_cavity/*/id\n
ID for the pressure Neumann boundary condition Range: [0, 2147483646]
/boundary_conditions/pressure_cavity/*/value
/boundary_conditions/pressure_cavity/*/value\n
/boundary_conditions/pressure_cavity/*/value
(float
)/boundary_conditions/pressure_cavity/*/value
(string
)/boundary_conditions/pressure_cavity/*/value
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/pressure_cavity/*/value/value
/boundary_conditions/pressure_cavity/*/value/value\n
/boundary_conditions/pressure_cavity/*/value/value
(float
)/boundary_conditions/pressure_cavity/*/value/value
(string
)/boundary_conditions/pressure_cavity/*/value/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/pressure_cavity/*/value/unit
(string
) /boundary_conditions/pressure_cavity/*/value/unit\n
The unit of the Value /boundary_conditions/obstacle_displacements
(list
) /boundary_conditions/obstacle_displacements\n
The list of boundary conditions for the main variable. Elements of the list are assignment pairs (ID, value) where ID is assigned by surface selection. /boundary_conditions/obstacle_displacements/*
(object
) /boundary_conditions/obstacle_displacements/*\n
Obstacle displacements Default: None
/boundary_conditions/obstacle_displacements/*/id
/boundary_conditions/obstacle_displacements/*/id\n
/boundary_conditions/obstacle_displacements/*/id
(int
)/boundary_conditions/obstacle_displacements/*/id
(string
) ID of boundary condition from surface selection.
Range: [0, 2147483646]
select all ids.
Options: ['all']
/boundary_conditions/obstacle_displacements/*/value
(list
) /boundary_conditions/obstacle_displacements/*/value\n
Values of boundary condition, length 1 for scalar-valued pde, \u2154 for vector-valued PDEs depending on the dimension. /boundary_conditions/obstacle_displacements/*/value/*
/boundary_conditions/obstacle_displacements/*/value/*\n
/boundary_conditions/obstacle_displacements/*/value/*
(float
)/boundary_conditions/obstacle_displacements/*/value/*
(string
)/boundary_conditions/obstacle_displacements/*/value/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/boundary_conditions/obstacle_displacements/*/value/*/value
/boundary_conditions/obstacle_displacements/*/value/*/value\n
/boundary_conditions/obstacle_displacements/*/value/*/value
(float
)/boundary_conditions/obstacle_displacements/*/value/*/value
(string
)/boundary_conditions/obstacle_displacements/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/boundary_conditions/obstacle_displacements/*/value/*/unit
(string
) /boundary_conditions/obstacle_displacements/*/value/*/unit\n
The unit of the Value /boundary_conditions/obstacle_displacements/*/interpolation
(list
) /boundary_conditions/obstacle_displacements/*/interpolation\n
interpolation of boundary condition /boundary_conditions/obstacle_displacements/*/interpolation/*
/boundary_conditions/obstacle_displacements/*/interpolation/*\n
nonelinearlinear_ramppiecewise_constantpiecewise_linearpiecewise_cubic Type: none interpolation of boundary condition
Default: {'type': 'none'}
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear interpolation of boundary condition
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
Type: linear_ramp interpolation of boundary condition
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/to
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/to\n
interpolation ending time /boundary_conditions/obstacle_displacements/*/interpolation/*/from
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/from\n
interpolation starting time Default: 0
Type: piecewise_constant interpolation of boundary condition
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_linear interpolation of boundary condition
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
Type: piecewise_cubic interpolation of boundary condition
/boundary_conditions/obstacle_displacements/*/interpolation/*/type
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/type\n
type of interpolation of boundary condition Options: ['none', 'linear', 'linear_ramp', 'piecewise_constant', 'piecewise_linear', 'piecewise_cubic']
/boundary_conditions/obstacle_displacements/*/interpolation/*/points
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points\n
interpolation time points /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/points/*\n
interpolation time point /boundary_conditions/obstacle_displacements/*/interpolation/*/values
(list
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values\n
interpolation values /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*
(float
) /boundary_conditions/obstacle_displacements/*/interpolation/*/values/*\n
interpolation value /boundary_conditions/obstacle_displacements/*/interpolation/*/extend
(string
) /boundary_conditions/obstacle_displacements/*/interpolation/*/extend\n
how to extend the piecewise interpolation Default: 'constant'
Options: ['constant', 'extrapolate', 'repeat', 'repeat_offset']
/boundary_conditions/periodic_boundary
(object
) /boundary_conditions/periodic_boundary\n
Options for periodic boundary conditions. Default: None
/boundary_conditions/periodic_boundary/enabled
(bool
) /boundary_conditions/periodic_boundary/enabled\n
Default: False
/boundary_conditions/periodic_boundary/tolerance
(float
) /boundary_conditions/periodic_boundary/tolerance\n
Relative tolerance of deciding periodic correspondence Default: 1e-05
/boundary_conditions/periodic_boundary/correspondence
(list
) /boundary_conditions/periodic_boundary/correspondence\n
Periodic directions for periodic boundary conditions. If not specified, default to axis-aligned directions. /boundary_conditions/periodic_boundary/correspondence/*
(list
) /boundary_conditions/periodic_boundary/correspondence/*\n
One periodic direction. /boundary_conditions/periodic_boundary/correspondence/*/*
(float
) /boundary_conditions/periodic_boundary/correspondence/*/*\n
One entry of a periodic direction. /boundary_conditions/periodic_boundary/linear_displacement_offset
(list
) /boundary_conditions/periodic_boundary/linear_displacement_offset\n
/boundary_conditions/periodic_boundary/linear_displacement_offset/*
(list
) /boundary_conditions/periodic_boundary/linear_displacement_offset/*\n
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*\n
/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
(float
)/boundary_conditions/periodic_boundary/linear_displacement_offset/*/*
(string
) /boundary_conditions/periodic_boundary/fixed_macro_strain
(list
) /boundary_conditions/periodic_boundary/fixed_macro_strain\n
/boundary_conditions/periodic_boundary/fixed_macro_strain/*
(int
) /boundary_conditions/periodic_boundary/fixed_macro_strain/*\n
/boundary_conditions/periodic_boundary/force_zero_mean
(bool
) /boundary_conditions/periodic_boundary/force_zero_mean\n
The periodic solution is not unique, set to true to find the solution with zero mean. Default: False
/initial_conditions
(object
) /initial_conditions\n
Initial conditions for the time-dependent problem, imposed on the main variable, its derivative or second derivative Default: None
/initial_conditions/solution
(list
) /initial_conditions/solution\n
initial solution /initial_conditions/solution/*
(object
) /initial_conditions/solution/*\n
A list of (ID, value) pairs defining the initial conditions for the main variable values. Ids are set by selection, and values can be floats or formulas. Default: None
/initial_conditions/solution/*/id
(int
) /initial_conditions/solution/*/id\n
ID from volume selections /initial_conditions/solution/*/value
(list
) /initial_conditions/solution/*/value\n
value of the solution /initial_conditions/solution/*/value/*
/initial_conditions/solution/*/value/*\n
/initial_conditions/solution/*/value/*
(float
)/initial_conditions/solution/*/value/*
(string
)/initial_conditions/solution/*/value/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/initial_conditions/solution/*/value/*/value
/initial_conditions/solution/*/value/*/value\n
/initial_conditions/solution/*/value/*/value
(float
)/initial_conditions/solution/*/value/*/value
(string
)/initial_conditions/solution/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/initial_conditions/solution/*/value/*/unit
(string
) /initial_conditions/solution/*/value/*/unit\n
The unit of the Value /initial_conditions/velocity
(list
) /initial_conditions/velocity\n
initial velocity /initial_conditions/velocity/*
(object
) /initial_conditions/velocity/*\n
A list of (ID, value) pairs defining the initial conditions for the first derivative of the main variable values. Ids are set by selection, and values can be floats or formulas. Default: None
/initial_conditions/velocity/*/id
(int
) /initial_conditions/velocity/*/id\n
ID from volume selections /initial_conditions/velocity/*/value
(list
) /initial_conditions/velocity/*/value\n
value od the initial velocity /initial_conditions/velocity/*/value/*
/initial_conditions/velocity/*/value/*\n
/initial_conditions/velocity/*/value/*
(float
)/initial_conditions/velocity/*/value/*
(string
)/initial_conditions/velocity/*/value/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/initial_conditions/velocity/*/value/*/value
/initial_conditions/velocity/*/value/*/value\n
/initial_conditions/velocity/*/value/*/value
(float
)/initial_conditions/velocity/*/value/*/value
(string
)/initial_conditions/velocity/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/initial_conditions/velocity/*/value/*/unit
(string
) /initial_conditions/velocity/*/value/*/unit\n
The unit of the Value /initial_conditions/acceleration
(list
) /initial_conditions/acceleration\n
initial acceleration /initial_conditions/acceleration/*
(object
) /initial_conditions/acceleration/*\n
entries Default: None
/initial_conditions/acceleration/*/id
(int
) /initial_conditions/acceleration/*/id\n
ID from volume selections /initial_conditions/acceleration/*/value
(list
) /initial_conditions/acceleration/*/value\n
value /initial_conditions/acceleration/*/value/*
/initial_conditions/acceleration/*/value/*\n
/initial_conditions/acceleration/*/value/*
(float
)/initial_conditions/acceleration/*/value/*
(string
)/initial_conditions/acceleration/*/value/*
(object
) Value as a constant float
Value as an expression of \\(x,y,z,t\\) or a file
Value with unit
/initial_conditions/acceleration/*/value/*/value
/initial_conditions/acceleration/*/value/*/value\n
/initial_conditions/acceleration/*/value/*/value
(float
)/initial_conditions/acceleration/*/value/*/value
(string
)/initial_conditions/acceleration/*/value/*/value
(file
) The value of the constant
The value as an expression
The value as a file
/initial_conditions/acceleration/*/value/*/unit
(string
) /initial_conditions/acceleration/*/value/*/unit\n
The unit of the Value /output
(object
) /output\n
output settings Default: None
/output/directory
(string
) /output/directory\n
Directory for output files. Default: ''
/output/log
(object
) /output/log\n
Setting for the output log. Default: None
/output/log/level
/output/log/level\n
/output/log/level
(int
)/output/log/level
(string
) Level of logging, 0 trace, 1 debug, 2 info, 3 warning, 4 error, 5 critical, and 6 off.
Range: [0, 6]
Level of logging.
Default: 'debug'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/file_level
/output/log/file_level\n
/output/log/file_level
(int
)/output/log/file_level
(string
) Level of logging to a file, 0 trace, 1 debug, 2 info, 3 warning, 4 error, 5 critical, and 6 off.
Range: [0, 6]
Level of logging.
Default: 'trace'
Options: ['trace', 'debug', 'info', 'warning', 'error', 'critical', 'off']
/output/log/path
(string
) /output/log/path\n
File where to save the log; empty string is output to terminal. Default: ''
/output/log/quiet
(bool
) /output/log/quiet\n
Disable cout for logging. Default: False
/output/json
(string
) /output/json\n
File name for JSON output statistics on time/error/etc. Default: ''
/output/restart_json
(string
) /output/restart_json\n
File name for JSON output to restart the simulation. Default: ''
/output/paraview
(object
) /output/paraview\n
Output in paraview format Default: None
/output/paraview/file_name
(string
) /output/paraview/file_name\n
Paraview output file name Default: ''
/output/paraview/vismesh_rel_area
(float
) /output/paraview/vismesh_rel_area\n
relative area for the upsampled visualisation mesh Default: 1e-05
/output/paraview/skip_frame
(int
) /output/paraview/skip_frame\n
export every skip_frame-th frames for time dependent simulations Default: 1
/output/paraview/high_order_mesh
(bool
) /output/paraview/high_order_mesh\n
Enables/disables high-order output for paraview. Supported only for isoparametric or linear meshes with high-order solutions. Default: True
/output/paraview/volume
(bool
) /output/paraview/volume\n
Export volumetric mesh Default: True
/output/paraview/surface
(bool
) /output/paraview/surface\n
Export surface mesh (in 2d polygon) Default: False
/output/paraview/wireframe
(bool
) /output/paraview/wireframe\n
Export the wireframe of the mesh Default: False
/output/paraview/points
(bool
) /output/paraview/points\n
Export the Dirichlet points Default: False
/output/paraview/options
(object
) /output/paraview/options\n
Optional fields in the output Default: None
/output/paraview/options/use_hdf5
(bool
) /output/paraview/options/use_hdf5\n
If true, export the data as hdf5, compatible with paraview >5.11 Default: False
/output/paraview/options/material
(bool
) /output/paraview/options/material\n
If true, write out material values sampled on the vertices of the mesh Default: False
/output/paraview/options/body_ids
(bool
) /output/paraview/options/body_ids\n
Export volumes ids Default: False
/output/paraview/options/contact_forces
(bool
) /output/paraview/options/contact_forces\n
If true, write out contact forces for surface Default: False
/output/paraview/options/friction_forces
(bool
) /output/paraview/options/friction_forces\n
If true, write out friction forces for surface Default: False
/output/paraview/options/velocity
(bool
) /output/paraview/options/velocity\n
If true, write out velocities Default: False
/output/paraview/options/acceleration
(bool
) /output/paraview/options/acceleration\n
If true, write out accelerations Default: False
/output/paraview/options/scalar_values
(bool
) /output/paraview/options/scalar_values\n
If true, write out scalar values Default: True
/output/paraview/options/tensor_values
(bool
) /output/paraview/options/tensor_values\n
If true, write out tensor values Default: True
/output/paraview/options/discretization_order
(bool
) /output/paraview/options/discretization_order\n
If true, write out discretization order Default: True
/output/paraview/options/nodes
(bool
) /output/paraview/options/nodes\n
If true, write out node order Default: True
/output/paraview/options/forces
(bool
) /output/paraview/options/forces\n
If true, write out all variational forces on the FE mesh Default: False
/output/data
(object
) /output/data\n
File names to write output data to. Default: None
/output/data/solution
(string
) /output/data/solution\n
Main variable solution. Unrolled [xyz, xyz, \u2026] using PolyFEM ordering. If reorder_nodes exports the solution with the same order the vertices of the input mesh as a #n x d file Default: ''
/output/data/full_mat
(string
) /output/data/full_mat\n
System matrix without boundary conditions. Doesn\u2019t work for nonlinear problems Default: ''
/output/data/stiffness_mat
(string
) /output/data/stiffness_mat\n
System matrix with boundary conditions. Doesn\u2019t work for nonlinear problems Default: ''
/output/data/stress_mat
(string
) /output/data/stress_mat\n
Exports stress Default: ''
/output/data/state
(string
) /output/data/state\n
Writes the complete state in PolyFEM hdf5 format, used to restart the sim Default: ''
/output/data/rest_mesh
(string
) /output/data/rest_mesh\n
Writes the rest mesh in MSH format, used to restart the sim Default: ''
/output/data/mises
(string
) /output/data/mises\n
File name to write per-node Von Mises stress values to. Default: ''
/output/data/nodes
(string
) /output/data/nodes\n
Writes the FEM nodes Default: ''
/output/data/advanced
(object
) /output/data/advanced\n
advanced options Default: None
/output/data/advanced/reorder_nodes
(bool
) /output/data/advanced/reorder_nodes\n
Reorder nodes accodring to input Default: False
/output/advanced
(object
) /output/advanced\n
Additional output options Default: None
/output/advanced/timestep_prefix
(string
) /output/advanced/timestep_prefix\n
Prefix for output file names for each time step, the final file is step_i.[vtu|vtm] where i is the time index. Default: 'step_'
/output/advanced/sol_on_grid
(float
) /output/advanced/sol_on_grid\n
exports the solution sampled on a grid, specify the grid spacing Default: -1
/output/advanced/compute_error
(bool
) /output/advanced/compute_error\n
Enables the computation of the error. If no reference solution is provided, return the norms of the solution Default: True
/output/advanced/sol_at_node
(int
) /output/advanced/sol_at_node\n
Write out solution values at a specific node. the values will be written in the output JSON file Default: -1
/output/advanced/vis_boundary_only
(bool
) /output/advanced/vis_boundary_only\n
saves only elements touching the boundaries Default: False
/output/advanced/curved_mesh_size
(bool
) /output/advanced/curved_mesh_size\n
upsample curved edges to compute mesh size Default: False
/output/advanced/save_solve_sequence_debug
(bool
) /output/advanced/save_solve_sequence_debug\n
saves AL internal steps, for debugging Default: False
/output/advanced/save_ccd_debug_meshes
(bool
) /output/advanced/save_ccd_debug_meshes\n
saves AL internal steps, for debugging Default: False
/output/advanced/save_time_sequence
(bool
) /output/advanced/save_time_sequence\n
saves timesteps Default: True
/output/advanced/save_nl_solve_sequence
(bool
) /output/advanced/save_nl_solve_sequence\n
saves obj after every nonlinear iteration, for debugging Default: False
/output/advanced/spectrum
(bool
) /output/advanced/spectrum\n
exports the spectrum of the matrix in the output JSON. Works only if POLYSOLVE_WITH_SPECTRA is enabled Default: False
/output/reference
(object
) /output/reference\n
Write out the analytic/numerical ground-truth solution and or its gradient Default: None
/output/reference/solution
(list
) /output/reference/solution\n
reference solution used to compute errors /output/reference/solution/*
(string
) /output/reference/solution/*\n
value as a function of \\(x,y,z,t\\) Default: ''
/output/reference/gradient
(list
) /output/reference/gradient\n
gradient of the reference solution to compute errors /output/reference/gradient/*
(string
) /output/reference/gradient/*\n
value as a function of \\(x,y,z,t\\) Default: ''
/input
(object
) /input\n
input data Default: None
/input/data
(object
) /input/data\n
input to restart time dependent sim Default: None
/input/data/state
(file
) /input/data/state\n
input state as hdf5 Default: ''
/input/data/reorder
(bool
) /input/data/reorder\n
reorder input data Default: False
/tests
(object
) /tests\n
Used to test to compare different norms of solutions. Default: None
/tests/err_h1
(float
) /tests/err_h1\n
Reference h1 solution\u2019s norm. Default: 0
/tests/err_h1_semi
(float
) /tests/err_h1_semi\n
Reference h1 seminorm solution\u2019s norm. Default: 0
/tests/err_l2
(float
) /tests/err_l2\n
Reference \\(L^2\\) solution\u2019s norm. Default: 0
/tests/err_linf
(float
) /tests/err_linf\n
Reference \\(L^\\infty\\) solution\u2019s norm. Default: 0
/tests/err_linf_grad
(float
) /tests/err_linf_grad\n
Reference \\(L^\\infty\\) solution\u2019s gradient norm. Default: 0
/tests/err_lp
(float
) /tests/err_lp\n
Reference \\(L^8\\) solution\u2019s gradient norm. Default: 0
/tests/margin
(float
) /tests/margin\n
Reference tolerance used in tests. Default: 1e-05
/tests/time_steps
/tests/time_steps\n
/tests/time_steps
(int
)/tests/time_steps
(string
) Number of time steps to test.
Default: 1
Range: [1, inf]
Number of time steps to test.
Options: ['all', 'static']
Polyfem uses modern cmake
, so it it should be enough to add this line
add_subdirectory(<path-to-polyfem> polyfem)\n
in your cmake project, and then simply add target_link_library(<your_target> polyfem)\n
in your cmake script. Polyfem will download the dependencies that it needs with the version that it needs. If you dont need the viewer for your own project you can add SET(POLYFEM_NO_UI ON)\n
"},{"location":"library/#interface","title":"Interface","text":"The interface of polyfem is similar as Python. You should create a polyfem::State
object and then call methods on it. Most of the fields are public for convenience but we discourage use or access them.
This is the main interface of polyfem::State
.
void init(const json &args)\nvoid init(const std::string &json_path)\n
loads the settings from a json object or file
"},{"location":"library/#logging","title":"Logging","text":"void set_log_level(int log_level)\nstd::string get_log()\n
Sets the log level (1-6) and gets the log at the end"},{"location":"library/#loading-mesh","title":"Loading mesh","text":"void load_mesh()\nvoid load_mesh(const std::string &path)\nvoid load_mesh(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F)\n
Different ways of loading a mesh"},{"location":"library/#set-boundary-sides-sets","title":"Set boundary sides sets","text":"void set_boundary_side_set(const std::function<int(const polyfem::RowVectorNd&)> &boundary_marker)\nvoid set_boundary_side_set(const std::function<int(const polyfem::RowVectorNd&, bool)> &boundary_marker)\nvoid set_boundary_side_set(const std::function<int(const std::vector<int>&, bool)> &boundary_marker)\n
All boundary side sets are assigned with a lambda function, the first 2 takes the barycenter of the face/edge, the last one the primite id. The second argument is a boolean that specifies if the sideset is boundary."},{"location":"library/#solving","title":"Solving","text":"void solve();\n
Note the solver internally calls
void build_basis();\nvoid assemble_stiffness_mat();\nvoid assemble_rhs();\nvoid solve_problem();\n
You can use these instead of solve. If you problem has a solution you can use
void compute_errors();\n
to obtain the error."},{"location":"library/#getters","title":"Getters","text":"const Eigen::MatrixXd &get_solution() const\nconst Eigen::MatrixXd &get_pressure() const\n
Gets the raw solution and pressure. The order of the coefficient is unrelated to the order of the vertices of the mesh. void get_sampled_solution(Eigen::MatrixXd &points, Eigen::MatrixXi &tets, Eigen::MatrixXd &fun, bool boundary_only = false)\nvoid get_stresses(Eigen::MatrixXd &fun, bool boundary_only = false)\nvoid get_sampled_mises(Eigen::MatrixXd &fun, bool boundary_only = false)\nvoid get_sampled_mises_avg(Eigen::MatrixXd &fun, Eigen::MatrixXd &tfun, bool boundary_only = false)\n
Gets the solution/stresses on the visualization mesh, use vismesh_rel_area
to control density"},{"location":"library/#exporting","title":"Exporting","text":"Exports the solution to VTU for visualization
void get_sidesets(Eigen::MatrixXd &pts, Eigen::MatrixXi &faces, Eigen::MatrixXd &sidesets);\n\nvoid export_data();\n\nvoid save_vtu(const std::string &name);\nvoid save_wire(const std::string &name, bool isolines = false);\n
"},{"location":"license/","title":"License","text":"MIT License\n\nCopyright (c) 2018 polyfem\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n
"},{"location":"polyfempy_doc/","title":"Docs","text":""},{"location":"polyfempy_doc/#class-problem","title":"class Problem","text":"Generic problem problem, scalar or tensor depending on the pde. Warning, this problem needs to be used with the set_pde
function in settings
__init__(rhs=None, exact=None)
Initialize . See help(type()) for accurate signature.
"},{"location":"polyfempy_doc/#add_dirichlet_value","title":"add_dirichlet_value","text":"add_dirichlet_value(id, value, is_dirichlet_dim=None)
set the Dirichlet value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed, only for vector-based problems.
"},{"location":"polyfempy_doc/#add_neumann_value","title":"add_neumann_value","text":"add_neumann_value(id, value)
set the Neumann value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_dirichlet_value","title":"set_dirichlet_value","text":"set_dirichlet_value(id, value, is_dirichlet_dim=None)
set the Dirichlet value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed, only for vector-based problems.
"},{"location":"polyfempy_doc/#set_displacement","title":"set_displacement","text":"set_displacement(id, value, is_dim_fixed=None)
set the displacement value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_force","title":"set_force","text":"set_force(id, value)
set the force value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_neumann_value","title":"set_neumann_value","text":"set_neumann_value(id, value)
set the Neumann value value for the sideset id. Note the value must be a scalar, vector in 2D, or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_velocity","title":"set_velocity","text":"set_velocity(id, value, is_dim_fixed=None)
set the velocity value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_x_symmetric","title":"set_x_symmetric","text":"set_x_symmetric(id)
x coorinate is fixed, y is allowed to move (Neumann)
"},{"location":"polyfempy_doc/#set_xy_symmetric","title":"set_xy_symmetric","text":"set_xy_symmetric(id)
xy coorinates are fixed, z is allowed to move (Neumann)
"},{"location":"polyfempy_doc/#set_xz_symmetric","title":"set_xz_symmetric","text":"set_xz_symmetric(id)
xz coorinates are fixed, y is allowed to move (Neumann)
"},{"location":"polyfempy_doc/#set_y_symmetric","title":"set_y_symmetric","text":"set_y_symmetric(id)
y coorinate is fixed, x is allowed to move (Neumann)
"},{"location":"polyfempy_doc/#set_yz_symmetric","title":"set_yz_symmetric","text":"set_yz_symmetric(id)
yz coorinates are fixed, x is allowed to move (Neumann)
"},{"location":"polyfempy_doc/#class-settings","title":"class Settings","text":"Class that encodes the settings of the solver, it models the input json file
"},{"location":"polyfempy_doc/#init_1","title":"init","text":"__init__(discr_order=1, pressure_discr_order=1, pde='Laplacian', nl_solver_rhs_steps=1, tend=1, time_steps=10)
Initialize . See help(type()) for accurate signature.
"},{"location":"polyfempy_doc/#serialize","title":"serialize","text":"serialize()
stringyfied json description of this class, used to run the solver
"},{"location":"polyfempy_doc/#set_advanced_option","title":"set_advanced_option","text":"set_advanced_option(key, value)
Used to set any advanced option not present in this class, for instance set_advanced_option(\u201cuse_spline\u201d,True), see https://polyfem.github.io/documentation/ for full list
"},{"location":"polyfempy_doc/#set_isolines_export_path","title":"set_isolines_export_path","text":"set_isolines_export_path(path)
Sets the path to export the isolines of the solution
"},{"location":"polyfempy_doc/#set_material_params","title":"set_material_params","text":"set_material_params(name, value)
set the material parameters, for instance set_material_params(\u201cE\u201d, 200) sets the Young\u2019s modulus E to 200. See https://polyfem.github.io/documentation/#formulations for full list
"},{"location":"polyfempy_doc/#set_pde","title":"set_pde","text":"set_pde(pde)
Sets the PDE to solve, use any of the polyfempy.PDEs
"},{"location":"polyfempy_doc/#set_problem","title":"set_problem","text":"set_problem(problem)
Sets the problem, use any of the problems in Problems or the Problem
"},{"location":"polyfempy_doc/#set_solution_export_path","title":"set_solution_export_path","text":"set_solution_export_path(path)
Sets the path to save the solution
"},{"location":"polyfempy_doc/#set_vtu_export_path","title":"set_vtu_export_path","text":"set_vtu_export_path(path, bounda_only=False)
Sets the path to export a vtu file with the results, use bounda_only to export only one layer of the mesh in 3d
"},{"location":"polyfempy_doc/#set_wireframe_export_path","title":"set_wireframe_export_path","text":"set_wireframe_export_path(path)
Sets the path to export a wireframe of the mesh
pde
Get the PDE
problem
Get the problem
"},{"location":"polyfempy_doc/#class-drivencavity","title":"class DrivenCavity","text":"Classical driven cavity problem in fluid simulation
"},{"location":"polyfempy_doc/#class-flow","title":"class Flow","text":"Inflow/outflow problem for fluids. You can specify the sideset for the moving fluxes, the axial direction of the flow, and the list of obstacle sidesets. https://polyfem.github.io/documentation/#flow
"},{"location":"polyfempy_doc/#init_2","title":"init","text":"__init__(inflow=1, outflow=3, inflow_amout=0.25, outflow_amout=0.25, direction=0, obstacle=[7])
Initialize . See help(type()) for accurate signature.
"},{"location":"polyfempy_doc/#class-franke","title":"class Franke","text":"Franke problem with exact solution https://polyfem.github.io/documentation/#franke
"},{"location":"polyfempy_doc/#class-genericscalar","title":"class GenericScalar","text":"Generic scalar problem https://polyfem.github.io/documentation/#genericscalar
"},{"location":"polyfempy_doc/#add_dirichlet_value_1","title":"add_dirichlet_value","text":"add_dirichlet_value(id, value)
add the Dirichlet value value for the sideset id
"},{"location":"polyfempy_doc/#add_neumann_value_1","title":"add_neumann_value","text":"add_neumann_value(id, value)
add the Neumann value value for the sideset id
"},{"location":"polyfempy_doc/#class-generictensor","title":"class GenericTensor","text":"Generic tensor problem https://polyfem.github.io/documentation/#generictensor
"},{"location":"polyfempy_doc/#add_dirichlet_value_2","title":"add_dirichlet_value","text":"add_dirichlet_value(id, value, is_dirichlet_dim=None)
add the Dirichlet value value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem. is_dirichlet_dim is a vector of boolean specifying which dimentions are fixed.
"},{"location":"polyfempy_doc/#add_neumann_value_2","title":"add_neumann_value","text":"add_neumann_value(id, value)
add the Neumann value value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_displacement_1","title":"set_displacement","text":"set_displacement(id, value, is_dim_fixed=None)
set the displacement value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_force_1","title":"set_force","text":"set_force(id, value)
set the force value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#set_velocity_1","title":"set_velocity","text":"set_velocity(id, value, is_dim_fixed=None)
set the velocity value for the sideset id. Note the value must be a vector in 2D or 3D depending on the problem
"},{"location":"polyfempy_doc/#class-gravity","title":"class Gravity","text":"time dependent gravity problem https://polyfem.github.io/documentation/#gravity
"},{"location":"polyfempy_doc/#init_3","title":"init","text":"__init__(force=0.1)
Initialize . See help(type()) for accurate signature.
"},{"location":"polyfempy_doc/#class-torsion","title":"class Torsion","text":"3D torsion problem, specify which sideset to fix (fixed_boundary) and which one turns turning_boundary https://polyfem.github.io/documentation/#torsionelastic
"},{"location":"polyfempy_doc/#init_4","title":"init","text":"__init__(axis_coordiante=2, n_turns=0.5, fixed_boundary=5, turning_boundary=6)
Initialize . See help(type()) for accurate signature.
"},{"location":"polyfempy_doc/#class-pdes","title":"class PDEs","text":"List of supported partial differential equations
Bilaplacian = \u2018Bilaplacian\u2019
Helmholtz = \u2018Helmholtz\u2019
HookeLinearElasticity = \u2018HookeLinearElasticity\u2019
IncompressibleLinearElasticity = \u2018IncompressibleLinearElasticity\u2019
Laplacian = \u2018Laplacian\u2019
LinearElasticity = \u2018LinearElasticity\u2019
NeoHookean = \u2018NeoHookean\u2019
NonLinearElasticity = \u2018NonLinearElasticity\u2019
SaintVenant = \u2018SaintVenant\u2019
Stokes = \u2018Stokes\u2019
"},{"location":"polyfempy_doc/#class-scalarformulations","title":"class ScalarFormulations","text":"Bilaplacian = \u2018Bilaplacian\u2019
Helmholtz = \u2018Helmholtz\u2019
Laplacian = \u2018Laplacian\u2019
"},{"location":"polyfempy_doc/#class-solver","title":"class Solver","text":"Polyfem solver
"},{"location":"polyfempy_doc/#compute_errors","title":"compute_errors","text":"compute_errors()
compute the error
"},{"location":"polyfempy_doc/#export_data","title":"export_data","text":"export_data()
exports all data specified in the settings
"},{"location":"polyfempy_doc/#export_vtu","title":"export_vtu","text":"export_vtu(path: str)
exports the solution as vtu
"},{"location":"polyfempy_doc/#export_wire","title":"export_wire","text":"export_wire(path: str, isolines: bool = False)
exports wireframe of the mesh
"},{"location":"polyfempy_doc/#get_boundary_sidesets","title":"get_boundary_sidesets","text":"get_boundary_sidesets() -> tuple
exports get the boundary sideset, edges in 2d or trangles in 3d
"},{"location":"polyfempy_doc/#get_log","title":"get_log","text":"get_log() -> str
gets the log as json
"},{"location":"polyfempy_doc/#get_pressure","title":"get_pressure","text":"get_pressure() -> array
returns the pressure
"},{"location":"polyfempy_doc/#get_sampled_connectivity_frames","title":"get_sampled_connectivity_frames","text":"get_sampled_connectivity_frames() -> List[array]
returns the connectivity frames for a time dependent problem on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_mises","title":"get_sampled_mises","text":"get_sampled_mises(boundary_only: bool = False) -> array
returns the von mises stresses on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_mises_avg","title":"get_sampled_mises_avg","text":"get_sampled_mises_avg(boundary_only: bool = False) -> tuple
returns the von mises stresses and stress tensor averaged around a vertex on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_mises_avg_frames","title":"get_sampled_mises_avg_frames","text":"get_sampled_mises_avg_frames() -> List[array]
returns the von mises stresses per frame averaged around a vertex on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_mises_frames","title":"get_sampled_mises_frames","text":"get_sampled_mises_frames() -> List[array]
returns the von mises stresses frames on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_points_frames","title":"get_sampled_points_frames","text":"get_sampled_points_frames() -> List[array]
returns the points frames for a time dependent problem on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_solution","title":"get_sampled_solution","text":"get_sampled_solution(boundary_only: bool = False) -> tuple
returns the solution on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_sampled_solution_frames","title":"get_sampled_solution_frames","text":"get_sampled_solution_frames() -> List[array]
returns the solution frames for a time dependent problem on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#get_solution","title":"get_solution","text":"get_solution() -> array
returns the solution
"},{"location":"polyfempy_doc/#get_stresses","title":"get_stresses","text":"get_stresses(boundary_only: bool = False) -> array
returns the stress tensor on a densly sampled mesh, use \u2018vismesh_rel_area\u2019 to control density
"},{"location":"polyfempy_doc/#load_mesh_from_path","title":"load_mesh_from_path","text":"load_mesh_from_path(path: str, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from the path and \u2018bc_tag\u2019 from the json if any bc tags
"},{"location":"polyfempy_doc/#load_mesh_from_path_and_tags","title":"load_mesh_from_path_and_tags","text":"load_mesh_from_path_and_tags(path: str, bc_tag_path: str, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh and bc_tags from path
"},{"location":"polyfempy_doc/#load_mesh_from_settings","title":"load_mesh_from_settings","text":"load_mesh_from_settings(normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from the \u2018mesh\u2019 field of the json and \u2018bc_tag\u2019 if any bc tags
"},{"location":"polyfempy_doc/#set_boundary_side_set_from_bary","title":"set_boundary_side_set_from_bary","text":"set_boundary_side_set_from_bary(boundary_marker: Callable[[array[float64[1, n]]], int])
Sets the side set for the boundary conditions, the functions takes the barycenter of the boundary (edge or face)
"},{"location":"polyfempy_doc/#set_boundary_side_set_from_bary_and_boundary","title":"set_boundary_side_set_from_bary_and_boundary","text":"set_boundary_side_set_from_bary_and_boundary(boundary_marker: Callable[[array[float64[1, n]], bool], int])
Sets the side set for the boundary conditions, the functions takes the barycenter of the boundary (edge or face) and a flag that says if the element is boundary
"},{"location":"polyfempy_doc/#set_boundary_side_set_from_v_ids","title":"set_boundary_side_set_from_v_ids","text":"set_boundary_side_set_from_v_ids(boundary_marker: Callable[[List[int], bool], int])
Sets the side set for the boundary conditions, the functions takes the sorted list of vertex id and a flag that says if the element is boundary
"},{"location":"polyfempy_doc/#set_high_order_mesh","title":"set_high_order_mesh","text":"set_high_order_mesh(vertices: array, connectivity: array, nodes_pos: array, nodes_indices: List[List[int]], normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads an high order mesh from vertices, connectivity, nodes, and node indices mapping element to nodes
"},{"location":"polyfempy_doc/#set_log_level","title":"set_log_level","text":"set_log_level(log_level: int)
sets polyfem log level, valid value between 0 (all logs) and 6 (no logs)
"},{"location":"polyfempy_doc/#set_mesh","title":"set_mesh","text":"set_mesh(vertices: array, connectivity: array, normalize_mesh: bool = False, vismesh_rel_area: float = 1e-05, n_refs: int = 0, boundary_id_threshold: float = -1.0)
Loads a mesh from vertices and connectivity
"},{"location":"polyfempy_doc/#set_rhs","title":"set_rhs","text":"set_rhs(matrix: array)
Sets the rhs
"},{"location":"polyfempy_doc/#set_rhs_from_path","title":"set_rhs_from_path","text":"set_rhs_from_path(path: str)
Loads the rhs from a file
"},{"location":"polyfempy_doc/#set_settings","title":"set_settings","text":"set_settings(json: object)
load PDE and problem parameters from the settings
"},{"location":"polyfempy_doc/#settings","title":"settings","text":"settings(json: object)
load PDE and problem parameters from the settings
"},{"location":"polyfempy_doc/#solve","title":"solve","text":"solve()
solve the pde
"},{"location":"polyfempy_doc/#class-tensorformulations","title":"class TensorFormulations","text":"HookeLinearElasticity = \u2018HookeLinearElasticity\u2019
IncompressibleLinearElasticity = \u2018IncompressibleLinearElasticity\u2019
LinearElasticity = \u2018LinearElasticity\u2019
NeoHookean = \u2018NeoHookean\u2019
NonLinearElasticity = \u2018NonLinearElasticity\u2019
SaintVenant = \u2018SaintVenant\u2019
Stokes = \u2018Stokes\u2019
"},{"location":"polysolve/","title":"PolySolve","text":"This library contains a cross-platform Eigen wrapper for many different external linear solvers including (but not limited to):
const std::string solver_name = \"Hypre\"\nauto solver = LinearSolver::create(solver_name, \"\");\n\n// Configuration parameters like iteration or accuracy for iterative solvers\n// solver->setParameters(params);\n\n// System sparse matrix\nEigen::SparseMatrix<double> A;\n\n// Right-hand side\nEigen::VectorXd b;\n\n// Solution\nEigen::VectorXd x(b.size());\n\nsolver->analyzePattern(A, A.rows());\nsolver->factorize(A);\nsolver->solve(b, x);\n
You can use LinearSolver::availableSolvers()
to obtain the list of available solvers.
Polysolve uses a JSON file to provide parameters to the individual solvers. The following template can be used as a starting point, and a more detailed explanation of the parameters is below.
{\n\"Eigen::LeastSquaresConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Eigen::DGMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Eigen::ConjugateGradient\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Eigen::BiCGSTAB\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Eigen::GMRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Eigen::MINRES\": {\n\"max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"Pardiso\": {\n\"mtype\": -1\n},\n\"Hypre\": {\n\"max_iter\": 1000,\n\"pre_max_iter\": 1000,\n\"tolerance\": 1e-6\n},\n\"AMGCL\": {\n\"precond\": {\n\"relax\": {\n\"degree\": 16,\n\"type\": \"chebyshev\",\n\"power_iters\": 100,\n\"higher\": 2,\n\"lower\": 0.008333333333,\n\"scale\": true\n},\n\"class\": \"amg\",\n\"max_levels\": 6,\n\"direct_coarse\": false,\n\"ncycle\": 2,\n\"coarsening\": {\n\"type\": \"smoothed_aggregation\",\n\"estimate_spectral_radius\": true,\n\"relax\": 1,\n\"aggr\": {\n\"eps_strong\": 0\n}\n}\n},\n\"solver\": {\n\"tol\": 1e-10,\n\"maxiter\": 1000,\n\"type\": \"cg\"\n}\n}\n}\n
"},{"location":"polysolve/#iterative-solvers-amgcl-eigen-internal-solvers-hypre","title":"Iterative solvers (AMGCL, Eigen Internal Solvers, HYPRE)","text":"max_iter
controls the solver\u2019s iterations, default 1000
conv_tol
, tolerance
controls the convergence tolerance, default 1e-10
pre_max_iter
, number of pre iterations, default 1
The default parameters of the AMGCL solver are:
{\n\"precond\": {\n\"relax\": {\n\"degree\": 16,\n\"type\": \"chebyshev\",\n\"power_iters\": 100,\n\"higher\": 2,\n\"lower\": 0.008333333333,\n\"scale\": true\n},\n\"class\": \"amg\",\n\"max_levels\": 6,\n\"direct_coarse\": false,\n\"ncycle\": 2,\n\"coarsening\": {\n\"type\": \"smoothed_aggregation\",\n\"estimate_spectral_radius\": true,\n\"relax\": 1,\n\"aggr\": {\n\"eps_strong\": 0\n}\n}\n},\n\"solver\": {\n\"tol\": 1e-10,\n\"maxiter\": 1000,\n\"type\": \"cg\"\n}\n}\n
For a more details and options refer to the AMGCL documentation.
"},{"location":"polysolve/#pardiso","title":"Pardiso","text":"mtype
, sets the matrix type, default 11
Warning
The python bindings are in beta. Expect API changes and possible bugs. Use at your own peril!
I am making efforts to provide a simple python interface to Polyfem.
For doing so I am maintaining a conda package which can be easily installed https://anaconda.org/conda-forge/polyfempy.
Note that the conda deployment is slow and this tutorial will follow the deployment version.
If you hare in a hurry for the juicy latest feature you can clone the repository Polyfem-python and use pip
to install:
python setup.py develop\n
and python setup.py test\n
for testing. Note that the folders tests contain some tests which can be used as documentation.
The documentation can be found here.
"},{"location":"python/#tutorial","title":"Tutorial","text":"Polyfem relies on 3 main objects:
Settings
that contains the main settings such discretization order (e.g., \\(P_1\\) or \\(P_2\\)), material parameters, formulation, etc.Problem
that describe the problem you want to solve, that is the boundary conditions and right-hand side. There are some predefined problems, such as DrivenCavity
, or generic problems, such as GenericTensor
.Solver
that is the actual FEM solver.The usage of specific problems is indented for benchmarking, in general you want to use the GenericTensor
for tensor-based PDEs (e.g., elasticity) or GenericScalar
for scalar PDEs (e.g., Poisson).
A typical use of Polyfem is:
settings = polyfempy.Settings()\n# set necessary settings\n# e.g. settings.discr_order = 2\n\nproblem = polyfempy.GenericTensor() # or any other problem\n# set problem related data\n# e.g. problem.set_displacement(1, [0, 0], [True, False])\n\nsettings.problem = problem\n\n#now we can create a solver and solve\nsolver = polyfempy.Solver()\n\nsolver.settings(settings)\nsolver.load_mesh_from_path(mesh_path)\n\nsolver.solve()\n
Note 1: for legacy reasons Polyfem always normalizes the mesh (i.e., rescale it to lay in the \\([0,1]^d\\) box, you can use normalize_mesh = False
while loading to disable this feature.
Note 2: the solution \\(u(x)\\) of a FEM solver are the coefficients \\(u_i\\) you need to multiply the bases \\(\\varphi_i(x)\\) with: $$ u(x)=\\sum u_i \\varphi_i(x). $$ The coefficients \\(u_i\\) are unrelated with the mesh vertices because of reordering of the nodes or high-order bases. For instance \\(P_2\\) bases have additional nodes on the edges which do not exist in the mesh.
For this reason Polyfem uses a visualization mesh where the solution is sampled at the vertices. This mesh has two advantages: 1. it solves the problem of nodes reordering and additional nodes in the same way 2. it provides a \u201ctrue\u201d visualization for high order solution by densely sampling each element (a \\(P_2\\) solution is a piecewise quadratic function which is visualized in a picewise linear fashion, thus the need of a dense element sampling).
To control the resolution of the visualization mesh use vismesh_rel_area
named-argument while loading.
For more details and nice interactive example go to the notebook tutorial!
Or just play with the tutorial in
"},{"location":"python_examples/","title":"Jupyter Tutorial","text":"This is a jupyter notebook. The \"real\" notebook can be found here.
Polyfem relies on 3 main objects:
Settings
that contains the main settings such discretization order (e.g., $P_1$ or $P_2$), material parameters, formulation, etc.Problem
that describe the problem you want to solve, that is the boundary conditions and right-hand side. There are some predefined problems, such as DrivenCavity
, or generic problems, such as GenericTensor
.Solver
that is the actual FEM solver.The usage of specific problems is indented for benchmarking, in general you want to use the GenericTensor
for tensor-based PDEs (e.g., elasticity) or GenericScalar
for scalar PDEs (e.g., Poisson).
A typical use of Polyfem is:
settings = polyfempy.Settings(\n pde=polyfempy.PDEs.LinearElasticity, # or any other PDE\n discr_order=2\n)\n# set necessary settings\n# e.g. settings.discr_order = 2\n\nproblem = polyfempy.Problem() # or any other problem\n# set problem related data\n# e.g. problem.set_displacement(1, [0, 0], [True, False])\n\nsettings.problem = problem\n\n#now we can create a solver and solve\nsolver = polyfempy.Solver()\n\nsolver.settings(settings)\nsolver.load_mesh_from_path(mesh_path, normalize_mesh=False)\n\nsolver.solve()\n
Note 1: for legacy reasons Polyfem always normalizes the mesh (i.e., rescale it to lay in the $[0,1]^d$ box, you can use normalize_mesh=False
when loading to disable this feature.
Note 2: the solution $u(x)$ of a FEM solver are the coefficients $u_i$ you need to multiply the bases $\\varphi_i(x)$ with: $$ u(x)=\\sum u_i \\varphi_i(x). $$ The coefficients $u_i$ are unrelated with the mesh vertices because of reordering of the nodes or high-order bases. For instance $P_2$ bases have additional nodes on the edges which do not exist in the mesh.
For this reason Polyfem uses a visualization mesh where the solution is sampled at the vertices. This mesh has two advantages:
To control the resolution of the visualization mesh use vismesh_rel_area
while loading.
Some imports for plotting
In\u00a0[\u00a0]: Copied!import meshplot as mp\nimport meshplot as mp
algebra
In\u00a0[\u00a0]: Copied!import numpy as np\nimport numpy as np
and finally polyfempy
import polyfempy as pf\nimport polyfempy as pf
Creates a quad mesh of n_pts
x n_pts
in the form of a regular grid
def create_quad_mesh(n_pts):\n extend = np.linspace(0,1,n_pts)\n x, y = np.meshgrid(extend, extend, sparse=False, indexing='xy')\n pts = np.column_stack((x.ravel(), y.ravel()))\n \n faces = np.ndarray([(n_pts-1)**2, 4],dtype=np.int32)\n\n index = 0\n for i in range(n_pts-1):\n for j in range(n_pts-1):\n faces[index, :] = np.array([\n j + i * n_pts,\n j+1 + i * n_pts,\n j+1 + (i+1) * n_pts,\n j + (i+1) * n_pts\n ])\n index = index + 1\n \n return pts, faces\ndef create_quad_mesh(n_pts): extend = np.linspace(0,1,n_pts) x, y = np.meshgrid(extend, extend, sparse=False, indexing='xy') pts = np.column_stack((x.ravel(), y.ravel())) faces = np.ndarray([(n_pts-1)**2, 4],dtype=np.int32) index = 0 for i in range(n_pts-1): for j in range(n_pts-1): faces[index, :] = np.array([ j + i * n_pts, j+1 + i * n_pts, j+1 + (i+1) * n_pts, j + (i+1) * n_pts ]) index = index + 1 return pts, faces
This is the python version of the plate with hole example explained here.
Set the mesh path
In\u00a0[\u00a0]: Copied!mesh_path = \"plane_hole.obj\"\nmesh_path = \"plane_hole.obj\"
create settings:
settings = pf.Settings(\n discr_order=1,\n pde=pf.PDEs.LinearElasticity\n)\nsettings = pf.Settings( discr_order=1, pde=pf.PDEs.LinearElasticity )
and choose Young's modulus and poisson ratio
In\u00a0[\u00a0]: Copied!settings.set_material_params(\"E\", 210000)\nsettings.set_material_params(\"nu\", 0.3)\nsettings.set_material_params(\"E\", 210000) settings.set_material_params(\"nu\", 0.3)
Next we setup the problem
In\u00a0[\u00a0]: Copied!problem = pf.Problem()\nproblem = pf.Problem()
sideset 1 has symetric boundary in $x$
In\u00a0[\u00a0]: Copied!problem.set_x_symmetric(1)\nproblem.set_x_symmetric(1)
sideset 4 has symmetric boundary in $y$
In\u00a0[\u00a0]: Copied!problem.set_y_symmetric(4)\nproblem.set_y_symmetric(4)
sideset 3 has a force of [100, 0] applied
In\u00a0[\u00a0]: Copied!problem.set_force(3, [100, 0])\nproblem.set_force(3, [100, 0])
fianally set the problem
In\u00a0[\u00a0]: Copied!settings.problem = problem\nsettings.problem = problem
Solve! Note: we normalize the mesh to be in $[0,1]^2$
In\u00a0[\u00a0]: Copied!solver = pf.Solver()\n\nsolver.settings(settings)\nsolver.load_mesh_from_path(mesh_path, normalize_mesh=True)\n\nsolver.solve()\nsolver = pf.Solver() solver.settings(settings) solver.load_mesh_from_path(mesh_path, normalize_mesh=True) solver.solve()
Get the solution
In\u00a0[\u00a0]: Copied!pts, tets, disp = solver.get_sampled_solution()\npts, tets, disp = solver.get_sampled_solution()
diplace the mesh
In\u00a0[\u00a0]: Copied!vertices = pts + disp\nvertices = pts + disp
and get the stresses
In\u00a0[\u00a0]: Copied!mises, _ = solver.get_sampled_mises_avg()\nmises, _ = solver.get_sampled_mises_avg()
finally plot with the above code
In\u00a0[\u00a0]: Copied!mp.plot(vertices, tets, mises, return_plot=True)\nmp.plot(vertices, tets, mises, return_plot=True)
Note that we used get_sampled_mises_avg
to get the Von Mises stresses because they depend on the Jacobian of the displacement which, becase we use $P_1$ elements, is piece-wise constant. To avoid that effect in get_sampled_mises_avg
the mises are averaged per vertex weighted by the area of the triangles. If you want the \"real\" mises just call
mises = solver.get_sampled_mises()\nmp.plot(vertices, tets, mises, return_plot=True)\nmises = solver.get_sampled_mises() mp.plot(vertices, tets, mises, return_plot=True)
This is the same example as before, but we use wildmeshing
to create a curved mesh.
import wildmeshing as wm\nmesh_path = \"plane_hole.svg\"\n\nv, f, nodes, F_nodes = wm.triangulate_svg(mesh_path, cut_outside=True)\nimport wildmeshing as wm mesh_path = \"plane_hole.svg\" v, f, nodes, F_nodes = wm.triangulate_svg(mesh_path, cut_outside=True)
Now we proceed as before
In\u00a0[\u00a0]: Copied!#create settings\nsettings = pf.Settings(\n discr_order=1, #pick linear P_1 elements, even if the geometry is P_3\n pde=pf.PDEs.LinearElasticity #Linear elasticity\n)\n\n#Material parameters\nsettings.set_material_params(\"E\", 210000)\nsettings.set_material_params(\"nu\", 0.3)\n#create settings settings = pf.Settings( discr_order=1, #pick linear P_1 elements, even if the geometry is P_3 pde=pf.PDEs.LinearElasticity #Linear elasticity ) #Material parameters settings.set_material_params(\"E\", 210000) settings.set_material_params(\"nu\", 0.3)
Next we setup the problem as before
In\u00a0[\u00a0]: Copied!problem = pf.Problem()\n\n#sideset 1 is symmetric in x\nproblem.set_x_symmetric(1)\n\n#sideset 4 is symmetric in y\nproblem.set_y_symmetric(4)\n\n#sideset 3 has a force of [100, 0] applied\nproblem.set_force(3, [100, 0])\nproblem = pf.Problem() #sideset 1 is symmetric in x problem.set_x_symmetric(1) #sideset 4 is symmetric in y problem.set_y_symmetric(4) #sideset 3 has a force of [100, 0] applied problem.set_force(3, [100, 0])
fianally set the problem
In\u00a0[\u00a0]: Copied!settings.problem = problem\nsettings.problem = problem
Create the solver and load the high-order mesh, the only difference with respect to before
In\u00a0[\u00a0]: Copied!solver = pf.Solver()\n\nsolver.settings(settings)\nsolver.set_high_order_mesh(v, f, nodes, F_nodes, normalize_mesh=True)\nsolver = pf.Solver() solver.settings(settings) solver.set_high_order_mesh(v, f, nodes, F_nodes, normalize_mesh=True)
And finally, solve!
In\u00a0[\u00a0]: Copied!solver.solve()\nsolver.solve()
Get and plot the solution, same as before
In\u00a0[\u00a0]: Copied!pts, tets, disp = solver.get_sampled_solution()\n\n#diplace the mesh\nvertices = pts + disp\n\n#get the stresses\nmises, _ = solver.get_sampled_mises_avg()\n\n#plot\nmp.plot(vertices, tets, mises, return_plot=True)\npts, tets, disp = solver.get_sampled_solution() #diplace the mesh vertices = pts + disp #get the stresses mises, _ = solver.get_sampled_mises_avg() #plot mp.plot(vertices, tets, mises, return_plot=True)
Non-linear example. We want to torque a 3D bar around the $z$ direction.
The example is really similar as the one just above.
Sets the mesh, create a solver, and load the mesh.
In this case the mesh has already the correct size. We also choose a coarse visualization mesh
In\u00a0[\u00a0]: Copied!mesh_path = \"square_beam_h.HYBRID\"\nsolver = pf.Solver()\nsolver.load_mesh_from_path(mesh_path, normalize_mesh=False, vismesh_rel_area=0.001)\nmesh_path = \"square_beam_h.HYBRID\" solver = pf.Solver() solver.load_mesh_from_path(mesh_path, normalize_mesh=False, vismesh_rel_area=0.001)
We want to use the default sideset marking, top of the mesh is 5 and bottom is 6.
Let's verify. We first extract the sidesets: p
are some point, t
triangles, and s
the sidesets from 1 to 6
p, t, s = solver.get_boundary_sidesets()\np, t, s = solver.get_boundary_sidesets()
Now we can plot it
In\u00a0[\u00a0]: Copied!tmp = np.zeros_like(s)\ntmp[s==5] = 1\ntmp[s==6] = 1\n\nmp.plot(p, t, tmp, return_plot=True)\ntmp = np.zeros_like(s) tmp[s==5] = 1 tmp[s==6] = 1 mp.plot(p, t, tmp, return_plot=True)
Now we create the settings, as before.
Note: It is an hex-mesh so we are using $Q_1$.
Differently from before we want a non-linear material model: NeoHookean.
To avoid ambiguities in the rotation, we want to do 5 steps of incremental loading.
In\u00a0[\u00a0]: Copied!settings = pf.Settings(\n discr_order=1,\n pde=pf.PDEs.NonLinearElasticity,\n \n nl_solver_rhs_steps=5\n)\nsettings = pf.Settings( discr_order=1, pde=pf.PDEs.NonLinearElasticity, nl_solver_rhs_steps=5 )
Choose Young's modulus and Poisson's ratio, as before
In\u00a0[\u00a0]: Copied!settings.set_material_params(\"E\", 200)\nsettings.set_material_params(\"nu\", 0.35)\nsettings.set_material_params(\"E\", 200) settings.set_material_params(\"nu\", 0.35)
Now we setup problem with fixed sideset (5), rotating sideset (6), ahlf a tour along the $z$-axis.
In\u00a0[\u00a0]: Copied!problem = pf.Torsion(\n fixed_boundary=5, #sideset 5 is fixed\n turning_boundary=6, #sideset 6 rotates\n \n n_turns = 0.5, #by half a tour\n \n axis_coordiante=2, #around the z-axis, 2\n \n)\nproblem = pf.Torsion( fixed_boundary=5, #sideset 5 is fixed turning_boundary=6, #sideset 6 rotates n_turns = 0.5, #by half a tour axis_coordiante=2, #around the z-axis, 2 )
and set the problem and solve
In\u00a0[\u00a0]: Copied!settings.problem = problem\n\n#solving!\nsolver.settings(settings)\n\nsolver.solve()\nsettings.problem = problem #solving! solver.settings(settings) solver.solve()
takes approx 1 min because it is a complicated non-linear problem!
Get solution and stesses as before
Since we want to show only the surface there is no need of getting the whole volume, so we set boundary_only
to True
pts, tets, disp = solver.get_sampled_solution(boundary_only=True)\nvertices = pts + disp\nmises, _ = solver.get_sampled_mises_avg(boundary_only=True)\npts, tets, disp = solver.get_sampled_solution(boundary_only=True) vertices = pts + disp mises, _ = solver.get_sampled_mises_avg(boundary_only=True)
and plot the 3d result!
In\u00a0[\u00a0]: Copied!mp.plot(vertices, tets, mises, shading={\"flat\":True}, return_plot=True)\nmp.plot(vertices, tets, mises, shading={\"flat\":True}, return_plot=True)
Create the mesh using the utility function
In\u00a0[\u00a0]: Copied!pts, faces = create_quad_mesh(50)\npts, faces = create_quad_mesh(50)
create settings, pick linear $Q_2$ elements for velocity and $Q_1$ for pressure and select stokes as material model.
In\u00a0[\u00a0]: Copied!settings = pf.Settings(\n discr_order=2,\n pressure_discr_order=1,\n \n pde=pf.PDEs.Stokes\n)\nsettings = pf.Settings( discr_order=2, pressure_discr_order=1, pde=pf.PDEs.Stokes )
Set the viscosity of the fluid
In\u00a0[\u00a0]: Copied!settings.set_material_params(\"viscosity\", 1)\nsettings.set_material_params(\"viscosity\", 1)
The default solver do not support mixed formulation, we need to choose UmfPackLU
settings.set_advanced_option(\"solver_type\", \"Eigen::UmfPackLU\")\nsettings.set_advanced_option(\"solver_type\", \"Eigen::UmfPackLU\")
We use the standard Driven Cavity problem
In\u00a0[\u00a0]: Copied!problem = pf.DrivenCavity()\nproblem = pf.DrivenCavity()
we set the problem
In\u00a0[\u00a0]: Copied!settings.problem = problem\nsettings.problem = problem
We create the solver and set the settings
In\u00a0[\u00a0]: Copied!solver = pf.Solver()\nsolver.settings(settings)\nsolver = pf.Solver() solver.settings(settings)
This time we are using pts and faces instead of loading from the disk
In\u00a0[\u00a0]: Copied!solver.set_mesh(pts, faces, vismesh_rel_area=0.001)\nsolver.set_mesh(pts, faces, vismesh_rel_area=0.001)
Solve!
In\u00a0[\u00a0]: Copied!solver.solve()\nsolver.solve()
We now get the solution and the pressure
In\u00a0[\u00a0]: Copied!pts, tris, velocity = solver.get_sampled_solution()\npts, tris, velocity = solver.get_sampled_solution()
and plot it!
In\u00a0[\u00a0]: Copied!each = 10\np = mp.plot(pts, tris, np.linalg.norm(velocity, axis=1), return_plot=True)\np.add_lines(pts[0:pts.shape[0]:each,:], pts[0:pts.shape[0]:each,:]+velocity[0:pts.shape[0]:each,:]/6)\np\neach = 10 p = mp.plot(pts, tris, np.linalg.norm(velocity, axis=1), return_plot=True) p.add_lines(pts[0:pts.shape[0]:each,:], pts[0:pts.shape[0]:each,:]+velocity[0:pts.shape[0]:each,:]/6) p
Create the mesh using the utility function
In\u00a0[\u00a0]: Copied!pts, faces = create_quad_mesh(50)\npts, faces = create_quad_mesh(50)
create settings, pick linear $Q_1$ elements, and a linear material model.
In this case we want to run a simulation with $t\\in[0, 10]$ and have 50 time steps.
In\u00a0[\u00a0]: Copied!settings = pf.Settings(\n discr_order=1,\n pde=pf.PDEs.LinearElasticity,\n \n tend=10,\n time_steps=50\n)\nsettings = pf.Settings( discr_order=1, pde=pf.PDEs.LinearElasticity, tend=10, time_steps=50 )
Choose Young's modulus and poisson ratio
In\u00a0[\u00a0]: Copied!settings.set_material_params(\"E\", 1)\nsettings.set_material_params(\"nu\", 0.3)\nsettings.set_material_params(\"E\", 1) settings.set_material_params(\"nu\", 0.3)
Next we setup the problem, this doesnt have any parameters. It will...
In\u00a0[\u00a0]: Copied!problem = pf.Gravity()\nproblem = pf.Gravity()
we set the problem
In\u00a0[\u00a0]: Copied!settings.problem = problem\nsettings.problem = problem
We create the solver and set the settings
In\u00a0[\u00a0]: Copied!solver = pf.Solver()\nsolver.settings(settings)\nsolver = pf.Solver() solver.settings(settings)
This time we are using pts
and faces
instead of loading from the disk (For efficienty in the browser we select a coarse vis mesh)
solver.set_mesh(pts, faces, vismesh_rel_area=0.001)\nsolver.set_mesh(pts, faces, vismesh_rel_area=0.001)
Solve!
In\u00a0[\u00a0]: Copied!solver.solve()\nsolver.solve()
Get the solution and the mises
In\u00a0[\u00a0]: Copied!pts = solver.get_sampled_points_frames()\ntris = solver.get_sampled_connectivity_frames()\ndisp = solver.get_sampled_solution_frames()\nmises = solver.get_sampled_mises_avg_frames()\npts = solver.get_sampled_points_frames() tris = solver.get_sampled_connectivity_frames() disp = solver.get_sampled_solution_frames() mises = solver.get_sampled_mises_avg_frames() In\u00a0[\u00a0]: Copied!
def plot(frame, p=None):\n return mp.plot(pts[frame]+disp[frame], tris[frame], mises[frame], return_plot=True, plot=p)\ndef plot(frame, p=None): return mp.plot(pts[frame]+disp[frame], tris[frame], mises[frame], return_plot=True, plot=p)
Before the animation, let's plot the solution some frames
In\u00a0[\u00a0]: Copied!plot(0)\nplot(0) In\u00a0[\u00a0]: Copied!
plot(5)\nplot(5) In\u00a0[\u00a0]: Copied!
plot(11)\nplot(11)
Now we are ready to do the animation
In\u00a0[\u00a0]: Copied!p = plot(0)\n\n@mp.interact(frame=(0, len(mises)))\ndef step(frame=0):\n plot(frame, p)\np = plot(0) @mp.interact(frame=(0, len(mises))) def step(frame=0): plot(frame, p)"},{"location":"python_examples/#polyfem-python-tutorial","title":"Polyfem Python Tutorial\u00b6","text":""},{"location":"python_examples/#examples","title":"Examples\u00b6","text":""},{"location":"python_examples/#utility","title":"Utility\u00b6","text":""},{"location":"python_examples/#plate-hole","title":"Plate hole\u00b6","text":""},{"location":"python_examples/#plate-hole-with-high-order-mesh","title":"Plate hole with High-Order Mesh\u00b6","text":""},{"location":"python_examples/#torsion","title":"Torsion\u00b6","text":""},{"location":"python_examples/#fluid-simulation","title":"Fluid simulation\u00b6","text":""},{"location":"python_examples/#time-dependent-simulation","title":"Time dependent simulation\u00b6","text":""},{"location":"details/contact/","title":"Contact","text":"
PolyFEM uses Incremental Potential Contact (IPC) [Li et al. 2020] to handle contacts.
IPC in PolyFEM is implemented through the use of the IPC Toolkit.
Todo
Describe the IPC formulation and parameters.
"},{"location":"details/formulations/","title":"Formulations","text":"The following formulations are available in the PolyFEM list of possible formulations. The constants can be set in params
. All formulations support boundary conditions. For the elasticity formulations we output:
Cauchy stress tensor
\\[ \\sigma = \\frac 1 J \\frac{\\partial \\Psi}{\\partial F} F^T \\]Frist Piola Kirchhoff stress tensor (Wikipedia)
\\[ P = J \\sigma F^{-T} \\]Second Piola Kirchhoff stress tensor (Wikipedia)
\\[ S = J F^{-1} \\sigma F^{-T}, \\]where \\(\\Psi\\) is the energy density, \\(F\\) the deformation gradient, and \\(J=\\det(F)\\).
"},{"location":"details/formulations/#scalar","title":"Scalar","text":""},{"location":"details/formulations/#laplacian","title":"Laplacian","text":"E
/nu
, lambda
/mu
elasticity_tensor
, E
/nu
, lambda
/mu
where \\(C\\) is the elasticity tensor
"},{"location":"details/formulations/#incompressible-linear-elasticity-mixed","title":"Incompressible Linear Elasticity (mixed)","text":"E
/nu
, lambda
/mu
elasticity_tensor
, E
/nu
, lambda
/mu
where \\(C\\) is the elasticity tensor
"},{"location":"details/formulations/#neohookean-elasticity","title":"NeoHookean Elasticity","text":"E
/nu
, lambda
/mu
c1
/c2
/k=1
where \\(d\\) is the dimension (2 or 3),
\\[\\begin{align} F = \\nabla u + I, \\quad J = \\det(F), \\quad \\tilde{F} = \\frac{1}{\\sqrt[d]{J}} F, \\quad \\widetilde{C} = \\widetilde{F} \\widetilde{F}^T, \\\\ \\widetilde{I_1} = \\text{tr}\\left(\\widetilde{C}\\right), \\quad \\text{and} \\quad \\widetilde{I_2} = \\frac{1}{2} \\left(\\left(\\trace{\\widetilde{C}}\\right)^2 - \\text{tr}\\left(\\widetilde{C}^2\\right)\\right). \\end{align}\\]c
/m
/k
where \\(N\\), the number of terms, is dictated by the number of coefficients given, \\(d\\) is the dimension (2 or 3), \\(J = \\det(F)\\) where \\(F = \\nabla u + I\\), and \\(\\tilde{\\lambda}_j = J^{-\\frac{1}{d}}\\lambda_j\\) are the eigenvalues of \\(\\tilde{F}\\) (same as in the Mooney-Rivlin Elasticity).
mus
/alphas
/Ds
where \\(N\\), the number of terms, is dictated by the number of coefficients given, \\(d\\) is the dimension (2 or 3), \\(J = \\det(F)\\) where \\(F = \\nabla u + I\\), and \\(\\tilde{\\lambda}_j = J^{-\\frac{1}{d}}\\lambda_j\\) where \\(\\lambda_j\\) are the eigenvalues of \\(F.\\)
phi
/psi
where \\(F[u] = \\nabla u + I\\) and \\(E[u] = \\frac{1}{2}(F^TF-I)\\).
The above corresponds to the viscous Piola-Kirchhoff stress
\\[ P=F(2\\psi\\dot{E}+\\phi\\text{tr}(\\dot{E})I)=\\nabla_2 R(F,\\dot{F}). \\]"},{"location":"details/formulations/#stokes-mixed","title":"Stokes (mixed)","text":"viscosity
(\\(\\nu\\))viscosity
(\\(\\nu\\))Todo
Describe how to implement a new formulation in C++.
"},{"location":"details/miscellaneous/","title":"Miscellaneous","text":""},{"location":"details/miscellaneous/#understanding-solver-logs","title":"Understanding solver logs","text":"The nonlinear solver will log a debug message per iteration with some useful information. Take the following example log:
[polyfem] [debug] [Newton] iter=51 f=-1.06006e-06 ||\u2207f||=0.006432 ||\u0394x||=0.0037612 \u0394x\u22c5\u2207f(x)=-6.71732e-08 g=9.69072e-05 tol=1e-05 rate=0.0321861 ||step||=0.000121058\n
The terms in order they appear are:
iter
: the iteration numberf
: the value of the objective function||\u2207f||
: the \\(L^2\\)-norm of the gradient of f
||\u0394x||
: the \\(L^2\\)-norm of the update direction to our optimization variables (e.g., displacements/positions for elasticity)\u0394x\u22c5\u2207f(x)
: the dot product between these values (this is a measure of how much progress we can expect the optimization can make)g
: the convergence criteria (i.e., the optimization stops when g < tol
); this depends on the choice of \"useGradNorm\"
solver parameter (for more information see here)tol
: the convergence criteria tolerancerate
: the step size the line-search produced (i.e. \\(x_{i+1} = x_i + \\text{rate} * \\Delta x\\))||step||
: the L2 norm of the step (i.e. \\(\\|\\text{rate} * \\Delta x\\| = \\text{rate} * \\|\\Delta x\\|\\))Each problem has a specific set of optional problem_params
described here.
\"rhs\": 3 // Rhs of the problem\n\"dirichlet_boundary\": [ // List of Dirichlet boundaries\n{\n\"id\": 1, // Boundary id\n\"value\": 0 // Boundary value\n},\n{\n\"id\": 2, // Boundary id\n\"value\": \"sin(x)+y\" // Formulas are supported\n}],\n\"neumann_boundary\": [ // List of Neumann boundaries\n{\n\"id\": 3, // Boundary id\n\"value\": 1, // Boundary value\n},\n{\n\"id\": 4, // Boundary id\n\"value\": \"x^2\" // Formulas are supported\n}]\n
\"rhs\": [1, 2, 3] // Rhs of the problem\n\"dirichlet_boundary\": [ // List of Dirichelt boundaries\n{\n\"id\": 1, // Boundary id\n\"value\": [0, 0, 0], // Boundary vector value\n\"dimension\": [ // Which dimension are Dirichelt\ntrue,\ntrue,\nfalse // In this case z is free\n]\n},\n{\n\"id\": 2, // Boundary id\n\"value\": [\"sin(x)+y\", \"z^2\", 0] // Formulas are supported\n}],\n\"neumann_boundary\": [ // List of Neumann boundaries\n{\n\"id\": 3, // Boundary id\n\"value\": [0, 0, 0] // Boundary vector value\n},\n{\n\"id\": 4, // Boundary id\n\"value\": [\"sin(z)+y\", \"z^2\", 0] // Formulas are supported\n}],\n\"is_time_dependent\": false,\n\"initial_solution\": [0, 0, 0],\n\"initial_velocity\": [0, 0, 0],\n\"initial_acceleration\": [0, 0, 0]\n
n_kernels
kernels placed on the bounding box at kernel_distance
n_kernels
sets the number of kernels, kernel_distance
sets the distance from the bounding box\"scaling\": 1, // Scaling factor\n\"rhs\": 0, // Right-hand side\n\"translation\": [0, 0, 0] // Translation\n\"boundary_ids\": [ // List of Dirichelt boundaries\n{\n\"id\": 1, // Boundary id\n\"value\": [0, 0, 0] // Boundary vector value\n},\n{\n\"id\": 2,\n\"value\": { // Rbf interpolated value\n\"function\": \"\", // Function file\n\"points\": \"\", // Points file\n\"rbf\": \"gaussian\", // Rbf kernel\n\"epsilon\": 1.5, // Rbf epsilon\n\"coordinate\": 2, // Coordinate to ignore\n\n\"dimension\": [ // Which dimension are Dirichlet\ntrue,\ntrue,\nfalse // In this case z is free\n]\n}\n},\n{\n\"id\": 2,\n\"value\": { // Rbf interpolated value\n\"function\": \"\", // Function file\n\"points\": \"\", // Points file\n\"triangles\": \"\", // Triangles file\n\"coordinate\": 2, // Coordinate to ignore\n}\n}]\n
fixed_boundary
fixed (zero displacement), turning_boundary
rotating around axis_coordiante
for n_turns
fixed_boundary
id of the fixed boundary, turning_boundary
id of the moving boundary, axis_coordiante
coordinate of the rotating axis, n_turns
number of turnsPolyFEM offers several linear solver options based on compilation options. For more information, see PolySolve a stand-alone linear solver wrapper library used by PolyFEM.
Options: AMGCL
, Eigen::BiCGSTAB
, Eigen::CholmodSupernodalLLT
, Eigen::ConjugateGradient
, Eigen::DGMRES
, Eigen::GMRES
, Eigen::LeastSquaresConjugateGradient
, Eigen::MINRES
, Eigen::PardisoLDLT
, Eigen::PardisoLU
, Eigen::SimplicialLDLT
, Eigen::SparseLU
, Eigen::UmfPackLU
, Hypre
, Pardiso
To solve nonlinear formulations, PolyFEM offers two options: Newton\u2019s method (newton
) and L-BFGS (lbfgs
).
The settings for the solver are stored inside the field \"nonlinear\"
. General settings include:
\"grad_norm\"
(default: 1e-8
): convergence tolerance on the norm (\\(L^2\\)) of the gradient\"nl_iterations\"
(default: 1000
): maximum number of iterations to spend solving\"use_grad_norm\"
(default: true
): whether to use the gradient norm or update direction norm for convergence checksA (projected) Newton\u2019s method with line search.
"},{"location":"details/solvers/#l-bfgs","title":"L-BFGS","text":"A quasi-Newton method, L-BFGS requires more iterations than the full Newton\u2019s method but avoids expensive linear solves.
Reference: https://en.wikipedia.org/wiki/Limited-memory_BFGS Acknowledgments: The L-BFGS solver is implemented using the LBFGS++ library.
"},{"location":"details/solvers/#line-search","title":"Line Search","text":"Todo
Describe line-search and its purpose.
"},{"location":"details/solvers/#backtracking","title":"Backtracking","text":"Todo
Describe this method and its parameters.
"},{"location":"details/solvers/#armijo","title":"Armijo","text":"Todo
Describe this method and its parameters.
"},{"location":"details/solvers/#armijo-alt","title":"Armijo (alt)","text":"Todo
Describe this method and its parameters.
"},{"location":"details/solvers/#more-thuente","title":"More-Thuente","text":"Todo
Describe this method and its parameters.
"},{"location":"details/time_integrators/","title":"Time Integrators","text":""},{"location":"details/time_integrators/#implicit-euler","title":"Implicit Euler","text":"where \\(h\\) is the time step size.
beta
, gamma
where \\(h\\) is the time step size and by default \\(\\gamma = 0.5\\) and \\(\\beta = 0.25\\).
Note
This is equivalent to the Trapezoidal rule for \\(\\gamma = 0.5\\) and \\(\\beta = 0.25\\).
"},{"location":"details/time_integrators/#backward-differentiation-formula-bdf","title":"Backward Differentiation Formula (BDF)","text":"num_steps
where \\(h\\) is the time step size, the coefficients \\(\\alpha_i\\) and \\(\\beta\\) are choosen to make the method \\(n\\)-th order accurate, and \\(n \\in \\{1, \\ldots, 6\\}\\) is the number of previous steps to consider (default: num_steps=1
). This is equivalent to implicit Euler for \\(n=1\\). To initialize the values for \\(i > 0\\), the method starts from \\(n=1\\) and successively builds the history, increasing \\(n\\) by 1 until the \\(n\\)-th step. However, we know this can result in less than order \\(n\\) accuracy [Nishikawa 2019].
import pydoc\nimport polyfempy\nimport re\nimport queue\nimport tempfile\nimport pydoc import polyfempy import re import queue import tempfile In\u00a0[\u00a0]: Copied!
packages = queue.Queue()\npackages.put(\"polyfempy\")\npackages = queue.Queue() packages.put(\"polyfempy\") In\u00a0[\u00a0]: Copied!
docs = \"\"\ndocs = \"\" In\u00a0[\u00a0]: Copied!
\nIn\u00a0[\u00a0]: Copied!
while not packages.empty():\n\tpackage = packages.get()\n\n\twith tempfile.NamedTemporaryFile(suffix=\".md\") as tmp_file:\n\t\twith open(tmp_file.name, \"w\") as f:\n\t\t\tpydoc.doc(package,output=f)\n\n\t\twith open(tmp_file.name, \"r\") as f:\n\t\t\tlines = f.read()\n\n\tif \"PACKAGE CONTENTS\" in lines:\n\t\tprocess = False\n\n\t\tfor line in iter(lines.splitlines()):\n\t\t\tline = line.strip()\n\n\t\t\tif \"PACKAGE CONTENTS\" in line:\n\t\t\t\tprocess = True\n\t\t\t\tcontinue\n\n\t\t\tif \"FILE\" in line:\n\t\t\t\tbreak\n\n\t\t\tif not process:\n\t\t\t\tcontinue\n\t\t\tif len(line) <= 0:\n\t\t\t\tcontinue\n\n\t\t\tpackages.put(package + \".\" + line)\n\n\t\tcontinue\n\tif \"CLASSES\" in lines:\n\t\tprocess = False\n\n\n\t\tfor line in iter(lines.splitlines()):\n\t\t\tline = line.strip()\n\n\t\t\tif \"CLASSES\" in line:\n\t\t\t\tprocess = True\n\t\t\t\tcontinue\n\n\t\t\tif \"FILE\" in line:\n\t\t\t\tbreak\n\n\t\t\tif not process:\n\t\t\t\tcontinue\n\t\t\tif len(line) <= 0:\n\t\t\t\tcontinue\n\n\t\t\tif \"class \" in line:\n\t\t\t\tbreak\n\t\t\tif \"builtins.object\" in line:\n\t\t\t\tcontinue\n\n\t\t\tpackages.put(package + \".\" + line)\n\n\t\tcontinue\n\n\tlines = lines.replace(\"pybind11_builtins.pybind11_object\", \"\")\n\tlines = lines.replace(\"builtins.object\", \"\")\n\tlines = lines.replace(\"|\", \"\")\n\tlines = lines.replace(\"class \", \"## class \")\n\tlines = lines.replace(\"self: polyfempy.polyfempy.Solver, \", \"\")\n\tlines = lines.replace(\"self: polyfempy.polyfempy.Solver\", \"\")\n\tlines = lines.replace(\"self, \", \"\")\n\tlines = lines.replace(\"self\", \"\")\n\tlines = lines.replace(\" -> None\", \"\")\n\tlines = lines.replace(\"[float64[m, n]]\", \"\")\n\tlines = lines.replace(\"[int32[m, n]]\", \"\")\n\tlines = lines.replace(\"numpy.ndarray\", \"array\")\n\n\ttmp = \"\"\n\n\tskipping = False\n\tnext_mark = False\n\tskip_next = False\n\n\tfor line in iter(lines.splitlines()):\n\t\tline = line.strip()\n\n\t\tif skip_next:\n\t\t\tskip_next = False\n\t\t\tcontinue\n\t\tif len(line) <= 0:\n\t\t\tcontinue\n\n\t\tif \"Python Library Documentation\" in line:\n\t\t\tcontinue\n\n\t\tif \"Methods inherited\" in line:\n\t\t\tcontinue\n\n\t\tif \"Overloaded function.\" in line:\n\t\t\tcontinue\n\n\t\tif \"Method resolution order\" in line:\n\t\t\tskipping = True\n\n\t\tif \"Methods defined here\" in line:\n\t\t\tskipping = False\n\t\t\tcontinue\n\n\t\tif \"Data and other attributes defi\" in line:\n\t\t\tcontinue\n\n\t\tif \"Data descriptors defined\" in line:\n\t\t\tcontinue\n\n\t\tif \"-----------------------------\" in line:\n\t\t\tcontinue\n\n\t\tif \"__init__\" not in line and re.match(r\"__\\w+\", line):\n\t\t\tskip_next = True\n\t\t\tcontinue\n\t\tif \"params()\" in line or \"get_pde(pde)\" in line or \"get_problem(problem)\" in line or \"get_problem()\" in line or \"name()\" in line or \"__init__()\" in line or \"__init__(/, *args, **kwargs)\" in line:\n\t\t\tskip_next = True\n\t\t\tcontinue\n\n\t\tif skipping:\n\t\t\tcontinue\n\n\t\tif re.match(r'\\w+\\(\\.\\.\\.\\)', line):\n\t\t\tnext_mark = True\n\t\t\tcontinue\n\n\t\tif \"class\" in line:\n\t\t\tline = line.replace(\"()\", \"\")\n\n\t\tif re.match(r\"\\d\\. .+\", line):\n\t\t\tline = re.sub(r\"\\d\\. \", \"\", line)\n\t\t\tline.strip()\n\t\t\tnext_mark = True\n\n\t\tif next_mark or re.match(r'\\w+\\(.*\\)', line):\n\t\t\tnext_mark = False\n\t\t\txxx = line\n\t\t\tif \"__init__\" in line:\n\t\t\t\tline = line.replace(\"__init__\", \"init\")\n\t\t\tline = \"### \" + line[0:line.find('(')] +\"\\n\"\n\t\t\tline += \"`\" + xxx + \"`\"\n\n\t\tif \"## class \" in line:\n\t\t\tline = line.replace(package + \" = \", \"\")\n\n\t\ttmp += line + \"\\n\\n\"\n\n\tdocs += tmp + \"\\n\\n\\n\"\n\t# break\nwhile not packages.empty(): \tpackage = packages.get() \twith tempfile.NamedTemporaryFile(suffix=\".md\") as tmp_file: \t\twith open(tmp_file.name, \"w\") as f: \t\t\tpydoc.doc(package,output=f) \t\twith open(tmp_file.name, \"r\") as f: \t\t\tlines = f.read() \tif \"PACKAGE CONTENTS\" in lines: \t\tprocess = False \t\tfor line in iter(lines.splitlines()): \t\t\tline = line.strip() \t\t\tif \"PACKAGE CONTENTS\" in line: \t\t\t\tprocess = True \t\t\t\tcontinue \t\t\tif \"FILE\" in line: \t\t\t\tbreak \t\t\tif not process: \t\t\t\tcontinue \t\t\tif len(line) <= 0: \t\t\t\tcontinue \t\t\tpackages.put(package + \".\" + line) \t\tcontinue \tif \"CLASSES\" in lines: \t\tprocess = False \t\tfor line in iter(lines.splitlines()): \t\t\tline = line.strip() \t\t\tif \"CLASSES\" in line: \t\t\t\tprocess = True \t\t\t\tcontinue \t\t\tif \"FILE\" in line: \t\t\t\tbreak \t\t\tif not process: \t\t\t\tcontinue \t\t\tif len(line) <= 0: \t\t\t\tcontinue \t\t\tif \"class \" in line: \t\t\t\tbreak \t\t\tif \"builtins.object\" in line: \t\t\t\tcontinue \t\t\tpackages.put(package + \".\" + line) \t\tcontinue \tlines = lines.replace(\"pybind11_builtins.pybind11_object\", \"\") \tlines = lines.replace(\"builtins.object\", \"\") \tlines = lines.replace(\"|\", \"\") \tlines = lines.replace(\"class \", \"## class \") \tlines = lines.replace(\"self: polyfempy.polyfempy.Solver, \", \"\") \tlines = lines.replace(\"self: polyfempy.polyfempy.Solver\", \"\") \tlines = lines.replace(\"self, \", \"\") \tlines = lines.replace(\"self\", \"\") \tlines = lines.replace(\" -> None\", \"\") \tlines = lines.replace(\"[float64[m, n]]\", \"\") \tlines = lines.replace(\"[int32[m, n]]\", \"\") \tlines = lines.replace(\"numpy.ndarray\", \"array\") \ttmp = \"\" \tskipping = False \tnext_mark = False \tskip_next = False \tfor line in iter(lines.splitlines()): \t\tline = line.strip() \t\tif skip_next: \t\t\tskip_next = False \t\t\tcontinue \t\tif len(line) <= 0: \t\t\tcontinue \t\tif \"Python Library Documentation\" in line: \t\t\tcontinue \t\tif \"Methods inherited\" in line: \t\t\tcontinue \t\tif \"Overloaded function.\" in line: \t\t\tcontinue \t\tif \"Method resolution order\" in line: \t\t\tskipping = True \t\tif \"Methods defined here\" in line: \t\t\tskipping = False \t\t\tcontinue \t\tif \"Data and other attributes defi\" in line: \t\t\tcontinue \t\tif \"Data descriptors defined\" in line: \t\t\tcontinue \t\tif \"-----------------------------\" in line: \t\t\tcontinue \t\tif \"__init__\" not in line and re.match(r\"__\\w+\", line): \t\t\tskip_next = True \t\t\tcontinue \t\tif \"params()\" in line or \"get_pde(pde)\" in line or \"get_problem(problem)\" in line or \"get_problem()\" in line or \"name()\" in line or \"__init__()\" in line or \"__init__(/, *args, **kwargs)\" in line: \t\t\tskip_next = True \t\t\tcontinue \t\tif skipping: \t\t\tcontinue \t\tif re.match(r'\\w+\\(\\.\\.\\.\\)', line): \t\t\tnext_mark = True \t\t\tcontinue \t\tif \"class\" in line: \t\t\tline = line.replace(\"()\", \"\") \t\tif re.match(r\"\\d\\. .+\", line): \t\t\tline = re.sub(r\"\\d\\. \", \"\", line) \t\t\tline.strip() \t\t\tnext_mark = True \t\tif next_mark or re.match(r'\\w+\\(.*\\)', line): \t\t\tnext_mark = False \t\t\txxx = line \t\t\tif \"__init__\" in line: \t\t\t\tline = line.replace(\"__init__\", \"init\") \t\t\tline = \"### \" + line[0:line.find('(')] +\"\\n\" \t\t\tline += \"`\" + xxx + \"`\" \t\tif \"## class \" in line: \t\t\tline = line.replace(package + \" = \", \"\") \t\ttmp += line + \"\\n\\n\" \tdocs += tmp + \"\\n\\n\\n\" \t# break In\u00a0[\u00a0]: Copied!
with open(\"polyfempy_doc.md\", \"w\") as f:\n\tf.write(docs)\nwith open(\"polyfempy_doc.md\", \"w\") as f: \tf.write(docs)"},{"location":"tools/plot_to_md/","title":"Plot to md","text":"In\u00a0[\u00a0]: Copied!
import meshplot\nimport meshplot In\u00a0[\u00a0]: Copied!
first = True\nmeshplot.website()\nfirst = True meshplot.website() In\u00a0[\u00a0]: Copied!
def mp_to_md(self):\n global first\n if first:\n first = False\n res = self.to_html(imports=True, html_frame=False)\n else:\n res = self.to_html(imports=False, html_frame=False)\n\n return res\ndef mp_to_md(self): global first if first: first = False res = self.to_html(imports=True, html_frame=False) else: res = self.to_html(imports=False, html_frame=False) return res In\u00a0[\u00a0]: Copied!
get_ipython().display_formatter.formatters[\"text/html\"].for_type(meshplot.Viewer, mp_to_md)\nget_ipython().display_formatter.formatters[\"text/html\"].for_type(meshplot.Viewer, mp_to_md)"},{"location":"tutorials/getting_started/","title":"Getting Started","text":""},{"location":"tutorials/getting_started/#a-first-example-solving-the-laplacian-on-a-plate-hole-mesh","title":"A First-Example: Solving the Laplacian on a Plate-Hole Mesh","text":"
Here you can find the plate with hole mesh used in this tutorial.
Mesh SolutionTo setup and run this simulation create a JSON file (for example, run.json
) containing the following:
{\n\"geometry\": {\n\"advanced\": {\n\"normalize_mesh\": true\n},\n\"mesh\": \"plate_hole.obj\",\n\"surface_selection\": {\n\"threshold\": 1e-07\n}\n},\n\n\"materials\": {\n\"type\": \"Laplacian\"\n},\n\n\"output\": {\n\"json\": \"stats.json\",\n\"paraview\": {\n\"file_name\": \"<result.vtu>\"\n}\n},\n\n\"preset_problem\": {\n\"type\": \"Franke\"\n},\n\n\"solver\": {\n\"linear\": {\n\"solver\": \"Eigen::SparseLU\"\n}\n}\n}\n
Then run PolyFEM_bin --json run.json
.
Refer to the JSON API for a the full description of JSON parameters.
"},{"location":"tutorials/getting_started/#boundary-conditions","title":"Boundary Conditions","text":"PolyFEM uses boundary tags to mark boundary primitives (edges in 2D and faces in 3D). By default:
You can also specify a file containing a list of integers per each edge/face of the mesh indicating the tag in the JSON.
If you want to run the real plate-with-hole problem, set the correct Lam\u00e9 constants in \"materials\"
, and specify the proper boundary conditions in \"boundary_conditions\"
. For this example, we want Neumann boundary condition of [100, 0]
(a force of 100 in \\(x\\)) applied to the whole right side (pulling), so in the \"neumann_boundary\"
array of \"boundary_conditions\"
, we add an entry with \"id\": 3
and \"value\": [100, 0]
. For the two Dirichlet, it is a bit more complicated because we want reflective boundary conditions, that is we want to fix only one of the two coordinates. For instance, the right part of the mesh (\"id\": 1
) needs to be fixed in \\(x\\) (or equivalent can move only in \\(y\\)-direction). To do so we add an entry to the \"dirichlet_boundary\"
array with \"id\": 1
and \"value\": [0, 0]
, that is zero displacements, and specify which \"dimension\"
these boundaries need to be applied, in this case, only the \\(x\\)-direction so \"dimension\"
gets the value [true, false]
. Similarly, the top part (\"id\": 4
) gets \"dimension\": [false, true]
.
{\n\"materials\": {\n\"type\": \"LinearElasticity\",\n\"E\": 210000,\n\"nu\": 0.3\n},\n\n\"boundary_conditions\": {\n\"neumann_boundary\": [{\n\"id\": 3,\n\"value\": [100, 0]\n}],\n\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [0.0, 0.0],\n\"dimension\": [true, false]\n}, {\n\"id\": 4,\n\"dimension\": [false, true],\n\"value\": [0.0, 0.0]\n}]\n}\n}\n
"},{"location":"tutorials/getting_started/#spatially-varying-boundary-conditions","title":"Spatially Varying Boundary Conditions","text":"The specified value for boundary conditions can also contain expressions as strings depending on x
,y
, and z
. PolyFEM will evaluate these expressions on the edge/face. For this, we use the TinyExpr library.
In addition to TinyExpr\u2019s built-in functions, we define some useful utility functions including:
min(a, b)
: minimum of two valuesmax(a, b)
: maximum of two valuesif(cond, a, b)
: if cond
\\(\\ge\\) 0, return a
, otherwise return b
sign(x)
: 1 if \\(x > 0\\), 0 if \\(x == 0\\), and -1 if \\(x < 0\\)deg2rad(d)
: convert degrees to radiansrotate_2D_x(x, y, theta)
: given a value for x
, y
, and theta
, compute the x component of a 2D rotation of theta
radiansrotate_2D_y(x, y, theta)
: given a value for x
, y
, and theta
, compute the y component of a 2D rotation of theta
radianssmooth_abs(x, k)
: a smooth approximation to abs(x)
Since creating the file with association from boundary to ID is complicated, we also provide an application bc_setter
to interactively color faces of 3D meshes (or edges of 2D meshes) and associate tags.
By shift-clicking you can color coplanar faces to assign an ID (command or control-click colors only one face). The UI also allows specifying the three values (for scalar problem only one) to assign to that boundary condition and choose between Dirichlet and Neumann.
On save, it will produce the .txt
file with the tags to be used in the \"surface_selection\"
JSON field and a JSON file to set the \"boundary_conditions\"
.
To enable time-dependent simulation add
\"time\": {\n\"tend\": 1,\n\"dt\": 0.1\n}\n
to the root of the JSON. The duration of the simulation is specified as \"tend\"
and the number of time steps can either be set directly using \"time_steps\"
or by specifying the time step size \"dt\"
(\"dt\"
has priority over \"time_steps\"
). You can also specify the time integration method using
\"time\": {\n\"integrator\": \"ImplicitEuler\"\n}\n
By default it uses \"ImplicitEuler\"
, and a complete list of options can be found here along with details about other time parameters. When doing time-dependent simulation PolyFEM will generate a sequence of VTU files (one file per time step) and a PVD file of the animation that can be directly viewed in ParaView. You can change the name of this PVD file
"},{"location":"tutorials/getting_started/#time-dependent-boundary-conditions","title":"Time-Dependent Boundary Conditions","text":"Enabling time-dependent simulation also enables the ability to use the current time to design time-dependent boundary conditions. To define time-dependent boundary conditions you can use the variable t
in an expression value. For example,
\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"t\", 0, 0]\n}]\n
defines a boundary condition that linearly increases in the x component as time progresses. An example use case for this would be in an elasticity problem to move the boundary over time (remember in this case the value expresses the displacement, not the position)."},{"location":"tutorials/getting_started/#selections-multi-material-and-collisions","title":"Selections, Multi-material, and Collisions","text":"PolyFEM supports multi-material and contact.
For example, here we show how to simulate a sphere of radius 0.5 m centered at \\([0,1,0]\\) with material \\(E=10^8, \\nu=0.4, \\rho=2000\\) falling on thin soft mat (\\(E=10^6, \\nu=0.4, \\rho=1000\\)) we need to set the body id.
First, we need to specify the geometry and assign ids to the surface and volume. To do this add this to the main JSON file:
\"geometry\": [{\n\"mesh\": \"../../../meshes/3D/simple/sphere/sphere1K.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"../../../meshes/3D/simple/mat/mat40x40.msh\",\n\"transformation\": {\n\"scale\": 2\n},\n\"volume_selection\": 2,\n\"surface_selection\": [{\n\"id\": 1,\n\"axis\": \"-x\",\n\"position\": -1\n}, {\n\"id\": 2,\n\"axis\": \"x\",\n\"position\": 1\n}]\n}],\n
The sphere will be given a volume ID of 1 and the mat will get ID 2. An axis-plane selection is used can be used to set the surface IDs. Here the faces with a barycenter left of \\(x=-1\\) are given a surface ID of 1 and the faces with barycenters right of \\(x=1\\) will be given an ID of 2.
Next, we need to associate materials and boundary conditions with these IDs. We set the boundary conditions by adding the following to the JSON:
\"materials\": [{\n\"id\": 1,\n\"E\": 1e8,\n\"nu\": 0.4,\n\"rho\": 2000,\n\"type\": \"NeoHookean\"\n}, {\n\"id\": 2,\n\"E\": 1e6,\n\"nu\": 0.4,\n\"rho\": 1000,\n\"type\": \"NeoHookean\"\n}]\n
This sets the sphere to a stiff NeoHooean material (\\(E=10^8, \\nu=0.4, \\rho=2000\\)) and the mat to a softer NeoHookean material (\\(E=10^6, \\nu=0.4, \\rho=1000\\)). We specify boundary conditions and \"rhs\"
(for the gravity) as:
\"boundary_conditions\": {\n\"rhs\": [0, 9.81, 0],\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"-min(t,0.28)\", 0, 0]\n}, {\n\"id\": 2,\n\"value\": [\"min(t,0.28)\", 0, 0]\n}]\n}\n
Here the mat is given a Dirichlet boundary condition for the left selection to stretch it to the left and the right selection to stretch it to the right. Since this is a contact problem we need to enable collision, no other thing is needed: \"contact\": {\"enabled\": true}
, and run the simulation (the complete JSON script can be found here).
The final results look like these where we sliced the scene in half to show the internal stresses.
"},{"location":"tutorials/getting_started/#output","title":"Output","text":"The simulation results will be output as a VTU file or a sequence of VTU files and a PVD file for the time sequence.
"},{"location":"tutorials/getting_started/#visualizing-results-using-paraview","title":"Visualizing Results using ParaView","text":"Here are some tips for working with the output in ParaView.
body_ids
to set the opacity of the box separately from the Octocat)Note
This is a retelling of the original IPC Quick Start Guide from the original IPC codebase.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#setup","title":"Setup","text":"The first step is to clone and build PolyFEM (see here for instructions). This will create the PolyFEM_bin
executable that we will use to run the examples. To run an example you can use the following command:
./PolyFEM_bin -j <path/to/example.json> -o <path/to/output/dir>\n
You can also use the --help
flag to see all the available options.
All files used in this tutorial can be found here.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#ipc-default-parameters","title":"IPC Default Parameters","text":"Since many of the default parameters in PolyFEM differ from those in the original IPC codebase, we provide a JSON file ipc-defaults.json
which maps the default parameter values from IPC to their equivalent parameters in PolyFEM. This file is then included in all the example JSON files using \"common\": \"ipc-defaults.json\"
.
Todo
Describe what each of the default parameters controls.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#hello-world","title":"Hello, World!","text":"Let us start with a \u201cHello, World!\u201d example of two cubes falling onto a ground plane.
The input JSON for this scene can be found at 2-cubes-falling.json
. To run this example, use the following command:
./PolyFEM_bin -j 2-cubes-falling.json -o 2-cubes-falling\n
This will create a directory 2-cubes-falling
with the following files:
$ ls 2-cubes-falling\nsim.pvd step_0.vtm step_0.vtu [...] step_200.vtm step_200.vtu\n
We can open the PVD file using ParaView and play the animation to visualize the simulation:
Tip
In ParaView, make sure to press the WarpByVector button to see the deformed animation. Otherwise, you will only see the undeformed rest mesh.
Let\u2019s take a look at the input JSON file 2-cubes-falling.json
:
{\n\"common\": \"ipc-defaults.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"volume_selection\": 2\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}],\n\"contact\": {\n\"friction_coefficient\": 0.1\n}\n}\n
The config is simple:
\"common\"
: this includes the default IPC parameters from the ipc-defaults.json
file.\"geometry\"
: the geometry of the scene comprised of two cubes and a ground plane.\"mesh\"
: the path to the mesh file (a tetrahedral mesh cube.msh
for the cubes and a triangular mesh plane.obj
for the ground plane).\"transformation\"
: transform the input mesh before running the simulation.\"translation\"
: translate the first cube up by 3 units and the second cube up by 1 unit.\"volume_selection\"
: assigns an ID to the volume (uniformly) which we will use later.\"is_obstacle\"
: specify that the ground plane is a static obstacle.\"contact\"
: parameters for the contact model\"friction_coefficient\"
: coefficient of friction for all contacts.Now let\u2019s make some changes to the hello world script to make the simulation more interesting.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#stiffer-material","title":"Stiffer Material","text":"The default material parameters in ipc-default.json
are:
\"materials\": {\n\"type\": \"NeoHookean\",\n\"E\": 1e5,\n\"nu\": 0.4,\n\"rho\": 1000\n}\n
This corresponds to a NeoHookean material with Young\u2019s modulus \\(E = 10^5~\\text{Pa}\\), Poisson\u2019s ratio \\(\\nu = 0.4\\), and density \\(\\rho = 1000~\\frac{\\text{kg}}{\\text{m}^3}\\).
We can change these parameters for all objects in the scene by changing Young\u2019s modulus to \\(10^6~\\text{Pa}\\):
{\n\"common\": \"2-cubes-falling.json\",\n\"materials\": {\n\"E\": 1e6\n}\n}\n
Note
Notice that we changed the \"common\"
parameter to point to the starting example 2-cubes-falling.json
. This means our changes in this file will be applied on top of the changes in the starting example (which also are applied on top of the default parameters in ipc-defaults.json
).
This will make Young\u2019s modulus 10x larger than the default while keeping density and Poisson\u2019s ratio the same. Let\u2019s see what we get:
Yes! The boxes are stiffer now.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#multiple-materials","title":"Multiple Materials","text":"We can also set different materials for different objects:
{\n\"common\": \"2-cubes-falling.json\",\n\"materials\": [{\n\"id\": 1,\n\"type\": \"NeoHookean\",\n\"E\": 1e8,\n\"nu\": 0.4,\n\"rho\": 3000\n}, {\n\"id\": 2,\n\"type\": \"NeoHookean\",\n\"E\": 1e5,\n\"nu\": 0.4,\n\"rho\": 1000\n}]\n}\n
We replace our single \"materials\"
object with a list of objects with \"id\"
keys. These IDs correspond to the \"volume_selection\"
from earlier. In general, \"volume_selection\"
allows us to select a subset of the mesh\u2019s elements and assign a volume ID to them. In this case, we assign a uniform ID to all elements in the cube mesh. Where the first cube gets an ID of 1 and the second gets an ID of 2. We then use these volume IDs to assign different materials to each cube. The first cube gets a material that is 3\u00d7 heavier and 1000\u00d7 stiffer. While the second cube gets the original material.
Here we rendered softer material with a light yellow color. As we see the top box is nearly rigid now and the bottom box deforms more. Even with this super stiff material PolyFEM stays robust and accurate.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#simulation-time-and-time-step-size","title":"Simulation Time and Time Step Size","text":"Following the default in IPC, we have been simulating the scene for 5 seconds with a time step size of 0.025s, generating 200 frames.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#smaller-time-step-sizes","title":"Smaller Time Step Sizes","text":"One option to get more energetic animation (while sticking with implicit Euler stepping \u2013 see also Newmark stepping below) is to apply smaller time step sizes to reduce the numerical damping of implicit Euler time integration:
{\n\"common\": \"2-cubes-falling.json\",\n\"time\": {\n\"dt\": 0.005\n}\n}\n
The \"time\"
parameter here controls time step size \"dt\": 0.005
, which results in a more energetic animation:
One of the exciting features of IPC and PolyFEM is that it is robust enough to support extremely large time step sizes on the order of seconds with implicit Euler. In turn, this enables rapid solutions of equilibrium conditions subject to contact, friction and large deformation (via nearly quasi-static solves under numerical damping). For a simple demonstration, we can simulate our hello world example with \\(\\Delta t = 1~\\text{s}\\):
{\n\"common\": \"2-cubes-falling.json\",\n\"time\": {\n\"dt\": 1\n}\n}\n
The animation now is composed of only five frames, one for each second. As we see numerical damping is so large that the cubes are barely bouncing.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#initial-velocity","title":"Initial Velocity","text":"To set nonzero initial velocities for objects, we need to specify them as \"initial_conditions\"
.
For example, we can set the initial velocity of the top cube to be \\(-20~\\frac{\\text{m}}{\\text{s}}\\) in the y direction:
{\n\"common\": \"2-cubes-falling.json\",\n\"initial_conditions\": {\n\"velocity\": [{\n\"id\": 1,\n\"value\": [0, -20, 0]\n}]\n}\n}\n
Again here we are using the volume IDs to select the top cube.
Even for this high-speed impact scene, PolyFEM stays robust and accurate without numerical instabilities or explosions.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#initial-angular-velocity","title":"Initial Angular Velocity","text":"Instead of using a constant value for the initial velocity, we can use a tiny expression dependent on the positions.
We can specify an initial angular velocity by computing
\\[ \\begin{bmatrix}\\omega_x & \\omega_y & \\omega_z\\end{bmatrix} \\times \\begin{bmatrix}x & y & z\\end{bmatrix} \\]where \\(\\omega_{\\{x, y, z\\}}\\) are the angular velocity in radians and \\(x\\), \\(y\\), and \\(z\\) are the positions to be evaluated at.
Note
This assumes the center of rotation is at the origin. If you want to rotate around a different point, you need to translate the positions to the origin first.
For example, if we want to rotate the top cube 90 degrees/second around the y-axis, then we compute the initial velocity as
\\[ \\begin{bmatrix}0 & \\frac{\\pi}{2} & 0\\end{bmatrix} \\times \\begin{bmatrix}x & y & z\\end{bmatrix} = \\begin{bmatrix}\\frac{\\pi}{2}z & 0 & -\\frac{\\pi}{2}x\\end{bmatrix} \\]In the JSON we encode this as a string containing the expression:
{\n\"common\": \"2-cubes-falling.json\",\n\"initial_conditions\": {\n\"velocity\": [{\n\"id\": 1,\n\"value\": [\"pi/2 * z\", 0, \"-pi/2 * x\"]\n}]\n}\n}\n
and voila now the top cube is spinning!
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#collision-obstacles","title":"Collision Obstacles","text":"In many simulations we want to script the motion of certain objects, the best way to do this is to specify the object as an obstacle and then specify the prescribed displacement.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#translation","title":"Translation","text":"To make the second code an obstacle all we need to do is set \"is_obstacle\": true
. Then we can specify the displacement of this obstacle using the \"boundary_conditions/obstacle_displacements\"
field:
{\n\"common\": \"2-cubes-falling.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"surface_selection\": 1,\n\"is_obstacle\": true\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}],\n\"boundary_conditions\": {\n\"obstacle_displacements\": [{\n\"id\": 1,\n\"value\": [\"t\", \"t\", \"t\"]\n}]\n}\n}\n
Notice that we changed the \"volume_selection\"
to \"surface_selection\"
because we need to identify the surface on which the boundary conditions apply.
We set the obstacle\u2019s displacement to [\"t\", \"t\", \"t\"]
which means the obstacle will translate with a velocity of \\([1, 1, 1]\\) m/s.
Making the second cube rotate is a bit trickier. We can compute the displacement in Euler\u2019s angle representation as
\\[ \\begin{bmatrix} \\Delta{x} \\\\ \\Delta{y} \\\\ \\Delta{z} \\end{bmatrix} = R_x(\\omega_x t) R_y(\\omega_y t) R_z(\\omega_z t) \\left( \\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix} - \\begin{bmatrix} c_x \\\\ c_y \\\\ c_z \\end{bmatrix} \\right) + \\begin{bmatrix} c_x \\\\ c_y \\\\ c_z \\end{bmatrix} - \\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix} \\]where \\(\\Delta\\{x,y,z\\}\\) are the obstacle displacement, \\(\\omega_{\\{x,y,z\\}}\\) are the angular velocities, \\(c_{\\{x,y,z\\}}\\) is the center of rotation, \\(R_{\\{x,y,z\\}}\\) are the axis-aligned rotation matrices, and \\(x\\), \\(y\\), and \\(z\\) are the positions to be evaluated at. Computing this by hand can be annoying, so instead, you can use this Python notebook to compute the expression.
As an example, here we kinematically rotate the second cube with an angular velocity of \\([10, 90, 0]\\) degrees/second:
{\n\"common\": \"translating-obstacle.json\",\n\"boundary_conditions\": {\n\"obstacle_displacements\": [{\n\"id\": 1,\n\"value\": [\n\"x*cos(pi*t/2) - x + z*sin(pi*t/2)\",\n\"x*sin(pi*t/18)*sin(pi*t/2) - y - z*sin(pi*t/18)*cos(pi*t/2) + (y - 1)*cos(pi*t/18) + 1\",\n\"-x*sin(pi*t/2)*cos(pi*t/18) + z*cos(pi*t/18)*cos(pi*t/2) - z + (y - 1)*sin(pi*t/18)\"\n]\n}]\n}\n}\n
Here we render obstacles in grey.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#codimensional-collisions","title":"Codimensional Collisions","text":"IPC contact handling is based on distances and so directly supports codimensional (surfaces, edges, points) kinematic collision obstacles!
Note
Currently, PolyFEM does not yet include simulated codimensional materials like shells or rods.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#closed-surface","title":"Closed Surface","text":"If we script the motion of an object, then for a closed surface the interior tessellation is unnecessary, and we can directly use a surface mesh (.obj
file)!
{\n\"common\": \"rotating-obstacle.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube.obj\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"surface_selection\": 1,\n\"is_obstacle\": true\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
This is equivalent to using a volumetric mesh because PolyFEM automatically extracts and uses the surface for obstacles.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#open-surface","title":"Open Surface","text":"This script replaces the cube with a single triangle (zero volume):
{\n\"common\": \"rotating-obstacle.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"triangle.obj\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"surface_selection\": 1,\n\"is_obstacle\": true\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#edges","title":"Edges","text":"This script uses the same single triangle but only with its edges. Here we also scale the triangle 2\u00d7 larger to let the box fall through.
{\n\"common\": \"rotating-obstacle.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"triangle.obj\",\n\"transformation\": {\n\"translation\": [0, 1, 0],\n\"scale\": 2\n},\n\"surface_selection\": 1,\n\"is_obstacle\": true,\n\"extract\": \"edges\"\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
The \"extract\": \"edges\"
specifies that only the edges of the triangle mesh should be used.
Note
Alternatively, you can load an edge mesh directly by specifying an .obj
file with line elements. For example, this is the same edge mesh in OBJ format:
v -0.5 0 -0.5\nv 0.5 0 -0.5\nv -0.5 0 0.5\nl 1 3\nl 3 2\nl 2 1\n
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#points","title":"Points","text":"Even crazier, this script uses the same single triangle but only with its points. Here we also scale the point cloud 0.7\u00d7 smaller to let the box hit the points.
{\n\"common\": \"rotating-obstacle.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"triangle.obj\",\n\"transformation\": {\n\"translation\": [0, 1, 0],\n\"scale\": 0.7\n},\n\"surface_selection\": 1,\n\"is_obstacle\": true,\n\"extract\": \"points\"\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
We use the \"extract\": \"points\"
to only use the points of the triangle.
Note
Alternatively, you can load a point cloud directly by specifying an .obj
file with no triangles or edges. For example, this is the same point cloud in OBJ format:
v -0.5 0 -0.5\nv 0.5 0 -0.5\nv -0.5 0 0.5\n
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#boundary-conditions","title":"Boundary Conditions","text":""},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#selection","title":"Selection","text":"Similar to how we apply material, to apply boundary conditions we first need to select which nodes to which to apply the boundary conditions using the \"point_selection\"
mesh field. Then, we can specify the boundary conditions in the \"boundary_conditions\"
field.
{\n\"common\": \"2-cubes-falling.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"volume_selection\": 2,\n\"point_selection\": [{\n\"id\": 1,\n\"box\": [\n[0, 0, 0],\n[0.1, 1, 0.1]\n],\n\"relative\": true\n}, {\n\"id\": 2,\n\"box\": [\n[0.9, 0, 0.9],\n[1, 1, 1]\n],\n\"relative\": true\n}]\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}],\n\"output\": {\n\"paraview\": {\n\"points\": true\n}\n}\n}\n
Let\u2019s break down the \"point_selection\"
field. The first object
\"id\": 1,\n\"box\": [\n[0, 0, 0],\n[0.1, 1, 0.1]\n],\n\"relative\": true\n
specifies that we should assign an ID of 1
to the nodes in the back left of the mesh. The second object \"id\": 2,\n\"box\": [\n[0.9, 0, 0.9],\n[1, 1, 1]\n],\n\"relative\": true\n
specifies that we should assign an ID of 2
to the nodes in the front right of the mesh. The \"box\"
parameter specifies a bounding box by minimum and maximum corners in which points are selected. Notice the \"relative\": true
field which indicates the box\u2019s coordinates are relative to the bounding box of the mesh. If we set \"relative\": false
then the coordinates are in world space.
Note
For more information about how to setup boundary conditions (including the more ubiquitous surface selections) look here.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#dirichlet","title":"Dirichlet","text":"For a simulated volumetric object, sometimes we script the motion of part of its vertices as Dirichlet boundary conditions. Using our point selections we can specify the boundary conditions as follows:
{\n\"common\": \"point-selection.json\",\n\"boundary_conditions\": {\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"-0.2 * t\", 0, \"-0.2 * t\"]\n}, {\n\"id\": 2,\n\"value\": [\"0.2 * t\", 0, \"0.2 * t\"]\n}]\n}\n}\n
The above script specifies that we should apply a displacement of \\([-0.2, 0, -0.2]\\) m/s to the nodes with ID 1
and a displacement of \\([0.2, 0, 0.2]\\) m/s to the nodes with ID 2
. The expressions in strings are evaluated using TinyExpr. You can find out more about these expressions here and here.
Now let\u2019s see what we get:
As we see PolyFEM is robust even when there is large deformation.
What is different here from setting kinematic collision obstacles is that the unselected vertices are still degree-of-freedoms that are simulated. If one selects all vertices of an object by, for example, using a selection of
\"point_selection\": 1\n
and set them with Dirichlet boundary conditions, it will be essentially identical to a kinematic collision obstacle."},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#neumann","title":"Neumann","text":"Warning
Nodal Neumann boundary conditions are not yet supported in PolyFEM, so we will setup a similar scene using surface selection.
We can also add extra forces to part of the vertices of simulated volumetric objects in addition to gravity. This can be similarly realized by specifying the \"neumann_boundary\"
like how we did for Dirichlet boundary conditions above:
{\n\"common\": \"point-selection.json\",\n\"geometry\": [{\n\"mesh\": \"cube-hex.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube-hex.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"volume_selection\": 2,\n\"surface_selection\": 1\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}],\n\"boundary_conditions\": {\n\"neumann_boundary\": [{\n\"id\": 1,\n\"value\": [\n\"2.5e4 * sign(x) * max(0, sign(x * z))\",\n0,\n\"2.5e4 * sign(z) * max(0, sign(x * z))\"\n]\n}]\n},\n\"output\": {\n\"paraview\": {\n\"options\": {\n\"forces\": true\n}\n}\n}\n}\n
Similar to the configuration in our Dirichlet example, the above script applies an a force of \\([-2.5 \\times 10^4, 0, -2.5 \\times 10^4]\\) N to the vertices in the left-back and \\([2.5 \\times 10^4, 0, 2.5 \\times 10^4]\\) N to the vertices in the right-front:
Note
Here simulate a hexahedral mesh, but we use a linear triangular mesh for contact handling. Additionally, the rendering shows a triangulation of the hexahedral mesh\u2019s surface.
Unlike Dirichlet boundary conditions, here the Neumann boundary condition does not restrict the vertical motion of the object, and it elongates the object only to a static state but not further.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#timed-boundary-conditions","title":"Timed Boundary Conditions","text":"It is also possible to start and stop boundary conditions at a specific time. This can be done by utilizing tiny expressions:
{\n\"common\": \"point-selection.json\",\n\"boundary_conditions\": {\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"-0.2 * min(t, 2.5)\", 0, \"-0.2 * min(t, 2.5)\"]\n}, {\n\"id\": 2,\n\"value\": [\"0.2 * max(t - 2.5, 0)\", 0, \"0.2 * max(t - 2.5, 0)\"]\n}]\n}\n}\n
Here we apply a displacement of \\([-0.2, 0, -0.2]\\) m/s to the nodes with ID 1
from time \\(t=0\\) to \\(t=2.5\\) and a displacement of \\([0.2, 0, 0.2]\\) m/s to the nodes with ID 2
from time \\(t=2.5\\) to \\(t=\\infty\\). We can see this if we plot the x/z-displacement of the BC nodes: where the red line is the displacement of the nodes with ID 1
and the blue line is the displacement of the nodes with ID 2
.
Finally, let\u2019s see what we get:
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#advanced-settings","title":"Advanced Settings","text":""},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#input-mesh-sequence","title":"Input Mesh Sequence","text":"The way of setting kinematic collision obstacles displacements described earlier is expressive but a bit verbose. To support more complex scripting of kinematic collision objects, PolyFEM allows the use of input mesh file sequences.
For example, we can specify a folder path to the kinematic collision objects:
{\n\"common\": \"2-cubes-falling.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 3, 0]\n},\n\"volume_selection\": 1\n}, {\n\"type\": \"mesh_sequence\",\n\"transformation\": {\n\"translation\": [-0.6666666667, 0, -0.6666666667]\n},\n\"mesh_sequence\": \"sequence\",\n\"fps\": 40,\n\"is_obstacle\": true\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
In the specified folder sequence
we provide the mesh files of the triangle wire in each frame as *.obj
. Note that the input sequence must maintain the correct vertex correspondence to the one throughout the entire sequence.
IPC requires a tiny positive gap as it does not support the 0-distance configurations.
The following script sets the upper box in the hello world example right above the lower one:
{\n\"common\": \"2-cubes-falling.json\",\n\"geometry\": [{\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 2.001, 0]\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"cube.msh\",\n\"transformation\": {\n\"translation\": [0, 1, 0]\n},\n\"volume_selection\": 2\n}, {\n\"mesh\": \"plane.obj\",\n\"is_obstacle\": true\n}]\n}\n
Note the initial gap here is barely visible. In our experience we can set IPC\u2019s contact gap as small as practically needed; i.e., even small enough to fool the ray intersection checks in rendering algorithms.
Similarly, no two objects can have 0-distance separation : ); even atoms are at distance from each other.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#newmark-time-integration","title":"Newmark Time-Integration","text":"Along with implicit Euler, PolyFEM supports other time integration methods such as implicit Newmark time integration. Implicit Newmark can be applied for improved energy preservation and control. To change the time integrator we can simply set the time integration method.
For example, the following script uses the time/integrator
key to specify implicit Newmark (\"ImplicitNewmark\"
) should be the time integrator for the stiffer boxes scene without friction. By default, \"integrator\"
is set to ImplicitEuler
(backward Euler).
{\n\"common\": \"stiffer.json\",\n\"time\": {\n\"dt\": 0.005,\n\"integrator\": \"ImplicitNewmark\"\n},\n\"contact\": {\n\"friction_coefficient\": 0\n}\n}\n
Damping can be useful both for predictive or realistic simulation control of damping and also to extend the effective stability of the underlying Newmark time integration method. For example, here we use Rayleigh damping of elasticity:
{\n\"common\": \"newmark.json\",\n\"solver\": {\n\"rayleigh_damping\": {\n\"form\": \"elasticity\",\n\"stiffness_ratio\": 0.1\n}\n}\n}\n
Here we set the damping stiffness as a ratio \\(\\kappa_\\text{ratio}\\) between 0 and 1. The absolute damping stiffness will be set to \\(\\tfrac{3}{4} \\kappa_\\text{ratio} \\Delta t^3\\). If \\(\\kappa_\\text{ratio}=1\\), at the beginning of time-step Newmark\u2019s incremental potential Hessian (with damping term) will be equal to that of implicit Euler. This provides a starting basis for intuitively setting damping stiffness. To alternately directly set damping stiffness use the key \"stiffness\"
.
Here in this demo note that we used a smaller time step size at 0.005
s as this is better for the stability of Newmark integration.
\"stiffness_ratio\": 0.1
Newmark, \"stiffness_ratio\": 0.2
Newmark, \"stiffness_ratio\": 0.4
Backwards Euler"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#accuracy-control","title":"Accuracy Control","text":""},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#time-integration-accuracy","title":"Time Integration Accuracy","text":"Nonlinear solver accuracy determines how accurate the dynamic time step solve is satisfied. To set the requested nonlinear solver accuracy, we can use the solver/nonlinear/grad_norm
key to set Newton tolerance on the infinity norm of the Newton increment.
So far, we have used
{\n\"solver\": {\n\"nonlinear\": {\n\"grad_norm\": 1e-05\n}\n}\n}\n
The solver will stop once the current Newton increment cannot change any nodal position larger than 1e-5
m even if a full step is taken. Reducing this improves accuracy, but note that the compute cost can then go up.
There are three additional accuracies for IPC. Each controls a contact accuracy in IPC: the barrier activation distance (\"dhat\"
) which IPC uses to determine if objects are in contact and exert contact forces; the tangent velocity (\"epsv\"
) determining where IPC sees the touching objects as not sliding and so exerts static friction forces; and the maximum amount of friction iterations (\"friction_iterations\"
) that IPC updates friction tangent and normal forces.
By default PolyFEM uses
{\n\"contact\": {\n\"dhat\": 1e-3,\n\"epsv\": 1e-3\n},\n\"solver\": {\n\"contact\": {\n\"friction_iterations\": 1\n}\n}\n}\n
Note
Unlike the original IPC code, these values are not scaled by the bounding box size.
The default setting provides a good trade-off between accuracy and efficiency, where there are no visible gaps, no obvious sliding artifacts, or friction force in inaccurate directions.
We can set \"friction_iterations\"
set to -1
to iterate until the tangent operator and normal force converges to obtain even more accurate results. Note that IPC does not guarantee convergence for this case. In practice, for more accurate friction in large deformation or high-speed impact scenes, \"friction_iterations\"
at 2
~4
so far appears generally sufficient.
For collision obstacles (including closed surfaces), one can directly specify the path to their mesh files (.obj
, .stl
, .ply
, etc.) in the script to use it.
For the simulated objects that are tetrahedral meshes, PolyFEM supports MSH files. PolyFEM supports both ASCII and binary encoded version 2.2 and 4.1 files through the use of MshIO.
To generate a tetrahedral mesh from a triangle mesh, we recommend using fTetWild.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#restarting-a-simulation","title":"Restarting a Simulation","text":"To learn how to restart a simulation, see here.
"},{"location":"tutorials/ipc_quick_start_guide/ipc_quick_start_guide/#more-simulation-examples","title":"More Simulation Examples","text":"Hopefully, now you know the basics of how to use IPC within PolyFEM. For more examples, we have set up all the simulations in the original IPC paper (and more!) and you can find them all here.
If you have any further questions, feel free to post an issue on the PolyFEM GitHub repo.
"},{"location":"tutorials/ipc_quick_start_guide/rotating-obstacle/","title":"Rotating obstacle","text":"In\u00a0[2]: Copied!import numpy\nimport sympy\nimport numpy import sympy In\u00a0[3]: Copied!
omega_x, omega_y, omega_z = sympy.symbols('omega_x omega_y omega_z')\nc_x, c_y, c_z = sympy.symbols('c_x c_y c_z')\nx, y, z, t = sympy.symbols('x y z t')\n\ndef deg2rad(deg):\n return deg * sympy.pi / 180\nomega_x, omega_y, omega_z = sympy.symbols('omega_x omega_y omega_z') c_x, c_y, c_z = sympy.symbols('c_x c_y c_z') x, y, z, t = sympy.symbols('x y z t') def deg2rad(deg): return deg * sympy.pi / 180
$$ \\begin{bmatrix} \\Delta{x} \\\\ \\Delta{y} \\\\ \\Delta{z} \\end{bmatrix} = R_x(\\omega_x t) R_y(\\omega_y t) R_z(\\omega_z t) \\left( \\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix} - \\begin{bmatrix} c_x \\\\ c_y \\\\ c_z \\end{bmatrix} \\right) + \\begin{bmatrix} c_x \\\\ c_y \\\\ c_z \\end{bmatrix} - \\begin{bmatrix} x \\\\ y \\\\ z \\end{bmatrix} $$
In\u00a0[4]: Copied!Rx = numpy.array([\n [1, 0, 0],\n [0, sympy.cos(omega_x*t), -sympy.sin(omega_x*t)],\n [0, sympy.sin(omega_x*t), sympy.cos(omega_x*t)]\n])\n\nRy = numpy.array([\n [sympy.cos(omega_y*t), 0, sympy.sin(omega_y*t)],\n [0, 1, 0],\n [-sympy.sin(omega_y*t), 0, sympy.cos(omega_y*t)]\n])\n\nRz = numpy.array([\n [sympy.cos(omega_z*t), -sympy.sin(omega_z*t), 0],\n [sympy.sin(omega_z*t), sympy.cos(omega_z*t), 0],\n [0, 0, 1]\n])\n\nR = Rx @ Ry @ Rz\n\nc = numpy.array([c_x, c_y, c_z])\npos = numpy.array([x, y, z])\ndisp = R @ (pos - c) + c - pos\n\ndisplay(sympy.Matrix(disp))\nRx = numpy.array([ [1, 0, 0], [0, sympy.cos(omega_x*t), -sympy.sin(omega_x*t)], [0, sympy.sin(omega_x*t), sympy.cos(omega_x*t)] ]) Ry = numpy.array([ [sympy.cos(omega_y*t), 0, sympy.sin(omega_y*t)], [0, 1, 0], [-sympy.sin(omega_y*t), 0, sympy.cos(omega_y*t)] ]) Rz = numpy.array([ [sympy.cos(omega_z*t), -sympy.sin(omega_z*t), 0], [sympy.sin(omega_z*t), sympy.cos(omega_z*t), 0], [0, 0, 1] ]) R = Rx @ Ry @ Rz c = numpy.array([c_x, c_y, c_z]) pos = numpy.array([x, y, z]) disp = R @ (pos - c) + c - pos display(sympy.Matrix(disp)) $\\displaystyle \\left[\\begin{matrix}c_{x} - x + \\left(- c_{x} + x\\right) \\cos{\\left(\\omega_{y} t \\right)} \\cos{\\left(\\omega_{z} t \\right)} - \\left(- c_{y} + y\\right) \\sin{\\left(\\omega_{z} t \\right)} \\cos{\\left(\\omega_{y} t \\right)} + \\left(- c_{z} + z\\right) \\sin{\\left(\\omega_{y} t \\right)}\\\\c_{y} - y + \\left(- c_{x} + x\\right) \\left(\\sin{\\left(\\omega_{x} t \\right)} \\sin{\\left(\\omega_{y} t \\right)} \\cos{\\left(\\omega_{z} t \\right)} + \\sin{\\left(\\omega_{z} t \\right)} \\cos{\\left(\\omega_{x} t \\right)}\\right) + \\left(- c_{y} + y\\right) \\left(- \\sin{\\left(\\omega_{x} t \\right)} \\sin{\\left(\\omega_{y} t \\right)} \\sin{\\left(\\omega_{z} t \\right)} + \\cos{\\left(\\omega_{x} t \\right)} \\cos{\\left(\\omega_{z} t \\right)}\\right) - \\left(- c_{z} + z\\right) \\sin{\\left(\\omega_{x} t \\right)} \\cos{\\left(\\omega_{y} t \\right)}\\\\c_{z} - z + \\left(- c_{x} + x\\right) \\left(\\sin{\\left(\\omega_{x} t \\right)} \\sin{\\left(\\omega_{z} t \\right)} - \\sin{\\left(\\omega_{y} t \\right)} \\cos{\\left(\\omega_{x} t \\right)} \\cos{\\left(\\omega_{z} t \\right)}\\right) + \\left(- c_{y} + y\\right) \\left(\\sin{\\left(\\omega_{x} t \\right)} \\cos{\\left(\\omega_{z} t \\right)} + \\sin{\\left(\\omega_{y} t \\right)} \\sin{\\left(\\omega_{z} t \\right)} \\cos{\\left(\\omega_{x} t \\right)}\\right) + \\left(- c_{z} + z\\right) \\cos{\\left(\\omega_{x} t \\right)} \\cos{\\left(\\omega_{y} t \\right)}\\end{matrix}\\right]$ In\u00a0[5]: Copied!
def print_obstacle_displacement(omega, c):\n print(\"[\")\n subs = {\n omega_x: deg2rad(omega[0]),\n omega_y: deg2rad(omega[1]),\n omega_z: deg2rad(omega[2]),\n c_x: c[0],\n c_y: c[1],\n c_z: c[2],\n }\n for i, d in enumerate(disp):\n expr = d.subs(subs).simplify()\n expr_str = str(expr) if expr.is_constant() else f\"\\\"{str(expr).replace('**', '^')}\\\"\"\n print(\"{}{}\".format(expr_str, \",\" if i < len(disp) - 1 else \"\"))\n print(\"]\")\ndef print_obstacle_displacement(omega, c): print(\"[\") subs = { omega_x: deg2rad(omega[0]), omega_y: deg2rad(omega[1]), omega_z: deg2rad(omega[2]), c_x: c[0], c_y: c[1], c_z: c[2], } for i, d in enumerate(disp): expr = d.subs(subs).simplify() expr_str = str(expr) if expr.is_constant() else f\"\\\"{str(expr).replace('**', '^')}\\\"\" print(\"{}{}\".format(expr_str, \",\" if i < len(disp) - 1 else \"\")) print(\"]\") In\u00a0[6]: Copied!
print_obstacle_displacement([0, 0, -36], [-0.35, 0, 0])\nprint()\nprint_obstacle_displacement([0, 0, 36], [0.35, 0, 0])\nprint_obstacle_displacement([0, 0, -36], [-0.35, 0, 0]) print() print_obstacle_displacement([0, 0, 36], [0.35, 0, 0])
[\n\"-x + y*sin(pi*t/5) + (x + 0.35)*cos(pi*t/5) - 0.35\",\n\"y*cos(pi*t/5) - y - (x + 0.35)*sin(pi*t/5)\",\n0\n]\n\n[\n\"-x - y*sin(pi*t/5) + (x - 0.35)*cos(pi*t/5) + 0.35\",\n\"y*cos(pi*t/5) - y + (x - 0.35)*sin(pi*t/5)\",\n0\n]\nIn\u00a0[7]: Copied!
print_obstacle_displacement([0, 360/0.525, 0], [0, 0.1, 0])\nprint_obstacle_displacement([0, 360/0.525, 0], [0, 0.1, 0])
[\n\"x*cos(3.80952380952381*pi*t) - x + z*sin(3.80952380952381*pi*t)\",\n\"0\",\n\"-x*sin(3.80952380952381*pi*t) + z*cos(3.80952380952381*pi*t) - z\"\n]\nIn\u00a0[12]: Copied!
print_obstacle_displacement([20, 0, 0], [0, 0, 0])\nprint_obstacle_displacement([20, 0, 0], [0, 0, 0])
[\n\"0\",\n\"y*cos(pi*t/9) - y - z*sin(pi*t/9)\",\n\"y*sin(pi*t/9) + z*cos(pi*t/9) - z\"\n]\nIn\u00a0[\u00a0]: Copied!
\n"},{"location":"tutorials/ipc_quick_start_guide/run_all/","title":"Run all","text":"In\u00a0[\u00a0]: Copied!
import sys\nfrom collections import namedtuple\nimport pathlib\nimport subprocess\nimport sys from collections import namedtuple import pathlib import subprocess In\u00a0[\u00a0]: Copied!
simrender_path = pathlib.Path(\"/home/zachary/Development/personal-projects/simrender\")\nif simrender_path.exists():\n sys.path.append(str(simrender_path))\n import render\nsimrender_path = pathlib.Path(\"/home/zachary/Development/personal-projects/simrender\") if simrender_path.exists(): sys.path.append(str(simrender_path)) import render In\u00a0[\u00a0]: Copied!
debug = False\ndebug = False In\u00a0[\u00a0]: Copied!
polyfem_bin = f\"/home/zachary/Development/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin\"\n#polyfem_bin = f\"/Users/zachary/Development/research/polyfem/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin\"\npolyfem_bin = f\"/home/zachary/Development/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin\" #polyfem_bin = f\"/Users/zachary/Development/research/polyfem/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin\" In\u00a0[\u00a0]: Copied!
input_dir = pathlib.Path(__file__).parent / \"input\"\noutput_dir = pathlib.Path(__file__).parent / \"output\"\nvideos_dir = pathlib.Path(__file__).parent / \"videos\"\noutput_dir.mkdir(exist_ok=True, parents=True)\nvideos_dir.mkdir(exist_ok=True, parents=True)\ninput_dir = pathlib.Path(__file__).parent / \"input\" output_dir = pathlib.Path(__file__).parent / \"output\" videos_dir = pathlib.Path(__file__).parent / \"videos\" output_dir.mkdir(exist_ok=True, parents=True) videos_dir.mkdir(exist_ok=True, parents=True) In\u00a0[\u00a0]: Copied!
for script in input_dir.glob(\"*.json\"):\n if script.name == \"ipc-defaults.json\":\n continue\n\n print(script.name)\n # yes_or_no = input(\"Press enter to run [Y/n]: \")\n # if yes_or_no.lower() not in [\"\", \"y\", \"yes\"]:\n # continue\n\n subprocess.run(\n ([\"lldb\", \"--\"] if debug else []) + [\n polyfem_bin,\n \"-j\", str(script),\n \"-o\", str(output_dir / script.stem),\n \"--log_level\", \"debug\"\n ])\n\n if simrender_path is not None and simrender_path.exists():\n render_args = render.parse_args([\n \"--input\", str(list((output_dir /\n script.stem).glob(\"*.pvd\"))[0]),\n \"--output\", str(videos_dir / (script.stem + \".mp4\")),\n \"--bg-color\", \"46\", \"48\", \"62\", \"255\",\n \"--base-zoom\", \"2\",\n # \"--drop-frames\", \"4\"\n ])\n render.main(render_args)\nfor script in input_dir.glob(\"*.json\"): if script.name == \"ipc-defaults.json\": continue print(script.name) # yes_or_no = input(\"Press enter to run [Y/n]: \") # if yes_or_no.lower() not in [\"\", \"y\", \"yes\"]: # continue subprocess.run( ([\"lldb\", \"--\"] if debug else []) + [ polyfem_bin, \"-j\", str(script), \"-o\", str(output_dir / script.stem), \"--log_level\", \"debug\" ]) if simrender_path is not None and simrender_path.exists(): render_args = render.parse_args([ \"--input\", str(list((output_dir / script.stem).glob(\"*.pvd\"))[0]), \"--output\", str(videos_dir / (script.stem + \".mp4\")), \"--bg-color\", \"46\", \"48\", \"62\", \"255\", \"--base-zoom\", \"2\", # \"--drop-frames\", \"4\" ]) render.main(render_args)"},{"location":"tutorials/multi-material/multi-material/","title":"Simulating Multiple Materials in a Single Mesh","text":"Author: Zachary Ferguson and Hanwen Zhao
In this tutorial, we will demonstrate how to create a multi-material object using fTetWild and simulate it using PolyFEM.
The data for this tutorial can be found here.
"},{"location":"tutorials/multi-material/multi-material/#prerequisites","title":"Prerequisites","text":"The following items are necessary to complete this tutorial. To replicate the experiment, you can feel free to use either the given mesh files or your own mesh.
The instructions for building PolyFEM can be found here. After compilation, to use PolyFEM in any working directory machine, we suggest adding an alias
alias polyfem='path/to/PolyFEM/build/PolyFEM_bin'\n
to your ~/.bashrc
or ~/.zshrc
file. Then you can use it by
polyfem --help\n
"},{"location":"tutorials/multi-material/multi-material/#build-ftetwild","title":"Build fTetWild","text":"You can find the instruction for building fTetWild here. After doing so you should have an executable file FloatTetwild_bin
. For convenience we can again define an alias for this binary:
alias tetwild='path/to/fTetWild/build/FloatTetwild_bin'\n
"},{"location":"tutorials/multi-material/multi-material/#creating-the-mesh","title":"Creating the Mesh","text":""},{"location":"tutorials/multi-material/multi-material/#input-meshes","title":"Input Meshes","text":"We will use three mesh files to create a simple multi-material object: left_box.obj
, middle_box.obj
, and right_box.obj
. The left and right boxes will have nearly rigid material properties, while the middle box will be more flexible.
left_box.obj
Middle: middle_box.obj
Right: right_box.obj
"},{"location":"tutorials/multi-material/multi-material/#constructive-solid-geometry","title":"Constructive Solid Geometry","text":"The next step is to create a union of these three meshes, this can be done using fTetWild. To create a union of three objects, we can create a JSON file
{\n\"operation\": \"union\",\n\"left\": {\n\"operation\": \"union\",\n\"left\": \"left_box.obj\",\n\"right\": \"middle_box.obj\"\n},\n\"right\": \"right_box.obj\"\n}\n
and use it as input to fTetWild tetwild --csg /path/to/union.json --no-color -o cubes.msh\n
The --csg
flag stands for constructive solid geometry which describes how to construct a shape using set operations between other shapes (e.g., union, intersection, and difference). In our case, we want to union the three boxes together.
The --no-color
is optional and disables the color output of fTetWild which can be used to visualize the quality of elements.
The combined mesh should look like this:
Note
To view .msh
files you can use Gmsh.
fTetWild will sometimes produce extra floating vertices that are not part of the mesh. These extra vertices do not harm anything, but can inflate the bounding box making it hard to select a side of the cube in PolyFEM. To remove these vertices we provide a simple Python script here.
"},{"location":"tutorials/multi-material/multi-material/#setting-up-the-simulation","title":"Setting up the Simulation","text":"We will setup the simulation using PolyFEM\u2019s JSON interface. For more details, please refer to the JSON Input documentation.
We will go over the JSON script section by section. The complete JSON file can be found in the GitHub Repo.
"},{"location":"tutorials/multi-material/multi-material/#geometry","title":"Geometry","text":"{\n\"geometry\": {\n\"mesh\": \"cubes_v22.msh\"\n}\n}\n
The \"geometry\"
section specifies all required simulation geometry data. The \"mesh\"
field defines the path to the volumetric mesh file. In this tutorial, only the cubes_v22.msh
file from fTetwild will be utilized.
{\n\"boundary_conditions\": {\n\"rhs\": [0, 0, 0],\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"-t\", 0, 0]\n}, {\n\"id\": 3,\n\"value\": [\"t\", 0, 0]\n}]\n}\n}\n
In boundary conditions
, we permit the left box
and right box
sections to have Dirichlet boundaries that move along the x-axis as a function of time t
. Here we use the default boundary IDs assigned described here.
The rhs
is defined as [0, 0, 0]
, which indicates that the simulation has no prescribed body forces (i.e., no gravity).
{\n\"materials\": [{\n\"id\": 1,\n\"E\": 2e11,\n\"nu\": 0.3,\n\"rho\": 7750,\n\"type\": \"NeoHookean\"\n}, {\n\"id\": 2,\n\"E\": 2.55e7,\n\"nu\": 0.48,\n\"rho\": 1700,\n\"type\": \"NeoHookean\"\n}, {\n\"id\": 3,\n\"E\": 2e11,\n\"nu\": 0.3,\n\"rho\": 7750,\n\"type\": \"NeoHookean\"\n}]\n}\n
In the materials
section, we assign identical material properties to the left and right boxes but use a softer material for the middle box.
The volume IDs in this case are loaded directly from the cubes_v22.msh
file. fTetWild automatically assigns these labels based on which domain the elements falls in the CSG.
Warning
Loading volume IDs from the mesh file is currently only supported with version 4.1 MSH files (both ASCII and binary).
"},{"location":"tutorials/multi-material/multi-material/#time-dependent-simulation","title":"Time-Dependent Simulation","text":"{\n\"time\": {\n\"dt\": 0.0025,\n\"time_steps\": 20\n}\n}\n
In the \"time\"
section, we define our time step size as 0.0025
seconds and the total number of steps to be 20
."},{"location":"tutorials/multi-material/multi-material/#contact","title":"Contact","text":"{\n\"contact\": {\n\"enabled\": true,\n\"dhat\": 0.001\n}\n}\n
We enable contact by defining a \"contact\"
section as above.
{\n\"solver\": {\n\"linear\": {\n\"solver\": \"Eigen::PardisoLDLT\"\n},\n\"nonlinear\": {\n\"line_search\": {\n\"method\": \"backtracking\"\n},\n\"solver\": \"newton\",\n\"grad_norm\": 1e-05,\n\"use_grad_norm\": true\n},\n\"advanced\": {\n\"lump_mass_matrix\": true\n}\n}\n}\n
We make a few adjustments to the solver. Here we are using Newton with backtracking line-search and Eigen::PardisoLDLT
for linear solves. We also set the convergence tolerance for the gradient norm to 1e-05
.
{\n\"space\": {\n\"discr_order\": [{\n\"id\": 1,\n\"order\": 1\n}, {\n\"id\": 2,\n\"order\": 2\n}, {\n\"id\": 3,\n\"order\": 1\n}]\n}\n}\n
Lastly, we demonstrate that PolyFEM can simulate mixed order elements. In this example, we choose to use linear P1 elements for the left and right box, but use quadratic P2 elements for the middle box.
The use of higher-order representations can lead to more precise calculations with slightly more running time.
"},{"location":"tutorials/multi-material/multi-material/#running-the-simulation","title":"Running the Simulation","text":"We can use the following command to run the simulation:
polyfem -j stretch-cubes.json -o output/\n
The simulation results will be written to output/
as a sequence of VTU file and a PVD file for the time sequence.
To visualize the simulation results in VTU
format, we can use ParaView
, an open-source, multi-platform data analysis and visualization application.
To view the results, please follow the instruction below.
File
- Open
, select sequence group file step.vtu or step.vtm.Apply
under the tab Properties
located in the left side of the GUI.Wrap By Vector
to apply the displacement to the objects. This function can be found from the top menu bar.Apply
under the tab Properties
.Play
button can be used to view the time sequence results.This tutorial showcases how to set up and use PolyFEM to simulate screwing a bolt into a nut (for example, to be used in a robotic assembly simulation).
"},{"location":"tutorials/screw/screw/#prerequisites","title":"Prerequisites","text":"In this tutorial, we assume you have already installed PolyFEM on your machine. If not, please follow the instructions here. After compilation, to use PolyFEM in any working directory machine, we can set up an alias for the main executable for ./PolyFEM_bin
by adding the following to ~/.bashrc
or ~/.zshrc
according to the type of your shell.
alias polyfem='path/to/PolyFEM/build/PolyFEM_bin'\n
Then you can use it by
polyfem --help\n
"},{"location":"tutorials/screw/screw/#data-preparation","title":"Data Preparation","text":"The data needed in this tutorial can be found here. The volume mesh files are all made by fTetWild. Feel free you make your screws and nuts.
"},{"location":"tutorials/screw/screw/#overview","title":"Overview","text":"In these tutorials, the bolt will be screwed into the nut in several different ways. The tutorials can also be found at Github: Screw tutorials. The screw is represented as a volume mesh
\"geometry\": [{\n\"mesh\": \"data/screw-big.msh\",\n\"transformation\": {\n\"translation\": [0, 0, 0],\n\"scale\": 0.01\n},\n\"volume_selection\": 1,\n\"surface_selection\": 2\n}]\n
and the nut is set to be an obstacle just to speed up the simulation by setting \"is_obstacle\": true
because obstacles in PolyFEM are rigid and only the surface of obstacles is taken into consideration.
\"geometry\": [{\n// ...\n}, {\n\"mesh\": \"data/nut-big.stl\",\n\"is_obstacle\": true,\n\"transformation\": {\n\"translation\": [0, -0.02675, 0],\n\"scale\": 0.01\n}\n}]\n
For other parameters, the bolt is using the parameter of steel
\"materials\": [{\n\"type\": \"NeoHookean\",\n\"id\": 1,\n\"E\": 2e11,\n\"nu\": 0.3,\n\"rho\": 8050\n}]\n
"},{"location":"tutorials/screw/screw/#fully-constrained-screw-in-all-dimensions","title":"Fully Constrained Screw in All Dimensions","text":"In this tutorial, the screw is completely controlled by Dirichlet boundary conditions in all three dimensions. Thus the trajectory of the screw is fixed(rotation and transformation) and needs to be calculated carefully. For a single-threaded bolt and every rotation of \\(360^{\\circ}\\), the bolt will go into the nut by the thread distance. In this case, the thread distance of the screw used in this tutorial is 1.33m. Therefore the Dirichlet Boundary Condition is set to
\"dirichlet_boundary\": [{\n\"id\": 2,\n\"value\": [\n\"x*cos(-2*pi*t) + z * sin(-2*pi*t)-x\",\n\"-1.33*0.01*t\", \"-1*x*sin(-2*pi*t) + z * cos(-2*pi*t)-z\"\n],\n\"dimension\": [true, true, true]\n}]\n
Here the angular velocity of the rotation is \\(-2\\pi\\) and the bolt is getting into the nut along the y-axis by \\(1.33\\times 0.01\\) since the bolt and the nut is scaled by 0.01. The \"dimension\"
argument is set to be true for all three dimensions to make sure the bolt is in full control.
To view the whole JSON file for this case, please go to screw.json.
To run this JSON with PolyFEM, please go to the GitHub repo Github: Screw tutorials and run the following in your terminal
polyfem --json screws.json --output_dir results\n
"},{"location":"tutorials/screw/screw/#constrained-rotation-but-free-movement-in-the-direction-of-feed","title":"Constrained Rotation but Free Movement in the Direction of Feed","text":"In this tutorial, only two dimensions have Dirichlet boundary conditions. For the y-axis or the direction of feed, the screw is completely free. Therefore we only need to specify the rotation in the Dirichlet boundary condition and the bolt would get into the nut by basic high school physics.
\"dirichlet_boundary\": [{\n\"id\": 2,\n\"value\": [\n\"x*cos(-2*pi*t) + z * sin(-2*pi*t)-x\",\n\"-1.33*0.01*t\", \"-1*x*sin(-2*pi*t) + z * cos(-2*pi*t)-z\"\n],\n\"dimension\": [true, false, true]\n}]\n
The only thing we need to modify in the \"dirichlet_boundary\"
argument is to change the y-axis in \"dimension\"
to false.
Instead of putting Dirichlet boundary conditions on the whole bolt, we can also constrain only the top of the bolt to simulate some actuators. The following image is the visualization of the bolt only constrained on the top of the bolt by Dirichlet boundary conditions.
To make specified boundary condition selections, please refer to Selections. In the JSON file, we need to change the surface_selection
to the axis-plane selection method instead of using an integer to select the whole body of the bolt.
\"geometry\": [{\n\"mesh\": \"data/screw-big.msh\",\n\"transformation\": {\n\"translation\": [0, 0, 0],\n\"scale\": 0.01\n},\n\"volume_selection\": 1,\n\"surface_selection\": [{\n\"id\": 3,\n\"axis\": \"y\",\n\"position\": 0.11\n}]\n}]\n
which is to apply the boundary condition with id=3
to the meshes whose coordinates in the y-axis are greater than 0.11 (If set \"axis\": \"-y\"
is to select the negative side of the y-axis which are the meshes whose y-coordinates are less then 0.11).
To view the whole JSON file for this, please go to top_constrained.json.
"},{"location":"tutorials/screw/screw/#two-facets-constrained-bolt","title":"Two Facets Constrained Bolt","text":"In addition to constraining the top part of the bolt to simulate an actuator, we can also only constrain the two facets of the head of the bolt to simulate a user pinching the bolt with two fingers and trying to screw the bolt into the nut. The following image is the visulization of contraining just two facets of the bolt.
In this case, the \"boundary_sidesets\"
becomes:
\"boundary_sidesets\": [{\n\"id\": 2,\n\"axis\": -3,\n\"position\": -0.039\n}, {\n\"id\": 2,\n\"axis\": 3,\n\"position\": 0.039\n}]\n
To view the whole JSON file, please go to two_facets_contrained.json.
"},{"location":"tutorials/screw/screw/#gravity-controlled-bolt","title":"Gravity Controlled Bolt","text":"In theory, if the friction is 0 and the gravity is the only force applied to the bolt, then the bolt should be able to get into the nut automatically under gravity. In this case, it is not very useful but it is interesting to test. There\u2019s no need to set any boundary conditions because the bolt is completely free. The only thing that needs to be done is to enable gravity in the JSON file by setting
\"boundary_conditions\": {\n\"rhs\": [0, 9.81, 0]\n},\n
Note that the direction of gravity is along the y-axis.
The whole JSON file is here only_gravity.json.
"},{"location":"tutorials/sling-shot/sling-shot/","title":"Sling Shot","text":"In this tutorial, we are going to develop an environment from scratch using polyfempy
and Python for a sling-shot. In this scene, we have two fingers holding the ball and the fingers will pull the rubber band and then release the ball into the air.
"},{"location":"tutorials/sling-shot/sling-shot/#installation-of-python-bindings-of-polyfem","title":"Installation of Python Bindings of PolyFEM","text":"
In this tutorial, we are assuming you have already installed polyfempy
on your machine. If not, please follow the instructions here. Note that there\u2019s no need to install standalone PolyFEM. All the dependencies that polyfempy
requires will be installed automatically including PolyFEM. Also please note that please install and compile polyfempy
from source by doing
python setup.py install\n
instead of using the Conda deployment. After installation, please try to run
python -c \"import polyfempy as pf\"\n
to test if polyfempy
is installed successfully. Note that this tutorial is using Conda virtual environment."},{"location":"tutorials/sling-shot/sling-shot/#installation-of-other-dependencies","title":"Installation of Other Dependencies","text":"To build this project, there are some other dependencies we need. Note that meshio
and igl
are optional. They are only required if you want to render the scenes with python. 1. numpy conda install numpy
2. meshio(optional) conda install -c conda-forge meshio
3. python bindings of libigl(optional) conda install -c conda-forge igl
The data needed in this tutorial can be found here. For triangle meshes, they are in surf_mesh folder and the volume meshes are in vol_mesh folder The volume mesh files are all made by fTetWild. Feel free you make you own sphere, rubber band and fingers.
"},{"location":"tutorials/sling-shot/sling-shot/#tutorial","title":"Tutorial","text":"All the code and JSONs can be found at Github: Slingshot Tutorial. The file tree of this project is:
project\n|___pushbox\n| |___src\n| |___assets\n| |___data\n| | |___surf_mesh\n| | |___vol_mesh\n| |___json\n|___test.py\n
"},{"location":"tutorials/sling-shot/sling-shot/#json-environment-setup","title":"Json Environment Setup","text":"slingshot.json
in the JSON folder for the initial setup with the sphere, rubber band and fingers in it. Let\u2019s load the objects! \"geometry\": [\n{\n\"mesh\": \"slingshot/assets/data/vol_mesh/mat.msh\",\n\"transformation\": {\n\"translation\": [\n0.018,\n0.115,\n0\n],\n\"rotation\": [\n0,\n0,\n90\n],\n\"scale\": [\n0.00385,\n0.01,\n0.21\n]\n},\n\"volume_selection\": 1,\n\"advanced\": {\n\"normalize_mesh\": false\n},\n\"surface_selection\": [\n{\n\"id\": 3,\n\"axis\": -3,\n\"position\": -0.1\n},\n{\n\"id\": 3,\n\"axis\": 3,\n\"position\": 0.1\n}\n]\n},\n{\n\"mesh\": \"slingshot/assets/data/vol_mesh/sphere_grooved.msh\",\n\"transformation\": {\n\"translation\": [\n0,\n0.115,\n0\n],\n\"rotation\": [\n90,\n0,\n0\n],\n\"scale\": 0.0386\n},\n\"volume_selection\": 2,\n\"advanced\": {\n\"normalize_mesh\": false\n}\n},\n{\n\"mesh\": \"slingshot/assets/data/surf_mesh/left_finger.obj\",\n\"is_obstacle\": true,\n\"enabled\": true,\n\"transformation\": {\n\"translation\": [\n0.04,\n0.16032,\n0.0\n],\n\"rotation\": [\n0,\n-90,\n0\n],\n\"scale\": 1\n},\n\"surface_selection\": 1000\n},\n{\n\"mesh\": \"slingshot/assets/data/surf_mesh/right_finger.obj\",\n\"is_obstacle\": true,\n\"enabled\": true,\n\"transformation\": {\n\"translation\": [\n0.04,\n0.06965,\n0.0\n],\n\"rotation\": [\n0,\n-90,\n0\n],\n\"scale\": 1\n},\n\"surface_selection\": 1001\n}\n]\n
The first mesh is a 21cm rubber band. It is originally a mat but then rescaled to the shape of a rubber band. The second mesh is a sphere with a groove in the middle part of its body in case the rubber band might slide off the sphere if the friction is not enough. As for the two fingers, there\u2019s no need to consider their deformation so they are set to obstacles. The displacements are not zero vectors because the fingers need to squeeze the ball and hold the ball tightly enough to pull the rubber band without sliding off the fingers while still pulling. Note that the volume_selection
here means to select the entire volume of the tetrahedron mesh to be simulated and the surface_selection
means the surface area that you want to select. For example, both fingers are obstacles and they are triangle meshes. So to move and simulate them, I would like to select the entire finger. Thus here I can select them by giving the whole mesh an index: {\n\"mesh\": \"slingshot/assets/data/surf_mesh/right_finger.obj\",\n\"is_obstacle\": true,\n...\n\"surface_selection\": 1001\n}\n
In some scenarios, maybe the user only wants to select a part of the mesh and give the selected part a different movement from other parts. Then this could be done by setting the surface_selection part with specialized fields. For example, in this slingshot case, I would like to set the two ends of the rubber band to be still and the rest part to be able to move freely so that the rubber band will be extended while the sphere is pulled back by two fingers. To achieve this, the two ends of the rubber band can be selected by: {\n\"mesh\": \"slingshot/assets/data/vol_mesh/mat.msh\",\n...\n\"surface_selection\": [\n{\n\"id\": 3,\n\"axis\": -3,\n\"position\": -0.1\n},\n{\n\"id\": 3,\n\"axis\": 3,\n\"position\": 0.1\n}\n]\n}\n
The detailed explanation of id
, axis
and position
can be found at Selections in PolyFEM\"materials\": [\n{\n\"id\": 2,\n\"E\": 10000000.0,\n\"nu\": 0.4,\n\"rho\": 1150,\n\"type\": \"NeoHookean\"\n},\n{\n\"id\": 1,\n\"E\": 10000000.0,\n\"nu\": 0.4,\n\"rho\": 1150,\n\"type\": \"NeoHookean\"\n}\n]\n
\"id\":3
is set to zero for the two ends of the rubber band. \"boundary_conditions\": {\n\"obstacle_displacements\": [\n{\n\"id\": 1000,\n\"value\": [\n\"0\",\n\"-0.02 * t\",\n\"0\"\n]\n},\n{\n\"id\": 1001,\n\"value\": [\n\"0\",\n\"0.02 * t\",\n\"0\"\n]\n}\n],\n\"rhs\": [\n0,\n9.81,\n0\n],\n\"dirichlet_boundary\": [\n{\n\"id\": 3,\n\"value\": [\n0,\n0,\n0\n]\n}\n]\n}\n
To view the whole JSON configuration file, please go to sling_shot.json.After loading every object, the environment should look like
"},{"location":"tutorials/sling-shot/sling-shot/#python-environment-development","title":"Python Environment Development","text":"In this section, we will develop a python environment to do the slingshot.
"},{"location":"tutorials/sling-shot/sling-shot/#class-initialization","title":"Class Initialization","text":"In the src
folder, create a python file slingshot.py
. In this file, let\u2019s first import necessary libraries and create a PushBox class with its __init__
function:
import polyfempy as pf\nimport json\nimport numpy as np\n\n\nclass SlingShot:\n def __init__(self) -> None:\n self.asset_file = 'slingshot/assets/json/sling_shots.json'\n with open(self.asset_file,'r') as f:\n self.config = json.load(f)\n self.dt = self.config[\"dt\"]\n self.step_count = 1\n self.solver = pf.Solver()\n self.solver.set_log_level(3)\n self.solver.set_settings(json.dumps(self.config))\n self.solver.load_mesh_from_settings()\n self.dt = self.config[\"dt\"]\n self.t0 = self.config[\"t0\"]\n self.solver.init_timestepping(self.t0, self.dt)\n self.id_to_mesh = {}\n self.id_to_position = {}\n self.id_to_vf = {}\n for mesh in self.config[\"meshes\"]:\n self.id_to_mesh[mesh[\"body_id\"]] = mesh[\"mesh\"]\n self.id_to_position[mesh[\"body_id\"]] = mesh[\"position\"]\n\n # To grasp and hold the sphere very tightly\n self.pre_steps = 4\n for i in range(self.pre_steps):\n self.run_simulation()\n self.cumulative_action = {\"0\":np.array([0, -0.02 * self.dt * self.step_count, 0, 0.02 * self.dt * self.step_count]), \"1\":np.array([0, 0.02 * self.dt, 0, 0.02 * self.dt])}\n
In the __init__
function, we load the environment configuration from the JSON file we just made, initialize a step counter and the PolyFEM solver. Here we set the log_level of PolyFEM to 3 which only displays the errors and warnings from PolyFEM. Feel free to change the log level to get more information or less based on docs for log_levels (More specifically, \u2013log_level ENUM:value in {trace->0,debug->1,info->2,warning->3,error->4,critical->5,off->6} OR {0,1,2,3,4,5,6}). One thing to mention is that polyfempy
is always calculating the result for this time step based on the displacement from the initial position which is the position read from the JSON file. However, we only pay close attention to the action or movement we want to exert for this timestep, so self.cumulative_action
would take care of previous displacements.
Different from the PushBox environment, in this __init__
function, we need to squeeze the sphere to a certain point so that the sphere would never slide off the fingers unless the user decides to release it. That\u2019s why at the end of the __init__
function four pre_steps
are trying to close the fingers and squeeze the rubber ball.
The solver is already initialized in the previous section, now we can design an interface for the users to pass new actions to the sphere from their side. In this tutorial, the action space is 4-dimensional and consists of movement of the fingers along the x-axis, y-axis, and z-axis and one action to close or open the two fingers. The argument actions
in this function are a dictionary and contain the actions for both fingers.
def set_boundary_conditions(self, actions:dict):\n t0 = self.t0\n t1 = t0 + self.dt\n for mesh_id, action in actions.items():\n self.solver.update_obstacle_displacement(\n int(mesh_id),\n [\n f\"{self.cumulative_action[mesh_id][0]} + ((t-{t0})*{action[0]})/({t1-t0})\",\n f\"{self.cumulative_action[mesh_id][1] + self.cumulative_action[mesh_id][3]} + ((t-{t0})*{action[1] + action[3]})/({t1-t0})\",\n f\"{self.cumulative_action[mesh_id][2]} + ((t-{t0})*{action[2]})/({t1-t0})\"\n ]\n )\n self.cumulative_action[mesh_id] += action\n
In the current setting, the fingers are opening and closing along the y-axis. That is why the action to control the fingers to open or close also needs to be added to the overall y-axis. Also since there are two fingers in the scene, we use a for loop to update the displacements for both of them."},{"location":"tutorials/sling-shot/sling-shot/#run-simulation-for-the-current-timestep","title":"Run simulation for the current timestep","text":"def run_simulation(self):\n self.solver.step_in_time(0, self.dt, self.step_count) # run simulation to the current time step, and the length of each timestep is self.dt\n self.step_count += 1 # increment the step counter\n self.t0 += self.dt # increment the starting time point for the next time step\n
To simulate the current timestep, we need to call self.solver.step_in_time
, where the first argument of this function is the initial time of the simulation and the second argument is the time length for each time step and the third argument is the total time steps have been simulated now.
If you want to get the position information of each object in the simulation when you make interactions with the environment, you can get the positions of each mesh using this function.
def get_object_positions(self):\n points, tets, _, body_ids, displacement = self.solver.get_sampled_solution()\n self.id_to_position = {}\n self.id_to_vertex = {}\n for mesh_id, _ in self.id_to_mesh.items():\n vertex_position = points + displacement\n self.id_to_vertex[mesh_id] = vertex_position[body_ids[:,0]==mesh_id]\n mean_cell_id = np.mean(body_ids[tets], axis=1).astype(np.int32).flat\n tet_barycenter = np.mean(vertex_position[tets], axis=1)\n self.id_to_position[mesh_id] = np.mean(tet_barycenter[mean_cell_id == mesh_id], axis=0)\n return self.id_to_position\n
This function gets sample vertices for each mesh from the solver and these vertices are averaged to get a \u201ccentroid\u201d of the object to represent its position.
"},{"location":"tutorials/sling-shot/sling-shot/#step-function-exposed-to-the-user","title":"Step function exposed to the user","text":"def step(self, action: np.ndarray):\n actions = {\n # x, y, z gripper_displacement\n \"0\": np.array([action[0],\n action[1],\n action[2],\n -1 * action[3]/2]),\n \"1\": np.array([action[0],\n action[1],\n action[2],\n action[3]/2])\n }\n self.set_boundary_conditions(actions)\n self.run_simulation()\n return self.get_object_positions()\n
The step function here takes the action from the user and simulates the timestep and returns the positions for each object to the user. Note that the action from the user is a numpy
array containing the x,y,z
movement of the two fingers and the displacement between the two fingers for the current timestep. Then the action needs to be transferred into a dictionary that \"self.set_boundary_conditions\"
function would recognize for both of the fingers. At the same time, the two fingers\u2019 displacements are coupled so in the actions
dictionary, the displacements need to be decoupled from both fingers and let them move in opposite directions. To view the implementation of the whole class, please go to slingshot.py.
"},{"location":"tutorials/sling-shot/sling-shot/#test-of-the-environment","title":"Test of the Environment","text":"Here\u2019s a very simple test case:
from slingshot.src.slingshot import SlingShot\nimport numpy as np\n\nenv = SlingShot()\nprint(\"Initialzied.\")\n# pull the rubber band\nfor i in range(3):\n action = np.array([0.1,0,0,0])\n env.step(action)\n\n# release it\naction = np.array([0,0,0,-0.1])\nenv.step(action)\n# let it fly\nfor i in range(20):\n action = np.array([0,0,0,0])\n env.step(action)\n
You can create a test.py file for this, and run it in the project folder: shell= python test.py
The result should be like the gifs at the beginning."},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/","title":"Sphere Pushing A Box","text":"Author: Duo Zhang In this tutorial, we will be focusing on how to make an environment using a sphere to push a box on a table from scratch. In this scenario, one single JSON file for PolyFEM is seemingly not enough to simulate a varying and interactive environment like this. Therefore we will be using polyfempy
, the python bindings for PolyFEM, to enable a more functional and versatile development.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#prerequisites","title":"Prerequisites","text":""},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#install-the-python-bindings-of-polyfem","title":"Install the Python Bindings of PolyFEM","text":"
In this tutorial, we are assuming you have already installed polyfempy in your machine. If not, please follow the instructions here. Note that there is no need to install standalone PolyFEM. All the dependencies that polyfempy requires will be installed automatically including PolyFEM. Also please note that please install and compile polyfempy from source by doing
python setup.py install\n
instead of using the conda depolyment. After installation, please try to run
python -c \"import polyfempy as pf\"\n
to test if polyfempy
is installed successfully."},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#other-dependencies","title":"Other Dependencies","text":"Note that this tutorial is using a Conda virtual environment.
To build this project, there are some other depencies we need. Note that meshio and igl are optional. They are only required if you want to render the scenes with python.
conda install numpy
conda install -c conda-forge meshio
conda install -c conda-forge igl
The data needed in this tutorial can be found here. For triangle meshes, they are in surf_mesh folder and the volume meshes are in vol_mesh folder. The volume mesh files are all made using fTetWild. Feel free you make your own spheres and boxes.
All the codes and JSON files can be found here.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#environment-with-volume-meshes","title":"Environment with Volume Meshes","text":""},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#json-environment-setup","title":"JSON Environment Setup","text":"The first step is to make a JSON file push_box_all_vol_mesh.json
in the JSON folder for the initial setup with the sphere, cube, and the table in it. Let\u2019s load the objects!
{\n\"geometry\": [{\n\"mesh\": \"pushbox/assets/data/vol_mesh/sphere.msh\",\n\"transformation\": {\n\"translation\": [-1.0, 0.2, 0],\n\"scale\": 0.1\n},\n\"volume_selection\": 1,\n\"surface_selection\": 1\n}, {\n\"mesh\": \"pushbox/assets/data/vol_mesh/cube.msh\",\n\"transformation\": {\n\"translation\": [0, -0.0051, 0],\n\"scale\": [4, 0.01, 4]\n},\n\"volume_selection\": 2,\n\"surface_selection\": 2,\n}, {\n\"mesh\": \"pushbox/assets/data/vol_mesh/cube.msh\",\n\"transformation\": {\n\"translation\": [-0.65, 0.2, 0],\n\"scale\": 0.4\n},\n\"volume_selection\": 3,\n\"surface_selection\": 3\n}]\n}\n
The first mesh is the sphere, and the third one is the cube. Here, the cube\u2019s mesh is re-scaled to act as the table. Feel free to use a 2D plane, or the mat mesh as the table in the GitHub repo. The second thing is to give proper material parameters to these objects.
{\n\"materials\": [{\n\"id\": 1,\n\"E\": 2e11,\n\"nu\": 0.3,\n\"rho\": 7750,\n\"type\": \"NeoHookean\"\n}, {\n\"id\": 2,\n\"E\": 2e11,\n\"nu\": 0.3,\n\"rho\": 7750,\n\"type\": \"NeoHookean\"\n}, {\n\"id\": 3,\n\"E\": 1e8,\n\"nu\": 0.48,\n\"rho\": 1500.0,\n\"type\": \"NeoHookean\"\n}],\n}\n
The material parameters go to their matching meshes with the same \"volume_selection\"
s. For the boudary conditions, we can set it as:
{\n\"boundary_conditions\": {\n\"rhs\": [0, 9.81, 0],\n\"dirichlet_boundary\": [{\n\"id\": 1,\n\"value\": [\"0\", \"0\", \"0\"]\n}, {\n\"id\": 2,\n\"value\": [0, 0, 0]\n}]\n}\n}\n
The first Dirichlet boundary condition with \"id\":1
is set for the sphere. They are set to [\"0\", \"0\", \"0\"]
just for initialization and the value of the boundary condition will be modified during the interaction. The second Dirichlet boundary condition is for the table since there\u2019s no need for the table to move. That\u2019s why it\u2019s set to [0,0,0]
.
Note that there\u2019s no Dirichlet boundary condition with \"id\":3
, however, the \"boundary_id\"
for the cube is set to 3. This is because we want the cube to be completely free in all three dimensions.
In addition to the Dirichlet boundary conditions, the problem should also be time-dependent and the gravity should also be specified in the \"rhs\"
argument (the gravity here is along the y-axis).
To view the whole JSON file, please go to pushbox_all_vol_mehses.json.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#python-environment-development","title":"Python Environment Development","text":"In this section, we will develop a python environment to control the sphere to interact with the box.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#class-initialization","title":"Class Initialization","text":"In the src
folder, create a python file pushbox.py
. In this file, let\u2019s first import necessary libraries and create a PushBox class with its __init__
function:
import polyfempy as pf\nimport json\nimport numpy as np\n\nclass PushBox:\n def __init__(self) -> None:\n self.asset_file = 'pushbox/assets/json/push_box_all_vol_mesh.json'\n with open(self.asset_file,'r') as f:\n self.config = json.load(f)\n self.step_count = 1\n self.solver = pf.Solver()\n self.solver.set_log_level(3)\n self.solver.set_settings(json.dumps(self.config))\n self.solver.load_mesh_from_settings()\n self.cumulative_action = np.zeros(3)\n self.dt = self.config[\"time\"]['dt']\n self.t0 = self.config[\"time\"][\"t0\"]\n self.solver.init_timestepping(self.t0, self.dt)\n\n self.id_to_mesh = {}\n self.id_to_position = {}\n self.id_to_vf = {}\n for mesh in self.config[\"geometry\"]:\n if (\"is_obstacle\" in mesh.keys()) and (mesh[\"is_obstacle\"]):\n self.obstacle_ids.append(mesh[\"surface_selection\"])\n else:\n self.id_to_mesh[mesh[\"volume_selection\"]] = mesh[\"mesh\"]\n self.id_to_position[mesh[\"volume_selection\"]] = mesh[\"transformation\"][\"translation\"]\n
In the __init__
function, we load the environment configuration from the JSON file we just made, initialize a step counter and the polyfem solver. Here we set the log_level
of PolyFEM to 3 which only displays the errors and warnings from PolyFEM. Feel free to change the log level to get more information or less based on docs for log_levels (More specifically, --log_level ENUM:value in {trace->0,debug->1,info->2,warning->3,error->4,critical->5,off->6} OR {0,1,2,3,4,5,6}
).
One thing to mention is that polyfempy
is always calculating the result for this time step based on the displacement from the initial position which is the position read from the JSON file. However, we only pay close attention to the action or movement we want to exert for this timestep, so self.cumulative_action
would take care of previous displacements.
The solver is already initialized in the previous section, now we can design an interface for the users to pass new actions to the sphere from their side.
def set_boundary_conditions(self, action: np.ndarray): -> None\n t0 = self.t0 # starting time point for this timestep\n t1 = t0 + self.dt # end time point for this timestep\n self.solver.update_dirichlet_boundary(\n int(1), # the dirichlet boundary condition with id=1\n [\n f\"{self.cumulative_action[0]} + ((t-{t0})*{action[0]})/({t1-t0})\",\n f\"{self.cumulative_action[1]} + ((t-{t0})*{action[1]})/({t1-t0})\",\n f\"{self.cumulative_action[2]} + ((t-{t0})*{action[2]})/({t1-t0})\"\n ]\n )\n self.cumulative_action += action # accumulate the new action to displacement \n
This code block is to update the dirichlet boundary condition for the sphere in the next timestep. The current time is t0
, and the current displacement is self.cumulative_action
. Since the movement of the sphere needs to be continous and potential fatal penetration can happen if we just set the dirichlet boundary condition to self.cumulative_action + action
. Image the action is large enough and greater than the edge length of the box while the sphere is on the left side of the box, then the sphere can teleport to the right side of the box without moving it. To avoid this kind of teleportation, we can interpolate the displacement from self.cumulative_action
to self.cumulative_action + action
for this timestep to make the movement of the sphere smooth and contiuous. The updated dirichlet boundary conditon in the above code block is the linear interplotion for the current timestep.
def run_simulation(self):\n self.solver.step_in_time(0, self.dt, self.step_count) # run simulation to the current time step, and the length of each timestep is self.dt\n self.step_count += 1 # increment the step counter\n self.t0 += self.dt # increment the starting time point for the next time step\n
To simulate the current timestep, we need to call self.solver.step_in_time
, where the first argument of this function is the initial time of the simulation and the second argument is the time length for each time step and the third argument is the total time steps have been simulated now.
If you want to get the position information of each object in the simulation when you make interactions with the environment, you can get the positions of each mesh using this function.
def get_object_positions(self):\n points, tets, _, body_ids, displacement = self.solver.get_sampled_solution()\n self.id_to_position = {}\n self.id_to_vertex = {}\n for mesh_id, _ in self.id_to_mesh.items():\n vertex_position = points + displacement\n self.id_to_vertex[mesh_id] = vertex_position[body_ids[:,0]==mesh_id]\n mean_cell_id = np.mean(body_ids[tets], axis=1).astype(np.int32).flat\n tet_barycenter = np.mean(vertex_position[tets], axis=1)\n self.id_to_position[mesh_id] = np.mean(tet_barycenter[mean_cell_id == mesh_id], axis=0)\n return self.id_to_position\n
This function gets sample vertices for each mesh from the solver and these vertices are averaged to get a \u201ccentroid\u201d of the object to represent its position.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#step-function-exposed-to-the-user","title":"Step function exposed to the user","text":"def step(self, action: np.ndarray):\n self.set_boundary_conditions(action)\n self.run_simulation()\n return self.get_object_positions()\n
The step function here takes the action from the user and runs the simulation for this timestep and returns the positions for each object to the user. To view the implementation of the whole class, please go to pushbox.py.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#test-of-the-environment","title":"Test of the Environment","text":"Here\u2019s a very simple but weird test case:
from pushbox.src.pushbox import PushBox\nimport numpy as np\n\nenv = PushBox()\n\n# push forward\nfor i in range(5):\n action = np.array([0.1,0,0])\n env.step(action)\n\n# go around the box\naction = np.array([-0.1,0,0])\nenv.step(action)\naction = np.array([0,0,0.3])\nenv.step(action)\naction = np.array([1.0,0,0])\nenv.step(action)\naction = np.array([0,0.3,0])\nenv.step(action)\naction = np.array([0,0,-0.6])\nenv.step(action)\naction = np.array([0,-0.4,0])\nenv.step(action)\naction = np.array([0,0,0.4])\nenv.step(action)\n
You can create a test.py file for this, and run it in the project folder:
python test.py\n
The result should be like the gifs at the beginning.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#environment-with-triangular-meshes","title":"Environment with Triangular Meshes","text":"In the previous environment, all the meshes are volume meshes, so the sphere, box, and table are all deformable. The ability of deformation for all meshes is generally not good (if you want three of them to be deformable, then you can skip the rest of the tutorial) and takes a long time to simulate. Thus in this section, considering the table is only a support base and the sphere is only an actuator, the table and the sphere can be rigid. Then we can set them as obstacles (a special type of mesh whose displacement is fully prescribed and need not be volumetric).
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#json-environment-setup_1","title":"Json Environment Setup","text":"Now the mesh part only needs to load the box and the sphere and the table can be loaded as obstacles:
{\n\"geometry\": [{\n\"mesh\": \"pushbox/assets/data/vol_mesh/cube.msh\",\n\"transformation\": {\n\"translation\": [-0.65, 0.2, 0],\n\"scale\": 0.4\n},\n\"volume_selection\": 3,\n\"surface_selection\": 3,\n\"advanced\": {\n\"normalize_mesh\": false\n}\n}, {\n\"mesh\": \"pushbox/assets/data/surf_mesh/sphere.obj\",\n\"is_obstacle\": true,\n\"enabled\": true,\n\"transformation\": {\n\"translation\": [-1.0, 0.2, 0],\n\"scale\": 0.1\n},\n\"surface_selection\": 1000\n}, {\n\"mesh\": \"pushbox/assets/data/surf_mesh/cube_dense.obj\",\n\"is_obstacle\": true,\n\"enabled\": true,\n\"transformation\": {\n\"translation\": [0, -0.0051, 0],\n\"scale\": [4, 0.01, 4]\n},\n\"surface_selection\": 1001\n}]\n}\n
Note that the obstacles have no boundary conditions or material parameters (since they are already rigid) but only displacements. Also, there\u2019s no need for Dirichlet boundary conditions anymore since the sphere is controlled by its displacement field.
The json file can be found at pushbox.json.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#python-environment-development_1","title":"Python Environment Development","text":""},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#class-initialization_1","title":"Class Initialization","text":"In the src
folder, create a python file pushbox_with_obstacles.py
. The __init__
function stays the same except for the JSON file path.
def set_boundary_conditions(self, action):\n t0 = self.t0\n t1 = t0 + self.dt\n self.solver.update_obstacle_displacement(\n int(0),\n [\n f\"{self.cumulative_action[0]} + ((t-{t0})*{action[0]})/({t1-t0})\",\n f\"{self.cumulative_action[1]} + ((t-{t0})*{action[1]})/({t1-t0})\",\n f\"{self.cumulative_action[2]} + ((t-{t0})*{action[2]})/({t1-t0})\"\n ]\n )\n self.cumulative_action += action \n
Note that the obstacles have no ID fields, thus we can\u2019t update its displacement with its id but the order of the obstacles in the JSON file. The index starts from 0. The rest part remains the same.
To view the whole implementation of the environment with obstacles, please go to pushbox_with_obstacles.py.
"},{"location":"tutorials/sphere-pushing-box/sphere-pushing-box/#test-of-the-environment_1","title":"Test of the Environment","text":"The test script remains the same except for the first import. Make sure to import PushBox
from the correct file.
from pushbox.src.pushbox_with_obstacles import PushBox\n
The entire script can be viewed in test_with_obs.py.
This is the end of the tutorial. Enjoy!
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/","title":"Trajectory Optimization","text":"Author: Zizhou Huang, Date: Feb. 19, 2024In this tutorial, we will demonstrate how to use polyfem to optimize the initial velocity of throwing a ball to match a given trajectory.
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/#prerequisites","title":"Prerequisites","text":"
The following items are necessary to complete this tutorial. To reproduce the experiment, you can feel free to use either the given mesh files or your own mesh.
The files can also be found at polyfem-data.
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/#build-polyfem","title":"Build PolyFEM","text":"The instructions for building PolyFEM can be found here.
Then you can use it by
polyfem --help\n
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/#setting-up-the-optimization","title":"Setting up the Optimization","text":"We will setup the optimization using PolyFEM\u2019s JSON interface. For more details, please refer to the JSON Input documentation.
We will only go over the JSON script for the optimization configuration, please refer to other tutorials for the JSON script for the simulation configuration.
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/#parameters","title":"Parameters","text":"{\n\"parameters\": [\n{\n\"number\": 2,\n\"initial\": [4, 0]\n}\n]\n}\n
In parameters
, we specify the dimension and initial guess of the variable to be optimized. Since we are going to optimize the initial velocity of a ball in 2D, the dimension is 2.
In more complex optimizations, where several types of parameters are optimized, the parameters
can be a list of variables of different dimensions.
{\n\"states\": [\n{\n\"path\": \"barycenter.json\"\n},\n{\n\"path\": \"barycenter-target.json\"\n}\n]\n}\n
In states
, we specify the path to the JSON files of simulations, they follow the same rules for the simulation JSON scripts. PolyFEM will create a number of simulators, one for each JSON file, whose parameters can be optimized. During the optimization, certain parameters in these configurations are optimized, but the optimized values will not overwrite the values in these JSON files. Each simulator gets an ID starting from 0, following the order in this list. The ID of simulators may be used in variable to simulation
and functionals
.
Here we have two simulators: The first one is the simulator being optimized, while the second one is a fixed simulation that generates a reference trajectory. These JSON files are only for initializing the simulators, so one can use the same path for multiple simulators if possible.
"},{"location":"tutorials/trajectory-optimization/trajectory-optimization/#variable-to-simulation","title":"Variable to Simulation","text":"{\n\"variable_to_simulation\": [\n{\n\"type\": \"initial\",\n\"state\": 0,\n\"composition\": [{\n\"type\": \"append-values\",\n\"values\": [0, 0]\n},{\n\"type\": \"per-body-to-per-node\",\n\"state\": 0\n},{\n\"type\": \"append-const\",\n\"value\": 0,\n\"size\": 146,\n\"start\": 0\n}]\n}\n]\n}\n
In variable to simulation
, we specify how the optimization variables in parameters
control the simulation configurations. Since different types of parameters in a number of simulations can be controlled at the same time, the variable to simulation
is a list, where each entry specifies the control of one type of parameter, e.g. initial condition, in one simulation. The type
specifies the type of parameter in the simulation, and state
points to the ID of the simulation (according to the order in states
).
The initial condition parameter has a dimension of 2 * dim * n_basis
, where dim
is the dimension of the simulation (2 or 3), n_basis
is the number of finite element basis in the simulation, because it consists of the initial displacement and velocity at every basis node. This allows the user to specify the initial condition not only as a rigid body transformation, but also as an arbitrary deformation, e.g. stretching and shearing.
In this tutorial, we only optimize the initial velocity of the ball, so we need to build a mapping, which we call composition
in the JSON script, from the variable of size 2 to the full initial condition parameter of size 2 * dim * n_basis
. The composition
is a list of some pre-defined mappings, which will apply to the optimization variables in order, and the final output of the mappings will be assigned to the initial condition parameter.
There are two objects with different volume IDs, specified in barycenter.json
and barycenter-target.json
, and we only want to control the initial velocity of the ball, with volume ID 1. First, in append-values
we append two zeros to the optimization variable, which represents the zero initial velocity of the floor. Second, in per-body-to-per-node
we map the per-volume values to per-node, whose output has the dimension of dim * n_basis
. Finally, in append-const
we append more zeros to the start of the vector, to account for the zero initial displacement. Please refer to the opt-input-spec.json for the documentation of compositions.
{\n\"functionals\": [\n{\n\"type\": \"transient_integral\",\n\"state\": 0,\n\"integral_type\": \"uniform\",\n\"static_objective\": {\n\"type\": \"center-target\",\n\"state\": 0,\n\"target_state\": 1,\n\"volume_selection\": [1]\n}\n}\n]\n}\n
The functionals
specify the objective being minimized in the optimization. Please refer to objective-input-spec.json for the documentation of functionals
.
Here we perform trajectory optimization on the ball, so the objective is the \\(L^2\\) difference between the two ball barycenters in the two simulations, integrated over time.
{\n\"type\": \"center-target\",\n\"state\": 0,\n\"target_state\": 1,\n\"volume_selection\": [1]\n}\n
The center-target
computes the \\(L^2\\) difference between the solutions in state
and target_state
, integrated over the space with volume selection
ID 1. We assume that both simulators have the same number of basis and dimension on the same volume selection (number of basis on other volume selections can be different).
{\n\"type\": \"transient_integral\",\n\"state\": 0,\n\"integral_type\": \"uniform\",\n\"static_objective\": { ... }\n}\n
The transient integral
computes the integral over time of the static objective
. The integral type
and state
specify the quadrature scheme and the simulator (the objective gets information like the number of time steps and dt from the simulator).
\"output\": {\n\"log\": {\n\"level\": 1\n}\n}\n
The output
contains options regarding the logging of the optimization, here output/log/level
specifies a log level of 1, corresponding to debugging
, to log the energy and gradient during the optimization. The log level for simulations are specified in each state json, normally the simulation log level is set to info
or warn
so that we can focus more on the optimization logs.
\"solver\": {\n\"nonlinear\": {\n\"history_size\": 2,\n\"grad_norm\": 1e-4\n}\n}\n
The solver
contains options of the nonlinear solver for the optimization. Since our forward problem and inverse problem share the same nonlinear solver code, the options of the inverse problem are the same as in the forward problem. However, since we can\u2019t compute the second order derivatives of the inverse problem, the Newton\u2019s method is not available here. By default the solver is L-BFGS, a quasi-Newton method using a limited amount of memory.
In this tutorial, we will demonstrate how PolyFEM can be used to generate vision proprioception data for soft robotics study. The GitHub repo of this tutorial can be found here.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#prerequisites","title":"Prerequisites","text":"The following, items are necessary to complete this tutorial. To replicate the experiment, readers can use either the given mesh files or their own mesh files.
In this tutorial, we assume that readers already have PolyFEM installed. If not, the PolyFEM install instruction can be found here.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#meshes","title":"Meshes","text":"To decrease the computing complexity of this tutorial example, we assume that the target item is the only deformable solid and the environment is rigid and immovable.
Target Object Mesh (Radius: 0.5) Environment Mesh (Radius: 5.0)"},{"location":"tutorials/vision-proprioception/vision-proprioception/#problem-formulation","title":"Problem Formulation","text":"This tutorial\u2019s objective is to launch a deformable target object into an environment mesh (i.e. a sphere rolling in a bowl) and gather the corresponding vision-based proprioceptive data (the internal view that shows deformation). Such data can be utilized to investigate the relationship between vision-based proprioception and kinematics of deformable objects.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#json-interface","title":"JSON Interface","text":"PolyFEM provides an interface through JSON and Python. Here we demonstrate the JSON interface setup first. For more details, please refer to the JSON API.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#setup-similation","title":"Setup Similation","text":"In this section, we will go over the JSON script that defines the simulation section by section. The complete JSON file can be found here.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#geometry","title":"Geometry","text":"The \"geometry\"
section specifies all geometry data required for simulation. For example, \"mesh\"
defines the path to the volumetric mesh file. Then, the term \"transformation\"
defines the operations that will be applied to the current mesh file. Next, volume selection specifies the mesh\u2019s identifier, allowing other parameters to be applied to specific meshes based on volume selection.
Furthermore, is obstacle
permits the definition of a mesh as part of the environment. Obstacles are fully prescribed objects and as such, only their surface needs to be specified.
\"geometry\": [{\n\"mesh\": \"../data/sphere.msh\",\n\"transformation\": {\n\"translation\": [-0.4, 0.18, 0],\n\"scale\": 0.1\n},\n\"volume_selection\": 1\n}, {\n\"mesh\": \"../data/scene_bowl.msh\",\n\"is_obstacle\": true,\n\"enabled\": true,\n\"transformation\": {\n\"translation\": [0, 0, 0],\n\"scale\": 0.01\n}\n}]\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#mesh-related-configuration","title":"Mesh Related Configuration","text":"In the previous section, we defined the simulation-required geometry
. Following that, we must define their material properties and initial conditions. In the \"initial_conditions\"
section, we assign the mesh with volume selection value 1
and an initial velocity of [2, 0, 2]
. Next, in the materials
section, we use NeoHookean
for non-linear elasticity and define Young\u2019s modulus E
, Poisson\u2019s ratio nu
, and density rho
.
Next, we define time step size as dt
and time steps as the number of steps. enable
in the contact
determines whether collision detection and friction calculation are considered. And boundary conditions
permit us to add gravity to the simulation with ease.
{\n\"initial_conditions\": {\n\"velocity\": [\n{\n\"id\": 1,\n\"value\": [2, 0, 2]\n}\n]\n},\n\"materials\": [\n{\n\"id\": 1,\n\"E\": 5000.0,\n\"nu\": 0.3,\n\"rho\": 100,\n\"type\": \"NeoHookean\"\n}\n],\n\"time\": {\n\"t0\": 0,\n\"dt\": 0.1,\n\"time_steps\": 100\n},\n\"contact\": {\n\"enabled\": true,\n\"dhat\": 0.0001,\n\"epsv\": 0.004,\n\"friction_coefficient\": 0.3\n},\n\"boundary_conditions\": {\n\"rhs\": [0, 9.81, 0]\n}\n}\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#simulation-related-configuration","title":"Simulation Related Configuration","text":"{\n\"solver\": {\n\"linear\": {\n\"solver\": \"Eigen::CholmodSupernodalLLT\"\n},\n\"nonlinear\": {\n\"line_search\": {\n\"method\": \"backtracking\"\n},\n\"grad_norm\": 0.001,\n\"use_grad_norm\": false\n},\n\"contact\": {\n\"friction_iterations\": 20,\n\"CCD\": {\n\"broad_phase\": \"STQ\"\n}\n}\n},\n\"output\": {\n\"json\": \"results.json\",\n\"paraview\": {\n\"file_name\": \"output.pvd\",\n\"options\": {\n\"material\": true,\n\"body_ids\": true\n},\n\"vismesh_rel_area\": 10000000\n},\n\"advanced\": {\n\"save_solve_sequence_debug\": false,\n\"save_time_sequence\": true\n}\n}\n}\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#run-simulation","title":"Run Simulation","text":"To run the simulation, the following command can be used where polyfem
should be replaced with .../polyfem/build/PolyFEM_bin
.
cd PolyFEM_Tutorial_SoRo\nmkdir output\npolyfem --json json/scene_bowl.json --output_dir output\n
The simulation results will be output as a VTU file or a sequence of VTU files and a PVD file for the time sequence.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#python-interface","title":"Python Interface","text":"In addition, to the JSON files, PolyFEM also supports a Python interface through polyfem-python. More information can be found in the Python Documentation. Python interface not only allows to read configuration from JSON directly but also allows user to have more control during the simulation (eg. simulation stepping or change boundary conditions).
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#import-from-json","title":"Import from JSON","text":"If the JSON file is available, we can simply import the configuration by reading the JSON file.
import polyfem as pf\n\nwith open('./scene_bowl.json') as f:\n config = json.load(f)\nsolver = pf.Solver()\nsolver.set_settings(json.dumps(config))\nsolver.load_mesh_from_settings()\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#run-simulation-in-python","title":"Run Simulation in Python","text":"Python interface provides a more flexible solution to simulate solving the time-dependent problem completely or interacting with the solver with steps.
# OPTION 1: solve the problem and extract the solution\nsolver.solve()\npts, tris, velocity = solver.get_sampled_solution()\n
# OPTION 2: solve the problem with time steping\nsolver.init_timestepping(t0, dt)\nfor i in range(timesteps):\n solver.step_in_time(t, dt, i)\n # interact with intermediate result\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#visualize-simulation-results","title":"Visualize Simulation Results","text":"To visualize the simulation sequential results in VTU
format, we can use ParaView
, an open-source, multi-platform data analysis and visualization application.
To view the results, please follow the instructions below. ![]paraview.png) * Step 1: File
- Open
, select sequence group file step.vtu or step.vtm. * Step 2: Click Apply
under the tab Properties
located on the left side of the GUI. * Step 3: Click on Wrap By Vector
to apply the displacement to the objects. This function can be found in the top menu bar. * Step 4: Click again Apply
under the tab Properties
. * Step 5: Now, the Play
button can be used to view the time sequence results.
Blender is a free and open-source 3D computer graphics software toolset that can be used for animation, rendering, and video games. Here, we are using Blender to create vision propriocetions (internal views). First, we need to convert the VTU outputs back to mesh files that represent the target object at each time step. Then, we can colorize the target object using vertex coloring and render the final image with the Blender camera instance.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#convert-vtu-to-obj","title":"Convert VTU to OBJ","text":"To convert VTU to OBJ format, we can use the MeshIO library that is available in Python. A minimum example is shown below.
import meshio\nm = meshio.read('step.vtu')\nm.write('step.obj')\n
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#colorize-the-obj-files","title":"Colorize the OBJ Files","text":"There are many different ways to colorize a mesh object. For example, coloring through mesh vertices, mesh faces, or a UV map. Here we demonstrate a simple way, which is to color the mesh using its vertices. The OBJ extension format support RGB floating values append to the vertex coordinates.
"},{"location":"tutorials/vision-proprioception/vision-proprioception/#blender-rendering-using-python","title":"Blender Rendering using Python","text":"In the example below, the Python script controls the rendering process. First, it loads colorized mesh files and adds light and camera to the pre-calculated position and orientation (based on the vertice coordinates and surface normal). It then renders the image using vertex color.
In this example, the camera is attched to one of the triangle in the surface mesh OBJ
. And the camera is pointing at the center of the sphere, the rendering results are shown below.
blender_render.py
:
import os, sys\nimport math\nimport bpy\n\nos.chdir(sys.path[0])\n\nargv_offset = 0\n\n# IMPORT MESH\nmesh = bpy.ops.import_mesh.ply(filepath=sys.argv[6+argv_offset])\nmesh = bpy.context.active_object\nbpy.ops.object.mode_set(mode = 'VERTEX_PAINT')\n\n# ADD LIGHT\nlight_data = bpy.data.lights.new('light', type='POINT')\nlight = bpy.data.objects.new('light', light_data)\nlight.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])]\nbpy.context.collection.objects.link(light)\n\n# ADD CAMERA\ncam_data = bpy.data.cameras.new('camera')\ncam = bpy.data.objects.new('camera', cam_data)\ncam.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])]\ncam.rotation_euler = [float(sys.argv[11+argv_offset]), float(sys.argv[12+argv_offset]), float(sys.argv[13+argv_offset])]\ncam.data.lens = 14\nbpy.context.collection.objects.link(cam)\n\n# ADD MATERIAL\nmat = bpy.data.materials.new(name='Material')\nmat.use_nodes=True\n# create two shortcuts for the nodes we need to connect\n# Principled BSDF\nps = mat.node_tree.nodes.get('Principled BSDF')\n# Vertex Color\nvc = mat.node_tree.nodes.new(\"ShaderNodeVertexColor\")\nvc.location = (-300, 200)\nvc.label = 'vc'\n# connect the nodes\nmat.node_tree.links.new(vc.outputs[0], ps.inputs[0])\n# apply the material\nmesh.data.materials.append(mat)\n\n# CREATE A SCENE\nscene = bpy.context.scene\nscene.camera = cam\nscene.render.image_settings.file_format = 'PNG'\nscene.render.resolution_x = 512\nscene.render.resolution_y = 512\nscene.render.resolution_percentage = 100\nscene.render.filepath = sys.argv[7+argv_offset]\n\n# RENDER\nbpy.ops.render.render(write_still=1)\n
The rendering can be processed through Blender GUI or bash command as shown below.
blender blender_project.blend -b --python blender_render.py -- target_mesh_path output_path camera_position_x camera_position_y camera_position_z camera_orientation_x camera_orientation_y camera_orientation_z\n
"}]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
new file mode 100644
index 00000000..c70d6413
--- /dev/null
+++ b/sitemap.xml
@@ -0,0 +1,148 @@
+
+import pydoc
+import polyfempy
+import re
+import queue
+import tempfile
+
packages = queue.Queue()
+packages.put("polyfempy")
+
docs = ""
+
+
while not packages.empty():
+ package = packages.get()
+
+ with tempfile.NamedTemporaryFile(suffix=".md") as tmp_file:
+ with open(tmp_file.name, "w") as f:
+ pydoc.doc(package,output=f)
+
+ with open(tmp_file.name, "r") as f:
+ lines = f.read()
+
+ if "PACKAGE CONTENTS" in lines:
+ process = False
+
+ for line in iter(lines.splitlines()):
+ line = line.strip()
+
+ if "PACKAGE CONTENTS" in line:
+ process = True
+ continue
+
+ if "FILE" in line:
+ break
+
+ if not process:
+ continue
+ if len(line) <= 0:
+ continue
+
+ packages.put(package + "." + line)
+
+ continue
+ if "CLASSES" in lines:
+ process = False
+
+
+ for line in iter(lines.splitlines()):
+ line = line.strip()
+
+ if "CLASSES" in line:
+ process = True
+ continue
+
+ if "FILE" in line:
+ break
+
+ if not process:
+ continue
+ if len(line) <= 0:
+ continue
+
+ if "class " in line:
+ break
+ if "builtins.object" in line:
+ continue
+
+ packages.put(package + "." + line)
+
+ continue
+
+ lines = lines.replace("pybind11_builtins.pybind11_object", "")
+ lines = lines.replace("builtins.object", "")
+ lines = lines.replace("|", "")
+ lines = lines.replace("class ", "## class ")
+ lines = lines.replace("self: polyfempy.polyfempy.Solver, ", "")
+ lines = lines.replace("self: polyfempy.polyfempy.Solver", "")
+ lines = lines.replace("self, ", "")
+ lines = lines.replace("self", "")
+ lines = lines.replace(" -> None", "")
+ lines = lines.replace("[float64[m, n]]", "")
+ lines = lines.replace("[int32[m, n]]", "")
+ lines = lines.replace("numpy.ndarray", "array")
+
+ tmp = ""
+
+ skipping = False
+ next_mark = False
+ skip_next = False
+
+ for line in iter(lines.splitlines()):
+ line = line.strip()
+
+ if skip_next:
+ skip_next = False
+ continue
+ if len(line) <= 0:
+ continue
+
+ if "Python Library Documentation" in line:
+ continue
+
+ if "Methods inherited" in line:
+ continue
+
+ if "Overloaded function." in line:
+ continue
+
+ if "Method resolution order" in line:
+ skipping = True
+
+ if "Methods defined here" in line:
+ skipping = False
+ continue
+
+ if "Data and other attributes defi" in line:
+ continue
+
+ if "Data descriptors defined" in line:
+ continue
+
+ if "-----------------------------" in line:
+ continue
+
+ if "__init__" not in line and re.match(r"__\w+", line):
+ skip_next = True
+ continue
+ if "params()" in line or "get_pde(pde)" in line or "get_problem(problem)" in line or "get_problem()" in line or "name()" in line or "__init__()" in line or "__init__(/, *args, **kwargs)" in line:
+ skip_next = True
+ continue
+
+ if skipping:
+ continue
+
+ if re.match(r'\w+\(\.\.\.\)', line):
+ next_mark = True
+ continue
+
+ if "class" in line:
+ line = line.replace("()", "")
+
+ if re.match(r"\d\. .+", line):
+ line = re.sub(r"\d\. ", "", line)
+ line.strip()
+ next_mark = True
+
+ if next_mark or re.match(r'\w+\(.*\)', line):
+ next_mark = False
+ xxx = line
+ if "__init__" in line:
+ line = line.replace("__init__", "init")
+ line = "### " + line[0:line.find('(')] +"\n"
+ line += "`" + xxx + "`"
+
+ if "## class " in line:
+ line = line.replace(package + " = ", "")
+
+ tmp += line + "\n\n"
+
+ docs += tmp + "\n\n\n"
+ # break
+
with open("polyfempy_doc.md", "w") as f:
+ f.write(docs)
+
import meshplot
+
first = True
+meshplot.website()
+
def mp_to_md(self):
+ global first
+ if first:
+ first = False
+ res = self.to_html(imports=True, html_frame=False)
+ else:
+ res = self.to_html(imports=False, html_frame=False)
+
+ return res
+
get_ipython().display_formatter.formatters["text/html"].for_type(meshplot.Viewer, mp_to_md)
+
Here you can find the plate with hole mesh used in this tutorial.
+Mesh | +Solution | +
---|---|
+ | + |
To setup and run this simulation create a JSON file (for example, run.json
) containing the following:
{
+ "geometry": {
+ "advanced": {
+ "normalize_mesh": true
+ },
+ "mesh": "plate_hole.obj",
+ "surface_selection": {
+ "threshold": 1e-07
+ }
+ },
+
+ "materials": {
+ "type": "Laplacian"
+ },
+
+ "output": {
+ "json": "stats.json",
+ "paraview": {
+ "file_name": "<result.vtu>"
+ }
+ },
+
+ "preset_problem": {
+ "type": "Franke"
+ },
+
+ "solver": {
+ "linear": {
+ "solver": "Eigen::SparseLU"
+ }
+ }
+}
+
Then run PolyFEM_bin --json run.json
.
Refer to the JSON API for a the full description of JSON parameters.
+PolyFEM uses boundary tags to mark boundary primitives (edges in 2D and faces in 3D). By default:
+You can also specify a file containing a list of integers per each edge/face of the mesh indicating the tag in the JSON.
+If you want to run the real plate-with-hole problem, set the correct Lamé constants in "materials"
, and specify the proper boundary conditions in "boundary_conditions"
. For this example, we want Neumann boundary condition of [100, 0]
(a force of 100 in \(x\)) applied to the whole right side (pulling), so in the "neumann_boundary"
array of "boundary_conditions"
, we add an entry with "id": 3
and "value": [100, 0]
.
+For the two Dirichlet, it is a bit more complicated because we want reflective boundary conditions, that is we want to fix only one of the two coordinates. For instance, the right part of the mesh ("id": 1
) needs to be fixed in \(x\) (or equivalent can move only in \(y\)-direction). To do so we add an entry to the "dirichlet_boundary"
array with "id": 1
and "value": [0, 0]
, that is zero displacements, and specify which "dimension"
these boundaries need to be applied, in this case, only the \(x\)-direction so "dimension"
gets the value [true, false]
. Similarly, the top part ("id": 4
) gets "dimension": [false, true]
.
{
+ "materials": {
+ "type": "LinearElasticity",
+ "E": 210000,
+ "nu": 0.3
+ },
+
+ "boundary_conditions": {
+ "neumann_boundary": [{
+ "id": 3,
+ "value": [100, 0]
+ }],
+
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": [0.0, 0.0],
+ "dimension": [true, false]
+ }, {
+ "id": 4,
+ "dimension": [false, true],
+ "value": [0.0, 0.0]
+ }]
+ }
+}
+
The specified value for boundary conditions can also contain expressions as strings depending on x
,y
, and z
. PolyFEM will evaluate these expressions on the edge/face. For this, we use the TinyExpr library.
In addition to TinyExpr’s built-in functions, we define some useful utility functions including:
+min(a, b)
: minimum of two valuesmax(a, b)
: maximum of two valuesif(cond, a, b)
: if cond
\(\ge\) 0, return a
, otherwise return b
sign(x)
: 1 if \(x > 0\), 0 if \(x == 0\), and -1 if \(x < 0\)deg2rad(d)
: convert degrees to radiansrotate_2D_x(x, y, theta)
: given a value for x
, y
, and theta
, compute the x component of a 2D rotation of theta
radiansrotate_2D_y(x, y, theta)
: given a value for x
, y
, and theta
, compute the y component of a 2D rotation of theta
radianssmooth_abs(x, k)
: a smooth approximation to abs(x)
Since creating the file with association from boundary to ID is complicated, we also provide an application bc_setter
to interactively color faces of 3D meshes (or edges of 2D meshes) and associate tags.
By shift-clicking you can color coplanar faces to assign an ID (command or control-click colors only one face). The UI also allows specifying the three values (for scalar problem only one) to assign to that boundary condition and choose between Dirichlet and Neumann.
+On save, it will produce the .txt
file with the tags to be used in the "surface_selection"
JSON field and a JSON file to set the "boundary_conditions"
.
To enable time-dependent simulation add +
"time": {
+ "tend": 1,
+ "dt": 0.1
+}
+
"tend"
and the number of time steps can either be set directly using "time_steps"
or by specifying the time step size "dt"
("dt"
has priority over "time_steps"
).
+You can also specify the time integration method using +
"time": {
+ "integrator": "ImplicitEuler"
+}
+
"ImplicitEuler"
, and a complete list of options can be found here along with details about other time parameters.
+When doing time-dependent simulation PolyFEM will generate a sequence of VTU files (one file per time step) and a PVD file of the animation that can be directly viewed in ParaView. You can change the name of this PVD file
+Enabling time-dependent simulation also enables the ability to use the current time to design time-dependent boundary conditions. To define time-dependent boundary conditions you can use the variable t
in an expression value. For example,
+
"dirichlet_boundary": [{
+ "id": 1,
+ "value": ["t", 0, 0]
+}]
+
PolyFEM supports multi-material and contact.
+For example, here we show how to simulate a sphere of radius 0.5 m centered at \([0,1,0]\) with material \(E=10^8, \nu=0.4, \rho=2000\) falling on thin soft mat (\(E=10^6, \nu=0.4, \rho=1000\)) we need to set the body id.
+First, we need to specify the geometry and assign ids to the surface and volume. +To do this add this to the main JSON file:
+"geometry": [{
+ "mesh": "../../../meshes/3D/simple/sphere/sphere1K.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "volume_selection": 1
+}, {
+ "mesh": "../../../meshes/3D/simple/mat/mat40x40.msh",
+ "transformation": {
+ "scale": 2
+ },
+ "volume_selection": 2,
+ "surface_selection": [{
+ "id": 1,
+ "axis": "-x",
+ "position": -1
+ }, {
+ "id": 2,
+ "axis": "x",
+ "position": 1
+ }]
+}],
+
The sphere will be given a volume ID of 1 and the mat will get ID 2. An axis-plane selection is used can be used to set the surface IDs. Here the faces with a barycenter left of \(x=-1\) are given a surface ID of 1 and the faces with barycenters right of \(x=1\) will be given an ID of 2.
+Next, we need to associate materials and boundary conditions with these IDs. We set the boundary conditions by adding the following to the JSON: +
"materials": [{
+ "id": 1,
+ "E": 1e8,
+ "nu": 0.4,
+ "rho": 2000,
+ "type": "NeoHookean"
+}, {
+ "id": 2,
+ "E": 1e6,
+ "nu": 0.4,
+ "rho": 1000,
+ "type": "NeoHookean"
+}]
+
We specify boundary conditions and "rhs"
(for the gravity) as:
+
"boundary_conditions": {
+ "rhs": [0, 9.81, 0],
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": ["-min(t,0.28)", 0, 0]
+ }, {
+ "id": 2,
+ "value": ["min(t,0.28)", 0, 0]
+ }]
+}
+
Since this is a contact problem we need to enable collision, no other thing is needed: "contact": {"enabled": true}
, and run the simulation (the complete JSON script can be found here).
The final results look like these where we sliced the scene in half to show the internal stresses. +
+The simulation results will be output as a VTU file or a sequence of VTU files and a PVD file for the time sequence.
+Here are some tips for working with the output in ParaView.
+ +body_ids
to set the opacity of the box separately from the Octocat)Note
+This is a retelling of the original IPC Quick Start Guide from the original IPC codebase.
+The first step is to clone and build PolyFEM (see here for instructions). This will create the PolyFEM_bin
executable that we will use to run the examples. To run an example you can use the following command:
./PolyFEM_bin -j <path/to/example.json> -o <path/to/output/dir>
+
You can also use the --help
flag to see all the available options.
All files used in this tutorial can be found here.
+Since many of the default parameters in PolyFEM differ from those in the original IPC codebase, we provide a JSON file ipc-defaults.json
which maps the default parameter values from IPC to their equivalent parameters in PolyFEM. This file is then included in all the example JSON files using "common": "ipc-defaults.json"
.
Todo
+Describe what each of the default parameters controls.
+Let us start with a “Hello, World!” example of two cubes falling onto a ground plane.
+The input JSON for this scene can be found at 2-cubes-falling.json
. To run this example, use the following command:
./PolyFEM_bin -j 2-cubes-falling.json -o 2-cubes-falling
+
This will create a directory 2-cubes-falling
with the following files:
$ ls 2-cubes-falling
+sim.pvd step_0.vtm step_0.vtu [...] step_200.vtm step_200.vtu
+
We can open the PVD file using ParaView and play the animation to visualize the simulation:
+ + +Tip
+In ParaView, make sure to press the WarpByVector button to see the deformed animation. Otherwise, you will only see the undeformed rest mesh.
+Let’s take a look at the input JSON file 2-cubes-falling.json
:
{
+ "common": "ipc-defaults.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "volume_selection": 2
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }],
+ "contact": {
+ "friction_coefficient": 0.1
+ }
+}
+
The config is simple:
+"common"
: this includes the default IPC parameters from the ipc-defaults.json
file."geometry"
: the geometry of the scene comprised of two cubes and a ground plane."mesh"
: the path to the mesh file (a tetrahedral mesh cube.msh
for the cubes and a triangular mesh plane.obj
for the ground plane)."transformation"
: transform the input mesh before running the simulation."translation"
: translate the first cube up by 3 units and the second cube up by 1 unit."volume_selection"
: assigns an ID to the volume (uniformly) which we will use later."is_obstacle"
: specify that the ground plane is a static obstacle."contact"
: parameters for the contact model"friction_coefficient"
: coefficient of friction for all contacts.Now let’s make some changes to the hello world script to make the simulation more interesting.
+The default material parameters in ipc-default.json
are:
"materials": {
+ "type": "NeoHookean",
+ "E": 1e5,
+ "nu": 0.4,
+ "rho": 1000
+}
+
This corresponds to a NeoHookean material with Young’s modulus \(E = 10^5~\text{Pa}\), Poisson’s ratio \(\nu = 0.4\), and density \(\rho = 1000~\frac{\text{kg}}{\text{m}^3}\).
+We can change these parameters for all objects in the scene by changing Young’s modulus to \(10^6~\text{Pa}\):
+{
+ "common": "2-cubes-falling.json",
+ "materials": {
+ "E": 1e6
+ }
+}
+
Note
+Notice that we changed the "common"
parameter to point to the starting example 2-cubes-falling.json
. This means our changes in this file will be applied on top of the changes in the starting example (which also are applied on top of the default parameters in ipc-defaults.json
).
This will make Young’s modulus 10x larger than the default while keeping density and Poisson’s ratio the same. Let’s see what we get:
+ + +Yes! The boxes are stiffer now.
+We can also set different materials for different objects:
+{
+ "common": "2-cubes-falling.json",
+ "materials": [{
+ "id": 1,
+ "type": "NeoHookean",
+ "E": 1e8,
+ "nu": 0.4,
+ "rho": 3000
+ }, {
+ "id": 2,
+ "type": "NeoHookean",
+ "E": 1e5,
+ "nu": 0.4,
+ "rho": 1000
+ }]
+}
+
We replace our single "materials"
object with a list of objects with "id"
keys. These IDs correspond to the "volume_selection"
from earlier. In general, "volume_selection"
allows us to select a subset of the mesh’s elements and assign a volume ID to them. In this case, we assign a uniform ID to all elements in the cube mesh. Where the first cube gets an ID of 1 and the second gets an ID of 2. We then use these volume IDs to assign different materials to each cube. The first cube gets a material that is 3× heavier and 1000× stiffer. While the second cube gets the original material.
Here we rendered softer material with a light yellow color. As we see the top box is nearly rigid now and the bottom box deforms more. Even with this super stiff material PolyFEM stays robust and accurate.
+Following the default in IPC, we have been simulating the scene for 5 seconds with a time step size of 0.025s, generating 200 frames.
+One option to get more energetic animation (while sticking with implicit Euler stepping – see also Newmark stepping below) is to apply smaller time step sizes to reduce the numerical damping of implicit Euler time integration:
+{
+ "common": "2-cubes-falling.json",
+ "time": {
+ "dt": 0.005
+ }
+}
+
The "time"
parameter here controls time step size "dt": 0.005
, which results in a more energetic animation:
One of the exciting features of IPC and PolyFEM is that it is robust enough to support extremely large time step sizes on the order of seconds with implicit Euler. In turn, this enables rapid solutions of equilibrium conditions subject to contact, friction and large deformation (via nearly quasi-static solves under numerical damping). For a simple demonstration, we can simulate our hello world example with \(\Delta t = 1~\text{s}\):
+{
+ "common": "2-cubes-falling.json",
+ "time": {
+ "dt": 1
+ }
+}
+
The animation now is composed of only five frames, one for each second. As we see numerical damping is so large that the cubes are barely bouncing.
+ + +To set nonzero initial velocities for objects, we need to specify them as "initial_conditions"
.
For example, we can set the initial velocity of the top cube to be \(-20~\frac{\text{m}}{\text{s}}\) in the y direction:
+{
+ "common": "2-cubes-falling.json",
+ "initial_conditions": {
+ "velocity": [{
+ "id": 1,
+ "value": [0, -20, 0]
+ }]
+ }
+}
+
Again here we are using the volume IDs to select the top cube.
+ + +Even for this high-speed impact scene, PolyFEM stays robust and accurate without numerical instabilities or explosions.
+Instead of using a constant value for the initial velocity, we can use a tiny expression dependent on the positions.
+We can specify an initial angular velocity by computing
+where \(\omega_{\{x, y, z\}}\) are the angular velocity in radians and \(x\), \(y\), and \(z\) are the positions to be evaluated at.
+Note
+This assumes the center of rotation is at the origin. If you want to rotate around a different point, you need to translate the positions to the origin first.
+For example, if we want to rotate the top cube 90 degrees/second around the y-axis, then we compute the initial velocity as
+In the JSON we encode this as a string containing the expression:
+{
+ "common": "2-cubes-falling.json",
+ "initial_conditions": {
+ "velocity": [{
+ "id": 1,
+ "value": ["pi/2 * z", 0, "-pi/2 * x"]
+ }]
+ }
+}
+
and voila now the top cube is spinning!
+ + +In many simulations we want to script the motion of certain objects, the best way to do this is to specify the object as an obstacle and then specify the prescribed displacement.
+To make the second code an obstacle all we need to do is set "is_obstacle": true
.
+Then we can specify the displacement of this obstacle using the "boundary_conditions/obstacle_displacements"
field:
{
+ "common": "2-cubes-falling.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "surface_selection": 1,
+ "is_obstacle": true
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }],
+ "boundary_conditions": {
+ "obstacle_displacements": [{
+ "id": 1,
+ "value": ["t", "t", "t"]
+ }]
+ }
+}
+
Notice that we changed the "volume_selection"
to "surface_selection"
because we need to identify the surface on which the boundary conditions apply.
We set the obstacle’s displacement to ["t", "t", "t"]
which means the obstacle will translate with a velocity of \([1, 1, 1]\) m/s.
Making the second cube rotate is a bit trickier. We can compute the displacement in Euler’s angle representation as
+where \(\Delta\{x,y,z\}\) are the obstacle displacement, \(\omega_{\{x,y,z\}}\) are the angular velocities, \(c_{\{x,y,z\}}\) is the center of rotation, \(R_{\{x,y,z\}}\) are the axis-aligned rotation matrices, and \(x\), \(y\), and \(z\) are the positions to be evaluated at. Computing this by hand can be annoying, so instead, you can use this Python notebook to compute the expression.
+As an example, here we kinematically rotate the second cube with an angular velocity of \([10, 90, 0]\) degrees/second:
+{
+ "common": "translating-obstacle.json",
+ "boundary_conditions": {
+ "obstacle_displacements": [{
+ "id": 1,
+ "value": [
+ "x*cos(pi*t/2) - x + z*sin(pi*t/2)",
+ "x*sin(pi*t/18)*sin(pi*t/2) - y - z*sin(pi*t/18)*cos(pi*t/2) + (y - 1)*cos(pi*t/18) + 1",
+ "-x*sin(pi*t/2)*cos(pi*t/18) + z*cos(pi*t/18)*cos(pi*t/2) - z + (y - 1)*sin(pi*t/18)"
+ ]
+ }]
+ }
+}
+
Here we render obstacles in grey.
+IPC contact handling is based on distances and so directly supports codimensional (surfaces, edges, points) kinematic collision obstacles!
+Note
+Currently, PolyFEM does not yet include simulated codimensional materials like shells or rods.
+If we script the motion of an object, then for a closed surface the interior tessellation is unnecessary, and we can directly use a surface mesh (.obj
file)!
{
+ "common": "rotating-obstacle.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube.obj",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "surface_selection": 1,
+ "is_obstacle": true
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
This is equivalent to using a volumetric mesh because PolyFEM automatically extracts and uses the surface for obstacles.
+ + +This script replaces the cube with a single triangle (zero volume):
+{
+ "common": "rotating-obstacle.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "triangle.obj",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "surface_selection": 1,
+ "is_obstacle": true
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
This script uses the same single triangle but only with its edges. Here we also scale the triangle 2× larger to let the box fall through.
+{
+ "common": "rotating-obstacle.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "triangle.obj",
+ "transformation": {
+ "translation": [0, 1, 0],
+ "scale": 2
+ },
+ "surface_selection": 1,
+ "is_obstacle": true,
+ "extract": "edges"
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
The "extract": "edges"
specifies that only the edges of the triangle mesh should be used.
Note
+Alternatively, you can load an edge mesh directly by specifying an .obj
file with line elements. For example, this is the same edge mesh in OBJ format:
+
v -0.5 0 -0.5
+v 0.5 0 -0.5
+v -0.5 0 0.5
+l 1 3
+l 3 2
+l 2 1
+
Even crazier, this script uses the same single triangle but only with its points. Here we also scale the point cloud 0.7× smaller to let the box hit the points.
+{
+ "common": "rotating-obstacle.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "triangle.obj",
+ "transformation": {
+ "translation": [0, 1, 0],
+ "scale": 0.7
+ },
+ "surface_selection": 1,
+ "is_obstacle": true,
+ "extract": "points"
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
We use the "extract": "points"
to only use the points of the triangle.
Note
+Alternatively, you can load a point cloud directly by specifying an .obj
file with no triangles or edges. For example, this is the same point cloud in OBJ format:
+
v -0.5 0 -0.5
+v 0.5 0 -0.5
+v -0.5 0 0.5
+
Similar to how we apply material, to apply boundary conditions we first need to select which nodes to which to apply the boundary conditions using the "point_selection"
mesh field. Then, we can specify the boundary conditions in the "boundary_conditions"
field.
{
+ "common": "2-cubes-falling.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "volume_selection": 2,
+ "point_selection": [{
+ "id": 1,
+ "box": [
+ [0, 0, 0],
+ [0.1, 1, 0.1]
+ ],
+ "relative": true
+ }, {
+ "id": 2,
+ "box": [
+ [0.9, 0, 0.9],
+ [1, 1, 1]
+ ],
+ "relative": true
+ }]
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }],
+ "output": {
+ "paraview": {
+ "points": true
+ }
+ }
+}
+
Let’s break down the "point_selection"
field. The first object
+
"id": 1,
+"box": [
+ [0, 0, 0],
+ [0.1, 1, 0.1]
+],
+"relative": true
+
1
to the nodes in the back left of the mesh. The second object
+"id": 2,
+"box": [
+ [0.9, 0, 0.9],
+ [1, 1, 1]
+],
+"relative": true
+
2
to the nodes in the front right of the mesh.
+The "box"
parameter specifies a bounding box by minimum and maximum corners in which points are selected. Notice the "relative": true
field which indicates the box’s coordinates are relative to the bounding box of the mesh. If we set "relative": false
then the coordinates are in world space.
Note
+For more information about how to setup boundary conditions (including the more ubiquitous surface selections) look here.
+For a simulated volumetric object, sometimes we script the motion of part of its vertices as Dirichlet boundary conditions. Using our point selections we can specify the boundary conditions as follows:
+{
+ "common": "point-selection.json",
+ "boundary_conditions": {
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": ["-0.2 * t", 0, "-0.2 * t"]
+ }, {
+ "id": 2,
+ "value": ["0.2 * t", 0, "0.2 * t"]
+ }]
+ }
+}
+
The above script specifies that we should apply a displacement of \([-0.2, 0, -0.2]\) m/s to the nodes with ID 1
and a displacement of \([0.2, 0, 0.2]\) m/s to the nodes with ID 2
. The expressions in strings are evaluated using TinyExpr. You can find out more about these expressions here and here.
Now let’s see what we get:
+ + +As we see PolyFEM is robust even when there is large deformation.
+What is different here from setting kinematic collision obstacles is that the unselected vertices are still degree-of-freedoms that are simulated. If one selects all vertices of an object by, for example, using a selection of +
"point_selection": 1
+
Warning
+Nodal Neumann boundary conditions are not yet supported in PolyFEM, so we will setup a similar scene using surface selection.
+We can also add extra forces to part of the vertices of simulated volumetric objects in addition to gravity. This can be similarly realized by specifying the "neumann_boundary"
like how we did for Dirichlet boundary conditions above:
{
+ "common": "point-selection.json",
+ "geometry": [{
+ "mesh": "cube-hex.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube-hex.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "volume_selection": 2,
+ "surface_selection": 1
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }],
+ "boundary_conditions": {
+ "neumann_boundary": [{
+ "id": 1,
+ "value": [
+ "2.5e4 * sign(x) * max(0, sign(x * z))",
+ 0,
+ "2.5e4 * sign(z) * max(0, sign(x * z))"
+ ]
+ }]
+ },
+ "output": {
+ "paraview": {
+ "options": {
+ "forces": true
+ }
+ }
+ }
+}
+
Similar to the configuration in our Dirichlet example, the above script applies an a force of \([-2.5 \times 10^4, 0, -2.5 \times 10^4]\) N to the vertices in the left-back and \([2.5 \times 10^4, 0, 2.5 \times 10^4]\) N to the vertices in the right-front:
+ + +Note
+Here simulate a hexahedral mesh, but we use a linear triangular mesh for contact handling. +Additionally, the rendering shows a triangulation of the hexahedral mesh’s surface.
+Unlike Dirichlet boundary conditions, here the Neumann boundary condition does not restrict the vertical motion of the object, and it elongates the object only to a static state but not further.
+It is also possible to start and stop boundary conditions at a specific time. This can be done by utilizing tiny expressions:
+{
+ "common": "point-selection.json",
+ "boundary_conditions": {
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": ["-0.2 * min(t, 2.5)", 0, "-0.2 * min(t, 2.5)"]
+ }, {
+ "id": 2,
+ "value": ["0.2 * max(t - 2.5, 0)", 0, "0.2 * max(t - 2.5, 0)"]
+ }]
+ }
+}
+
Here we apply a displacement of \([-0.2, 0, -0.2]\) m/s to the nodes with ID 1
from time \(t=0\) to \(t=2.5\) and a displacement of \([0.2, 0, 0.2]\) m/s to the nodes with ID 2
from time \(t=2.5\) to \(t=\infty\). We can see this if we plot the x/z-displacement of the BC nodes:
+
1
and the blue line is the displacement of the nodes with ID 2
.
+Finally, let’s see what we get:
+ + +The way of setting kinematic collision obstacles displacements described earlier is expressive but a bit verbose. To support more complex scripting of kinematic collision objects, PolyFEM allows the use of input mesh file sequences.
+For example, we can specify a folder path to the kinematic collision objects:
+{
+ "common": "2-cubes-falling.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 3, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "type": "mesh_sequence",
+ "transformation": {
+ "translation": [-0.6666666667, 0, -0.6666666667]
+ },
+ "mesh_sequence": "sequence",
+ "fps": 40,
+ "is_obstacle": true
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
In the specified folder sequence
we provide the mesh files of the triangle wire in each frame as *.obj
. Note that the input sequence must maintain the correct vertex correspondence to the one throughout the entire sequence.
IPC requires a tiny positive gap as it does not support the 0-distance configurations.
+The following script sets the upper box in the hello world example right above the lower one:
+{
+ "common": "2-cubes-falling.json",
+ "geometry": [{
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 2.001, 0]
+ },
+ "volume_selection": 1
+ }, {
+ "mesh": "cube.msh",
+ "transformation": {
+ "translation": [0, 1, 0]
+ },
+ "volume_selection": 2
+ }, {
+ "mesh": "plane.obj",
+ "is_obstacle": true
+ }]
+}
+
Note the initial gap here is barely visible. In our experience we can set IPC’s contact gap as small as practically needed; i.e., even small enough to fool the ray intersection checks in rendering algorithms.
+ +Similarly, no two objects can have 0-distance separation : ); even atoms are at distance from each other.
+Along with implicit Euler, PolyFEM supports other time integration methods such as implicit Newmark time integration. Implicit Newmark can be applied for improved energy preservation and control. To change the time integrator we can simply set the time integration method.
+For example, the following script uses the time/integrator
key to specify implicit Newmark ("ImplicitNewmark"
) should be the time integrator for the stiffer boxes scene without friction. By default, "integrator"
is set to ImplicitEuler
(backward Euler).
{
+ "common": "stiffer.json",
+ "time": {
+ "dt": 0.005,
+ "integrator": "ImplicitNewmark"
+ },
+ "contact": {
+ "friction_coefficient": 0
+ }
+}
+
Damping can be useful both for predictive or realistic simulation control of damping and also to extend the effective stability of the underlying Newmark time integration method. For example, here we use Rayleigh damping of elasticity:
+{
+ "common": "newmark.json",
+ "solver": {
+ "rayleigh_damping": {
+ "form": "elasticity",
+ "stiffness_ratio": 0.1
+ }
+ }
+}
+
Here we set the damping stiffness as a ratio \(\kappa_\text{ratio}\) between 0 and 1. The absolute damping stiffness will be set to \(\tfrac{3}{4} \kappa_\text{ratio} \Delta t^3\). If \(\kappa_\text{ratio}=1\), at the beginning of time-step Newmark’s incremental potential Hessian (with damping term) will be equal to that of implicit Euler. This provides a starting basis for intuitively setting damping stiffness. To alternately directly set damping stiffness use the key "stiffness"
.
Here in this demo note that we used a smaller time step size at 0.005
s as this is better for the stability of Newmark integration.
Newmark, "stiffness_ratio": 0.1 |
+Newmark, "stiffness_ratio": 0.2 |
+
---|---|
+ | + |
Newmark, "stiffness_ratio": 0.4 |
+Backwards Euler | +
+ | + |
Nonlinear solver accuracy determines how accurate the dynamic time step solve is satisfied. To set the requested nonlinear solver accuracy, we can use the solver/nonlinear/grad_norm
key to set Newton tolerance on the infinity norm of the Newton increment.
So far, we have used
+{
+ "solver": {
+ "nonlinear": {
+ "grad_norm": 1e-05
+ }
+ }
+}
+
The solver will stop once the current Newton increment cannot change any nodal position larger than 1e-5
m even if a full step is taken. Reducing this improves accuracy, but note that the compute cost can then go up.
There are three additional accuracies for IPC. Each controls a contact accuracy in IPC: the barrier activation distance ("dhat"
) which IPC uses to determine if objects are in contact and exert contact forces; the tangent velocity ("epsv"
) determining where IPC sees the touching objects as not sliding and so exerts static friction forces; and the maximum amount of friction iterations ("friction_iterations"
) that IPC updates friction tangent and normal forces.
By default PolyFEM uses +
{
+ "contact": {
+ "dhat": 1e-3,
+ "epsv": 1e-3
+ },
+ "solver": {
+ "contact": {
+ "friction_iterations": 1
+ }
+ }
+}
+
Note
+Unlike the original IPC code, these values are not scaled by the bounding box size.
+The default setting provides a good trade-off between accuracy and efficiency, where there are no visible gaps, no obvious sliding artifacts, or friction force in inaccurate directions.
+We can set "friction_iterations"
set to -1
to iterate until the tangent operator and normal force converges to obtain even more accurate results. Note that IPC does not guarantee convergence for this case. In practice, for more accurate friction in large deformation or high-speed impact scenes, "friction_iterations"
at 2
~4
so far appears generally sufficient.
For collision obstacles (including closed surfaces), one can directly specify the path to their mesh files (.obj
, .stl
, .ply
, etc.) in the script to use it.
For the simulated objects that are tetrahedral meshes, PolyFEM supports MSH files. PolyFEM supports both ASCII and binary encoded version 2.2 and 4.1 files through the use of MshIO.
+To generate a tetrahedral mesh from a triangle mesh, we recommend using fTetWild.
+To learn how to restart a simulation, see here.
+Hopefully, now you know the basics of how to use IPC within PolyFEM. For more examples, we have set up all the simulations in the original IPC paper (and more!) and you can find them all here.
+If you have any further questions, feel free to post an issue on the PolyFEM GitHub repo.
+ +import numpy
+import sympy
+
omega_x, omega_y, omega_z = sympy.symbols('omega_x omega_y omega_z')
+c_x, c_y, c_z = sympy.symbols('c_x c_y c_z')
+x, y, z, t = sympy.symbols('x y z t')
+
+def deg2rad(deg):
+ return deg * sympy.pi / 180
+
$$ +\begin{bmatrix} +\Delta{x} \\ \Delta{y} \\ \Delta{z} +\end{bmatrix} += +R_x(\omega_x t) R_y(\omega_y t) R_z(\omega_z t) +\left( +\begin{bmatrix} +x \\ y \\ z +\end{bmatrix} +- +\begin{bmatrix} +c_x \\ c_y \\ c_z +\end{bmatrix} +\right) ++ +\begin{bmatrix} +c_x \\ c_y \\ c_z +\end{bmatrix} +- +\begin{bmatrix} +x \\ y \\ z +\end{bmatrix} +$$
+Rx = numpy.array([
+ [1, 0, 0],
+ [0, sympy.cos(omega_x*t), -sympy.sin(omega_x*t)],
+ [0, sympy.sin(omega_x*t), sympy.cos(omega_x*t)]
+])
+
+Ry = numpy.array([
+ [sympy.cos(omega_y*t), 0, sympy.sin(omega_y*t)],
+ [0, 1, 0],
+ [-sympy.sin(omega_y*t), 0, sympy.cos(omega_y*t)]
+])
+
+Rz = numpy.array([
+ [sympy.cos(omega_z*t), -sympy.sin(omega_z*t), 0],
+ [sympy.sin(omega_z*t), sympy.cos(omega_z*t), 0],
+ [0, 0, 1]
+])
+
+R = Rx @ Ry @ Rz
+
+c = numpy.array([c_x, c_y, c_z])
+pos = numpy.array([x, y, z])
+disp = R @ (pos - c) + c - pos
+
+display(sympy.Matrix(disp))
+
def print_obstacle_displacement(omega, c):
+ print("[")
+ subs = {
+ omega_x: deg2rad(omega[0]),
+ omega_y: deg2rad(omega[1]),
+ omega_z: deg2rad(omega[2]),
+ c_x: c[0],
+ c_y: c[1],
+ c_z: c[2],
+ }
+ for i, d in enumerate(disp):
+ expr = d.subs(subs).simplify()
+ expr_str = str(expr) if expr.is_constant() else f"\"{str(expr).replace('**', '^')}\""
+ print("{}{}".format(expr_str, "," if i < len(disp) - 1 else ""))
+ print("]")
+
print_obstacle_displacement([0, 0, -36], [-0.35, 0, 0])
+print()
+print_obstacle_displacement([0, 0, 36], [0.35, 0, 0])
+
[ +"-x + y*sin(pi*t/5) + (x + 0.35)*cos(pi*t/5) - 0.35", +"y*cos(pi*t/5) - y - (x + 0.35)*sin(pi*t/5)", +0 +] + +[ +"-x - y*sin(pi*t/5) + (x - 0.35)*cos(pi*t/5) + 0.35", +"y*cos(pi*t/5) - y + (x - 0.35)*sin(pi*t/5)", +0 +] ++
print_obstacle_displacement([0, 360/0.525, 0], [0, 0.1, 0])
+
[ +"x*cos(3.80952380952381*pi*t) - x + z*sin(3.80952380952381*pi*t)", +"0", +"-x*sin(3.80952380952381*pi*t) + z*cos(3.80952380952381*pi*t) - z" +] ++
print_obstacle_displacement([20, 0, 0], [0, 0, 0])
+
[ +"0", +"y*cos(pi*t/9) - y - z*sin(pi*t/9)", +"y*sin(pi*t/9) + z*cos(pi*t/9) - z" +] ++
+
import sys
+from collections import namedtuple
+import pathlib
+import subprocess
+
simrender_path = pathlib.Path("/home/zachary/Development/personal-projects/simrender")
+if simrender_path.exists():
+ sys.path.append(str(simrender_path))
+ import render
+
debug = False
+
polyfem_bin = f"/home/zachary/Development/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin"
+#polyfem_bin = f"/Users/zachary/Development/research/polyfem/polyfem/build/{'debug' if debug else 'release'}/PolyFEM_bin"
+
input_dir = pathlib.Path(__file__).parent / "input"
+output_dir = pathlib.Path(__file__).parent / "output"
+videos_dir = pathlib.Path(__file__).parent / "videos"
+output_dir.mkdir(exist_ok=True, parents=True)
+videos_dir.mkdir(exist_ok=True, parents=True)
+
for script in input_dir.glob("*.json"):
+ if script.name == "ipc-defaults.json":
+ continue
+
+ print(script.name)
+ # yes_or_no = input("Press enter to run [Y/n]: ")
+ # if yes_or_no.lower() not in ["", "y", "yes"]:
+ # continue
+
+ subprocess.run(
+ (["lldb", "--"] if debug else []) + [
+ polyfem_bin,
+ "-j", str(script),
+ "-o", str(output_dir / script.stem),
+ "--log_level", "debug"
+ ])
+
+ if simrender_path is not None and simrender_path.exists():
+ render_args = render.parse_args([
+ "--input", str(list((output_dir /
+ script.stem).glob("*.pvd"))[0]),
+ "--output", str(videos_dir / (script.stem + ".mp4")),
+ "--bg-color", "46", "48", "62", "255",
+ "--base-zoom", "2",
+ # "--drop-frames", "4"
+ ])
+ render.main(render_args)
+
In this tutorial, we will demonstrate how to create a multi-material object using fTetWild and simulate it using PolyFEM.
+The data for this tutorial can be found here.
+The following items are necessary to complete this tutorial. To replicate the experiment, you can feel free to use either the given mesh files or your own mesh.
+The instructions for building PolyFEM can be found here. After compilation, to use PolyFEM in any working directory machine, we suggest adding an alias +
alias polyfem='path/to/PolyFEM/build/PolyFEM_bin'
+
~/.bashrc
or ~/.zshrc
file.
+Then you can use it by
+polyfem --help
+
You can find the instruction for building fTetWild here. After doing so you should have an executable file FloatTetwild_bin
. For convenience we can again define an alias for this binary:
+
alias tetwild='path/to/fTetWild/build/FloatTetwild_bin'
+
We will use three mesh files to create a simple multi-material object: left_box.obj
, middle_box.obj
, and right_box.obj
. The left and right boxes will have nearly rigid material properties, while the middle box will be more flexible.
Left: left_box.obj |
+Middle: middle_box.obj |
+Right: right_box.obj |
+
---|---|---|
+ | + | + |
The next step is to create a union of these three meshes, this can be done using fTetWild. To create a union of three objects, we can create a JSON file +
{
+ "operation": "union",
+ "left": {
+ "operation": "union",
+ "left": "left_box.obj",
+ "right": "middle_box.obj"
+ },
+ "right": "right_box.obj"
+}
+
tetwild --csg /path/to/union.json --no-color -o cubes.msh
+
The --csg
flag stands for constructive solid geometry which describes how to construct a shape using set operations between other shapes (e.g., union, intersection, and difference). In our case, we want to union the three boxes together.
The --no-color
is optional and disables the color output of fTetWild which can be used to visualize the quality of elements.
The combined mesh should look like this:
++ +
+ +Note
+To view .msh
files you can use Gmsh.
fTetWild will sometimes produce extra floating vertices that are not part of the mesh. These extra vertices do not harm anything, but can inflate the bounding box making it hard to select a side of the cube in PolyFEM. To remove these vertices we provide a simple Python script here.
+We will setup the simulation using PolyFEM’s JSON interface. For more details, please refer to the JSON Input documentation.
+We will go over the JSON script section by section. The complete JSON file can be found in the GitHub Repo.
+{
+ "geometry": {
+ "mesh": "cubes_v22.msh"
+ }
+}
+
The "geometry"
section specifies all required simulation geometry data. The "mesh"
field defines the path to the volumetric mesh file. In this tutorial, only the cubes_v22.msh
file from fTetwild will be utilized.
{
+ "boundary_conditions": {
+ "rhs": [0, 0, 0],
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": ["-t", 0, 0]
+ }, {
+ "id": 3,
+ "value": ["t", 0, 0]
+ }]
+ }
+}
+
In boundary conditions
, we permit the left box
and right box
sections to have Dirichlet boundaries that move along the x-axis as a function of time t
. Here we use the default boundary IDs assigned described here.
The rhs
is defined as [0, 0, 0]
, which indicates that the simulation has no prescribed body forces (i.e., no gravity).
{
+ "materials": [{
+ "id": 1,
+ "E": 2e11,
+ "nu": 0.3,
+ "rho": 7750,
+ "type": "NeoHookean"
+ }, {
+ "id": 2,
+ "E": 2.55e7,
+ "nu": 0.48,
+ "rho": 1700,
+ "type": "NeoHookean"
+ }, {
+ "id": 3,
+ "E": 2e11,
+ "nu": 0.3,
+ "rho": 7750,
+ "type": "NeoHookean"
+ }]
+}
+
In the materials
section, we assign identical material properties to the left and right boxes but use a softer material for the middle box.
The volume IDs in this case are loaded directly from the cubes_v22.msh
file. fTetWild automatically assigns these labels based on which domain the elements falls in the CSG.
Warning
+Loading volume IDs from the mesh file is currently only supported with version 4.1 MSH files (both ASCII and binary).
+{
+ "time": {
+ "dt": 0.0025,
+ "time_steps": 20
+ }
+}
+
"time"
section, we define our time step size as 0.0025
seconds and the total number of steps to be 20
.
+{
+ "contact": {
+ "enabled": true,
+ "dhat": 0.001
+ }
+}
+
We enable contact by defining a "contact"
section as above.
{
+ "solver": {
+ "linear": {
+ "solver": "Eigen::PardisoLDLT"
+ },
+ "nonlinear": {
+ "line_search": {
+ "method": "backtracking"
+ },
+ "solver": "newton",
+ "grad_norm": 1e-05,
+ "use_grad_norm": true
+ },
+ "advanced": {
+ "lump_mass_matrix": true
+ }
+ }
+}
+
We make a few adjustments to the solver. Here we are using Newton with backtracking line-search and Eigen::PardisoLDLT
for linear solves. We also set the convergence tolerance for the gradient norm to 1e-05
.
{
+ "space": {
+ "discr_order": [{
+ "id": 1,
+ "order": 1
+ }, {
+ "id": 2,
+ "order": 2
+ }, {
+ "id": 3,
+ "order": 1
+ }]
+ }
+}
+
Lastly, we demonstrate that PolyFEM can simulate mixed order elements. In this example, we choose to use linear P1 elements for the left and right box, but use quadratic P2 elements for the middle box.
+The use of higher-order representations can lead to more precise calculations with slightly more running time.
+We can use the following command to run the simulation:
+polyfem -j stretch-cubes.json -o output/
+
The simulation results will be written to output/
as a sequence of VTU file and a PVD file for the time sequence.
To visualize the simulation results in VTU
format, we can use ParaView
, an open-source, multi-platform data analysis and visualization application.
To view the results, please follow the instruction below.
+ +File
- Open
, select sequence group file step.vtu or step.vtm.Apply
under the tab Properties
located in the left side of the GUI.Wrap By Vector
to apply the displacement to the objects. This function can be found from the top menu bar.Apply
under the tab Properties
.Play
button can be used to view the time sequence results.+ +
+ +!!! note + To view `.msh` files you can use [Gmsh](https://gmsh.info/). + +#### Removing Extra Vertices + +fTetWild will sometimes produce extra floating vertices that are not part of the mesh. These extra vertices do not harm anything, but can inflate the bounding box making it hard to select a side of the cube in PolyFEM. To remove these vertices we provide a simple Python script [here](https://github.com/polyfem/polyfem-data/blob/main/multi-material/tetwild/remove_tetwild_extra_points.py?raw=true). + +## Setting up the Simulation + +We will setup the simulation using PolyFEM's JSON interface. For more details, please refer to the [JSON Input](../../../json) documentation. + +We will go over the JSON script section by section. The complete JSON file can be found in the [GitHub Repo](https://github.com/polyfem/polyfem-data/blob/main/multi-material/stretch-cubes.json). + +### Geometry + +```json +{ + "geometry": { + "mesh": "cubes_v22.msh" + } +} +``` + +The `"geometry"` section specifies all required simulation geometry data. The `"mesh"` field defines the path to the volumetric mesh file. In this tutorial, only the `cubes_v22.msh` file from fTetwild will be utilized. + +### Boundary Conditions + +```json +{ + "boundary_conditions": { + "rhs": [0, 0, 0], + "dirichlet_boundary": [{ + "id": 1, + "value": ["-t", 0, 0] + }, { + "id": 3, + "value": ["t", 0, 0] + }] + } +} +``` + +In `boundary conditions`, we permit the `left box` and `right box` sections to have Dirichlet boundaries that move along the x-axis as a function of time `t`. Here we use the default boundary IDs assigned described [here](../../getting_started/#boundary-conditions). + +The `rhs` is defined as `[0, 0, 0]`, which indicates that the simulation has no prescribed body forces (i.e., no gravity). + +### Materials + +```json +{ + "materials": [{ + "id": 1, + "E": 2e11, + "nu": 0.3, + "rho": 7750, + "type": "NeoHookean" + }, { + "id": 2, + "E": 2.55e7, + "nu": 0.48, + "rho": 1700, + "type": "NeoHookean" + }, { + "id": 3, + "E": 2e11, + "nu": 0.3, + "rho": 7750, + "type": "NeoHookean" + }] +} +``` + +In the `materials` section, we assign identical material properties to the left and right boxes but use a softer material for the middle box. + +The volume IDs in this case are loaded directly from the `cubes_v22.msh` file. fTetWild automatically assigns these labels based on which domain the elements falls in the CSG. + +!!! warning + Loading volume IDs from the mesh file is currently only supported with version 4.1 MSH files (both ASCII and binary). + +### Time-Dependent Simulation +```json +{ + "time": { + "dt": 0.0025, + "time_steps": 20 + } +} +``` +In the `"time"` section, we define our time step size as `0.0025` seconds and the total number of steps to be `20`. + +### Contact + +```json +{ + "contact": { + "enabled": true, + "dhat": 0.001 + } +} +``` + +We enable contact by defining a `"contact"` section as above. + +### Solver + +```json +{ + "solver": { + "linear": { + "solver": "Eigen::PardisoLDLT" + }, + "nonlinear": { + "line_search": { + "method": "backtracking" + }, + "solver": "newton", + "grad_norm": 1e-05, + "use_grad_norm": true + }, + "advanced": { + "lump_mass_matrix": true + } + } +} +``` + +We make a few adjustments to the solver. Here we are using Newton with backtracking line-search and `Eigen::PardisoLDLT` for linear solves. We also set the convergence tolerance for the gradient norm to `1e-05`. + +### Spatial Discretization + +```json +{ + "space": { + "discr_order": [{ + "id": 1, + "order": 1 + }, { + "id": 2, + "order": 2 + }, { + "id": 3, + "order": 1 + }] + } +} +``` + +Lastly, we demonstrate that PolyFEM can simulate mixed order elements. In this example, we choose to use linear P1 elements for the left and right box, but use quadratic P2 elements for the middle box. + +The use of higher-order representations can lead to more precise calculations with slightly more running time. + +## Running the Simulation + +We can use the following command to run the simulation: + +```sh +polyfem -j stretch-cubes.json -o output/ +``` + +The simulation results will be written to `output/` as a sequence of VTU file and a PVD file for the time sequence. + +## Visualize the Simulation Results + +To visualize the simulation results in `VTU` format, we can use [`ParaView`](https://www.paraview.org/), an open-source, multi-platform data analysis and visualization application. + +To view the results, please follow the instruction below. + +![](paraview.png) + + +* Step 1: `File` - `Open`, select sequence group file step*.vtu or step*.vtm. +* Step 2: Click `Apply` under the tab `Properties` located in the left side of the GUI. +* Step 3: Click on `Wrap By Vector` to apply the displacement to the objects. This function can be found from the top menu bar. +* Step 4: Click again `Apply` under the tab `Properties`. +* Step 5: Now, the `Play` button can be used to view the time sequence results. + + diff --git a/tutorials/multi-material/paraview.png b/tutorials/multi-material/paraview.png new file mode 100644 index 00000000..0880ef95 Binary files /dev/null and b/tutorials/multi-material/paraview.png differ diff --git a/tutorials/multi-material/right_box.png b/tutorials/multi-material/right_box.png new file mode 100644 index 00000000..886f9ed4 Binary files /dev/null and b/tutorials/multi-material/right_box.png differ diff --git a/tutorials/multi-material/sim.gif b/tutorials/multi-material/sim.gif new file mode 100644 index 00000000..dbb3221f Binary files /dev/null and b/tutorials/multi-material/sim.gif differ diff --git a/tutorials/screw/full_sim.gif b/tutorials/screw/full_sim.gif new file mode 100644 index 00000000..a5962905 Binary files /dev/null and b/tutorials/screw/full_sim.gif differ diff --git a/tutorials/screw/screw/index.html b/tutorials/screw/screw/index.html new file mode 100644 index 00000000..58067fe5 --- /dev/null +++ b/tutorials/screw/screw/index.html @@ -0,0 +1,1313 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +This tutorial showcases how to set up and use PolyFEM to simulate screwing a bolt into a nut (for example, to be used in a robotic assembly simulation).
+In this tutorial, we assume you have already installed PolyFEM on your machine. If not, please follow the instructions here. After compilation, to use PolyFEM in any working directory machine, we can set up an alias for the main executable for ./PolyFEM_bin
by adding the following to ~/.bashrc
or ~/.zshrc
according to the type of your shell.
alias polyfem='path/to/PolyFEM/build/PolyFEM_bin'
+
Then you can use it by
+polyfem --help
+
The data needed in this tutorial can be found here. The volume mesh files are all made by fTetWild. Feel free you make your screws and nuts.
+In these tutorials, the bolt will be screwed into the nut in several different ways. The tutorials can also be found at Github: Screw tutorials. The screw is represented as a volume mesh
+"geometry": [{
+ "mesh": "data/screw-big.msh",
+ "transformation": {
+ "translation": [0, 0, 0],
+ "scale": 0.01
+ },
+ "volume_selection": 1,
+ "surface_selection": 2
+}]
+
and the nut is set to be an obstacle just to speed up the simulation by setting "is_obstacle": true
because obstacles in PolyFEM are rigid and only the surface of obstacles is taken into consideration.
"geometry": [{
+ // ...
+}, {
+ "mesh": "data/nut-big.stl",
+ "is_obstacle": true,
+ "transformation": {
+ "translation": [0, -0.02675, 0],
+ "scale": 0.01
+ }
+}]
+
For other parameters, the bolt is using the parameter of steel
+"materials": [{
+ "type": "NeoHookean",
+ "id": 1,
+ "E": 2e11,
+ "nu": 0.3,
+ "rho": 8050
+}]
+
In this tutorial, the screw is completely controlled by Dirichlet boundary conditions in all three dimensions. Thus the trajectory of the screw is fixed(rotation and transformation) and needs to be calculated carefully. For a single-threaded bolt and every rotation of \(360^{\circ}\), the bolt will go into the nut by the thread distance. In this case, the thread distance of the screw used in this tutorial is 1.33m. Therefore the Dirichlet Boundary Condition is set to
+"dirichlet_boundary": [{
+ "id": 2,
+ "value": [
+ "x*cos(-2*pi*t) + z * sin(-2*pi*t)-x",
+ "-1.33*0.01*t",
+ "-1*x*sin(-2*pi*t) + z * cos(-2*pi*t)-z"
+ ],
+ "dimension": [true, true, true]
+}]
+
Here the angular velocity of the rotation is \(-2\pi\) and the bolt is getting into the nut along the y-axis by \(1.33\times 0.01\) since the bolt and the nut is scaled by 0.01. The "dimension"
argument is set to be true for all three dimensions to make sure the bolt is in full control.
To view the whole JSON file for this case, please go to screw.json.
+To run this JSON with PolyFEM, please go to the GitHub repo Github: Screw tutorials and run the following in your terminal
+polyfem --json screws.json --output_dir results
+
In this tutorial, only two dimensions have Dirichlet boundary conditions. For the y-axis or the direction of feed, the screw is completely free. Therefore we only need to specify the rotation in the Dirichlet boundary condition and the bolt would get into the nut by basic high school physics.
+"dirichlet_boundary": [{
+ "id": 2,
+ "value": [
+ "x*cos(-2*pi*t) + z * sin(-2*pi*t)-x",
+ "-1.33*0.01*t",
+ "-1*x*sin(-2*pi*t) + z * cos(-2*pi*t)-z"
+ ],
+ "dimension": [true, false, true]
+}]
+
The only thing we need to modify in the "dirichlet_boundary"
argument is to change the y-axis in "dimension"
to false.
Instead of putting Dirichlet boundary conditions on the whole bolt, we can also constrain only the top of the bolt to simulate some actuators. The following image is the visualization of the bolt only constrained on the top of the bolt by Dirichlet boundary conditions.
+ +To make specified boundary condition selections, please refer to Selections. In the JSON file, we need to change the surface_selection
to the axis-plane selection method instead of using an integer to select the whole body of the bolt.
"geometry": [{
+ "mesh": "data/screw-big.msh",
+ "transformation": {
+ "translation": [0, 0, 0],
+ "scale": 0.01
+ },
+ "volume_selection": 1,
+ "surface_selection": [{
+ "id": 3,
+ "axis": "y",
+ "position": 0.11
+ }]
+}]
+
which is to apply the boundary condition with id=3
to the meshes whose coordinates in the y-axis are greater than 0.11 (If set "axis": "-y"
is to select the negative side of the y-axis which are the meshes whose y-coordinates are less then 0.11).
To view the whole JSON file for this, please go to top_constrained.json.
+In addition to constraining the top part of the bolt to simulate an actuator, we can also only constrain the two facets of the head of the bolt to simulate a user pinching the bolt with two fingers and trying to screw the bolt into the nut. The following image is the visulization of contraining just two facets of the bolt.
+ +In this case, the "boundary_sidesets"
becomes:
"boundary_sidesets": [{
+ "id": 2,
+ "axis": -3,
+ "position": -0.039
+}, {
+ "id": 2,
+ "axis": 3,
+ "position": 0.039
+}]
+
To view the whole JSON file, please go to two_facets_contrained.json.
+In theory, if the friction is 0 and the gravity is the only force applied to the bolt, then the bolt should be able to get into the nut automatically under gravity. In this case, it is not very useful but it is interesting to test. There’s no need to set any boundary conditions because the bolt is completely free. The only thing that needs to be done is to enable gravity in the JSON file by setting
+"boundary_conditions": {
+ "rhs": [0, 9.81, 0]
+},
+
Note that the direction of gravity is along the y-axis.
+The whole JSON file is here only_gravity.json.
+ +In this tutorial, we are going to develop an environment from scratch using polyfempy
and Python for a sling-shot. In this scene, we have two fingers holding the ball and the fingers will pull the rubber band and then release the ball into the air.
+ + +
+ +In this tutorial, we are assuming you have already installed polyfempy
on your machine. If not, please follow the instructions here. Note that there’s no need to install standalone PolyFEM. All the dependencies that polyfempy
requires will be installed automatically including PolyFEM. Also please note that please install and compile polyfempy
from source by doing
+
python setup.py install
+
After installation, please try to run +
python -c "import polyfempy as pf"
+
polyfempy
is installed successfully. Note that this tutorial is using Conda virtual environment.
+To build this project, there are some other dependencies we need. Note that meshio
and igl
are optional. They are only required if you want to render the scenes with python.
+1. numpy
+ conda install numpy
+2. meshio(optional)
+ conda install -c conda-forge meshio
+3. python bindings of libigl(optional)
+ conda install -c conda-forge igl
The data needed in this tutorial can be found here. For triangle meshes, they are in surf_mesh folder and the volume meshes are in vol_mesh folder The volume mesh files are all made by fTetWild. Feel free you make you own sphere, rubber band and fingers.
+All the code and JSONs can be found at Github: Slingshot Tutorial. +The file tree of this project is: +
project
+|___pushbox
+| |___src
+| |___assets
+| |___data
+| | |___surf_mesh
+| | |___vol_mesh
+| |___json
+|___test.py
+
slingshot.json
in the JSON folder for the initial setup with the sphere, rubber band and fingers in it. Let’s load the objects!
+ "geometry": [
+ {
+ "mesh": "slingshot/assets/data/vol_mesh/mat.msh",
+ "transformation": {
+ "translation": [
+ 0.018,
+ 0.115,
+ 0
+ ],
+ "rotation": [
+ 0,
+ 0,
+ 90
+ ],
+ "scale": [
+ 0.00385,
+ 0.01,
+ 0.21
+ ]
+ },
+ "volume_selection": 1,
+ "advanced": {
+ "normalize_mesh": false
+ },
+ "surface_selection": [
+ {
+ "id": 3,
+ "axis": -3,
+ "position": -0.1
+ },
+ {
+ "id": 3,
+ "axis": 3,
+ "position": 0.1
+ }
+ ]
+ },
+ {
+ "mesh": "slingshot/assets/data/vol_mesh/sphere_grooved.msh",
+ "transformation": {
+ "translation": [
+ 0,
+ 0.115,
+ 0
+ ],
+ "rotation": [
+ 90,
+ 0,
+ 0
+ ],
+ "scale": 0.0386
+ },
+ "volume_selection": 2,
+ "advanced": {
+ "normalize_mesh": false
+ }
+ },
+ {
+ "mesh": "slingshot/assets/data/surf_mesh/left_finger.obj",
+ "is_obstacle": true,
+ "enabled": true,
+ "transformation": {
+ "translation": [
+ 0.04,
+ 0.16032,
+ 0.0
+ ],
+ "rotation": [
+ 0,
+ -90,
+ 0
+ ],
+ "scale": 1
+ },
+ "surface_selection": 1000
+ },
+ {
+ "mesh": "slingshot/assets/data/surf_mesh/right_finger.obj",
+ "is_obstacle": true,
+ "enabled": true,
+ "transformation": {
+ "translation": [
+ 0.04,
+ 0.06965,
+ 0.0
+ ],
+ "rotation": [
+ 0,
+ -90,
+ 0
+ ],
+ "scale": 1
+ },
+ "surface_selection": 1001
+ }
+]
+
volume_selection
here means to select the entire volume of the tetrahedron mesh to be simulated and the surface_selection
means the surface area that you want to select. For example, both fingers are obstacles and they are triangle meshes. So to move and simulate them, I would like to select the entire finger. Thus here I can select them by giving the whole mesh an index:
+ {
+ "mesh": "slingshot/assets/data/surf_mesh/right_finger.obj",
+ "is_obstacle": true,
+ ...
+ "surface_selection": 1001
+}
+
{
+ "mesh": "slingshot/assets/data/vol_mesh/mat.msh",
+ ...
+ "surface_selection": [
+ {
+ "id": 3,
+ "axis": -3,
+ "position": -0.1
+ },
+ {
+ "id": 3,
+ "axis": 3,
+ "position": 0.1
+ }
+ ]
+}
+
id
, axis
and position
can be found at Selections in PolyFEM"materials": [
+{
+ "id": 2,
+ "E": 10000000.0,
+ "nu": 0.4,
+ "rho": 1150,
+ "type": "NeoHookean"
+},
+{
+ "id": 1,
+ "E": 10000000.0,
+ "nu": 0.4,
+ "rho": 1150,
+ "type": "NeoHookean"
+}
+]
+
"id":3
is set to zero for the two ends of the rubber band.
+ "boundary_conditions": {
+ "obstacle_displacements": [
+ {
+ "id": 1000,
+ "value": [
+ "0",
+ "-0.02 * t",
+ "0"
+ ]
+ },
+ {
+ "id": 1001,
+ "value": [
+ "0",
+ "0.02 * t",
+ "0"
+ ]
+ }
+ ],
+ "rhs": [
+ 0,
+ 9.81,
+ 0
+ ],
+ "dirichlet_boundary": [
+ {
+ "id": 3,
+ "value": [
+ 0,
+ 0,
+ 0
+ ]
+ }
+ ]
+}
+
After loading every object, the environment should look like +
+In this section, we will develop a python environment to do the slingshot.
+In the src
folder, create a python file slingshot.py
. In this file, let’s first import necessary libraries and create a PushBox class with its __init__
function:
+
import polyfempy as pf
+import json
+import numpy as np
+
+
+class SlingShot:
+ def __init__(self) -> None:
+ self.asset_file = 'slingshot/assets/json/sling_shots.json'
+ with open(self.asset_file,'r') as f:
+ self.config = json.load(f)
+ self.dt = self.config["dt"]
+ self.step_count = 1
+ self.solver = pf.Solver()
+ self.solver.set_log_level(3)
+ self.solver.set_settings(json.dumps(self.config))
+ self.solver.load_mesh_from_settings()
+ self.dt = self.config["dt"]
+ self.t0 = self.config["t0"]
+ self.solver.init_timestepping(self.t0, self.dt)
+ self.id_to_mesh = {}
+ self.id_to_position = {}
+ self.id_to_vf = {}
+ for mesh in self.config["meshes"]:
+ self.id_to_mesh[mesh["body_id"]] = mesh["mesh"]
+ self.id_to_position[mesh["body_id"]] = mesh["position"]
+
+ # To grasp and hold the sphere very tightly
+ self.pre_steps = 4
+ for i in range(self.pre_steps):
+ self.run_simulation()
+ self.cumulative_action = {"0":np.array([0, -0.02 * self.dt * self.step_count, 0, 0.02 * self.dt * self.step_count]), "1":np.array([0, 0.02 * self.dt, 0, 0.02 * self.dt])}
+
__init__
function, we load the environment configuration from the JSON file we just made, initialize a step counter and the PolyFEM solver. Here we set the log_level of PolyFEM to 3 which only displays the errors and warnings from PolyFEM. Feel free to change the log level to get more information or less based on docs for log_levels (More specifically, –log_level ENUM:value in {trace->0,debug->1,info->2,warning->3,error->4,critical->5,off->6} OR {0,1,2,3,4,5,6}).
+One thing to mention is that polyfempy
is always calculating the result for this time step based on the displacement from the initial position which is the position read from the JSON file. However, we only pay close attention to the action or movement we want to exert for this timestep, so self.cumulative_action
would take care of previous displacements.
Different from the PushBox environment, in this __init__
function, we need to squeeze the sphere to a certain point so that the sphere would never slide off the fingers unless the user decides to release it. That’s why at the end of the __init__
function four pre_steps
are trying to close the fingers and squeeze the rubber ball.
The solver is already initialized in the previous section, now we can design an interface for the users to pass new actions to the sphere from their side. In this tutorial, the action space is 4-dimensional and consists of movement of the fingers along the x-axis, y-axis, and z-axis and one action to close or open the two fingers. The argument actions
in this function are a dictionary and contain the actions for both fingers.
+
def set_boundary_conditions(self, actions:dict):
+ t0 = self.t0
+ t1 = t0 + self.dt
+ for mesh_id, action in actions.items():
+ self.solver.update_obstacle_displacement(
+ int(mesh_id),
+ [
+ f"{self.cumulative_action[mesh_id][0]} + ((t-{t0})*{action[0]})/({t1-t0})",
+ f"{self.cumulative_action[mesh_id][1] + self.cumulative_action[mesh_id][3]} + ((t-{t0})*{action[1] + action[3]})/({t1-t0})",
+ f"{self.cumulative_action[mesh_id][2]} + ((t-{t0})*{action[2]})/({t1-t0})"
+ ]
+ )
+ self.cumulative_action[mesh_id] += action
+
def run_simulation(self):
+ self.solver.step_in_time(0, self.dt, self.step_count) # run simulation to the current time step, and the length of each timestep is self.dt
+ self.step_count += 1 # increment the step counter
+ self.t0 += self.dt # increment the starting time point for the next time step
+
To simulate the current timestep, we need to call self.solver.step_in_time
, where the first argument of this function is the initial time of the simulation and the second argument is the time length for each time step and the third argument is the total time steps have been simulated now.
If you want to get the position information of each object in the simulation when you make interactions with the environment, you can get the positions of each mesh using this function.
+def get_object_positions(self):
+ points, tets, _, body_ids, displacement = self.solver.get_sampled_solution()
+ self.id_to_position = {}
+ self.id_to_vertex = {}
+ for mesh_id, _ in self.id_to_mesh.items():
+ vertex_position = points + displacement
+ self.id_to_vertex[mesh_id] = vertex_position[body_ids[:,0]==mesh_id]
+ mean_cell_id = np.mean(body_ids[tets], axis=1).astype(np.int32).flat
+ tet_barycenter = np.mean(vertex_position[tets], axis=1)
+ self.id_to_position[mesh_id] = np.mean(tet_barycenter[mean_cell_id == mesh_id], axis=0)
+ return self.id_to_position
+
This function gets sample vertices for each mesh from the solver and these vertices are averaged to get a “centroid” of the object to represent its position.
+def step(self, action: np.ndarray):
+ actions = {
+ # x, y, z gripper_displacement
+ "0": np.array([action[0],
+ action[1],
+ action[2],
+ -1 * action[3]/2]),
+ "1": np.array([action[0],
+ action[1],
+ action[2],
+ action[3]/2])
+ }
+ self.set_boundary_conditions(actions)
+ self.run_simulation()
+ return self.get_object_positions()
+
numpy
array containing the x,y,z
movement of the two fingers and the displacement between the two fingers for the current timestep. Then the action needs to be transferred into a dictionary that "self.set_boundary_conditions"
function would recognize for both of the fingers. At the same time, the two fingers’ displacements are coupled so in the actions
dictionary, the displacements need to be decoupled from both fingers and let them move in opposite directions.
+To view the implementation of the whole class, please go to slingshot.py.
+Here’s a very simple test case: +
from slingshot.src.slingshot import SlingShot
+import numpy as np
+
+env = SlingShot()
+print("Initialzied.")
+# pull the rubber band
+for i in range(3):
+ action = np.array([0.1,0,0,0])
+ env.step(action)
+
+# release it
+action = np.array([0,0,0,-0.1])
+env.step(action)
+# let it fly
+for i in range(20):
+ action = np.array([0,0,0,0])
+ env.step(action)
+
shell=
+python test.py
+The result should be like the gifs at the beginning.
+
+ + + +
+ +## Installation of Python Bindings of PolyFEM +In this tutorial, we are assuming you have already installed `polyfempy` on your machine. If not, please follow the instructions [here](https://github.com/polyfem/polyfem-python). Note that there's no need to install standalone PolyFEM. All the dependencies that `polyfempy` requires will be installed automatically including PolyFEM. Also please note that please install and compile `polyfempy` from source by doing +```sh +python setup.py install +``` +instead of using the Conda deployment. + +After installation, please try to run +```sh +python -c "import polyfempy as pf" +``` +to test if `polyfempy` is installed successfully. Note that this tutorial is using Conda virtual environment. + +## Installation of Other Dependencies +To build this project, there are some other dependencies we need. Note that `meshio` and `igl` are optional. They are only required if you want to render the scenes with python. +1. numpy + ```conda install numpy``` +2. meshio(optional) + ```conda install -c conda-forge meshio``` +3. python bindings of libigl(optional) + ```conda install -c conda-forge igl``` + +## Data Preparation +The data needed in this tutorial can be found [here](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data). For triangle meshes, they are in [surf_mesh folder](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data/surf_mesh) and the volume meshes are in [vol_mesh folder](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data/vol_mesh) The volume mesh files are all made by [fTetWild](https://github.com/wildmeshing/fTetWild). Feel free you make you own sphere, rubber band and fingers. + +## Tutorial +All the code and JSONs can be found at [Github: Slingshot Tutorial](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial). +The file tree of this project is: +``` +project +|___pushbox +| |___src +| |___assets +| |___data +| | |___surf_mesh +| | |___vol_mesh +| |___json +|___test.py +``` +### Json Environment Setup +1. The first step is to make a JSON file `slingshot.json` in the JSON folder for the initial setup with the sphere, rubber band and fingers in it. Let's load the objects! + ```json + "geometry": [ + { + "mesh": "slingshot/assets/data/vol_mesh/mat.msh", + "transformation": { + "translation": [ + 0.018, + 0.115, + 0 + ], + "rotation": [ + 0, + 0, + 90 + ], + "scale": [ + 0.00385, + 0.01, + 0.21 + ] + }, + "volume_selection": 1, + "advanced": { + "normalize_mesh": false + }, + "surface_selection": [ + { + "id": 3, + "axis": -3, + "position": -0.1 + }, + { + "id": 3, + "axis": 3, + "position": 0.1 + } + ] + }, + { + "mesh": "slingshot/assets/data/vol_mesh/sphere_grooved.msh", + "transformation": { + "translation": [ + 0, + 0.115, + 0 + ], + "rotation": [ + 90, + 0, + 0 + ], + "scale": 0.0386 + }, + "volume_selection": 2, + "advanced": { + "normalize_mesh": false + } + }, + { + "mesh": "slingshot/assets/data/surf_mesh/left_finger.obj", + "is_obstacle": true, + "enabled": true, + "transformation": { + "translation": [ + 0.04, + 0.16032, + 0.0 + ], + "rotation": [ + 0, + -90, + 0 + ], + "scale": 1 + }, + "surface_selection": 1000 + }, + { + "mesh": "slingshot/assets/data/surf_mesh/right_finger.obj", + "is_obstacle": true, + "enabled": true, + "transformation": { + "translation": [ + 0.04, + 0.06965, + 0.0 + ], + "rotation": [ + 0, + -90, + 0 + ], + "scale": 1 + }, + "surface_selection": 1001 + } + ] + ``` + The first mesh is a 21cm rubber band. It is originally a mat but then rescaled to the shape of a rubber band. The second mesh is a sphere with a groove in the middle part of its body in case the rubber band might slide off the sphere if the friction is not enough. As for the two fingers, there's no need to consider their deformation so they are set to [obstacles](https://polyfem.github.io/json/#obstacles). The displacements are not zero vectors because the fingers need to squeeze the ball and hold the ball tightly enough to pull the rubber band without sliding off the fingers while still pulling. + Note that the `volume_selection` here means to select the entire volume of the tetrahedron mesh to be simulated and the `surface_selection` means the surface area that you want to select. For example, both fingers are obstacles and they are triangle meshes. So to move and simulate them, I would like to select the entire finger. Thus here I can select them by giving the whole mesh an index: + ```json + { + "mesh": "slingshot/assets/data/surf_mesh/right_finger.obj", + "is_obstacle": true, + ... + "surface_selection": 1001 + } + ``` + In some scenarios, maybe the user only wants to select a part of the mesh and give the selected part a different movement from other parts. Then this could be done by setting the surface_selection part with specialized fields. For example, in this slingshot case, I would like to set the two ends of the rubber band to be still and the rest part to be able to move freely so that the rubber band will be extended while the sphere is pulled back by two fingers. To achieve this, the two ends of the rubber band can be selected by: + ```json + { + "mesh": "slingshot/assets/data/vol_mesh/mat.msh", + ... + "surface_selection": [ + { + "id": 3, + "axis": -3, + "position": -0.1 + }, + { + "id": 3, + "axis": 3, + "position": 0.1 + } + ] + } + ``` + The detailed explanation of `id`, `axis` and `position` can be found at [Selections in PolyFEM](https://polyfem.github.io/tutorials/getting_started/#selections-multi-material-and-collisions) +2. The second thing is to give proper material parameters to these objects. Since we are using a rubber band and also we want to grasp the ball tightly enough, we can use the material parameters for both of them. If you don't know the parameters of rubber, Just Google for Them! Feel free to use other material parameters. + ```json + "materials": [ + { + "id": 2, + "E": 10000000.0, + "nu": 0.4, + "rho": 1150, + "type": "NeoHookean" + }, + { + "id": 1, + "E": 10000000.0, + "nu": 0.4, + "rho": 1150, + "type": "NeoHookean" + } + ] + ``` +4. Since the sphere is all free and the only actuator are the fingers, there is no need to set Dirichlet boundary conditions for the sphere. As for the rubber band, although most of the rubber band is free to move, the two sides of the rubber band need to be static like attached to two poles. Then the Dirichlet boundary condition with `"id":3` is set to zero for the two ends of the rubber band. + ```json + "boundary_conditions": { + "obstacle_displacements": [ + { + "id": 1000, + "value": [ + "0", + "-0.02 * t", + "0" + ] + }, + { + "id": 1001, + "value": [ + "0", + "0.02 * t", + "0" + ] + } + ], + "rhs": [ + 0, + 9.81, + 0 + ], + "dirichlet_boundary": [ + { + "id": 3, + "value": [ + 0, + 0, + 0 + ] + } + ] + } + ``` +To view the whole JSON configuration file, please go to [sling_shot.json](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/blob/main/slingshot/assets/json/sling_shots.json). + +After loading every object, the environment should look like +![](setup.png) + + +### Python Environment Development +In this section, we will develop a python environment to do the slingshot. + +#### Class Initialization +In the `src` folder, create a python file `slingshot.py`. In this file, let's first import necessary libraries and create a PushBox class with its `__init__` function: +```python +import polyfempy as pf +import json +import numpy as np + + +class SlingShot: + def __init__(self) -> None: + self.asset_file = 'slingshot/assets/json/sling_shots.json' + with open(self.asset_file,'r') as f: + self.config = json.load(f) + self.dt = self.config["dt"] + self.step_count = 1 + self.solver = pf.Solver() + self.solver.set_log_level(3) + self.solver.set_settings(json.dumps(self.config)) + self.solver.load_mesh_from_settings() + self.dt = self.config["dt"] + self.t0 = self.config["t0"] + self.solver.init_timestepping(self.t0, self.dt) + self.id_to_mesh = {} + self.id_to_position = {} + self.id_to_vf = {} + for mesh in self.config["meshes"]: + self.id_to_mesh[mesh["body_id"]] = mesh["mesh"] + self.id_to_position[mesh["body_id"]] = mesh["position"] + + # To grasp and hold the sphere very tightly + self.pre_steps = 4 + for i in range(self.pre_steps): + self.run_simulation() + self.cumulative_action = {"0":np.array([0, -0.02 * self.dt * self.step_count, 0, 0.02 * self.dt * self.step_count]), "1":np.array([0, 0.02 * self.dt, 0, 0.02 * self.dt])} +``` +In the `__init__` function, we load the environment configuration from the JSON file we just made, initialize a step counter and the PolyFEM solver. Here we set the log_level of PolyFEM to 3 which only displays the errors and warnings from PolyFEM. Feel free to change the log level to get more information or less based on [docs for log_levels](https://polyfem.github.io/polyfempy_doc/#set_log_level) (More specifically, --log_level ENUM:value in {trace->0,debug->1,info->2,warning->3,error->4,critical->5,off->6} OR {0,1,2,3,4,5,6}). + +One thing to mention is that `polyfempy` is always calculating the result for this time step based on the displacement from the initial position which is the position read from the JSON file. However, we only pay close attention to the action or movement we want to exert for this timestep, so `self.cumulative_action` would take care of previous displacements. + +Different from the [PushBox]() environment, in this `__init__` function, we need to squeeze the sphere to a certain point so that the sphere would never slide off the fingers unless the user decides to release it. That's why at the end of the `__init__` function four `pre_steps` are trying to close the fingers and squeeze the rubber ball. + +#### Take the action from the user +The solver is already initialized in the previous section, now we can design an interface for the users to pass new actions to the sphere from their side. In this tutorial, the action space is 4-dimensional and consists of movement of the fingers along the x-axis, y-axis, and z-axis and one action to close or open the two fingers. The argument `actions` in this function are a dictionary and contain the actions for both fingers. +```python +def set_boundary_conditions(self, actions:dict): + t0 = self.t0 + t1 = t0 + self.dt + for mesh_id, action in actions.items(): + self.solver.update_obstacle_displacement( + int(mesh_id), + [ + f"{self.cumulative_action[mesh_id][0]} + ((t-{t0})*{action[0]})/({t1-t0})", + f"{self.cumulative_action[mesh_id][1] + self.cumulative_action[mesh_id][3]} + ((t-{t0})*{action[1] + action[3]})/({t1-t0})", + f"{self.cumulative_action[mesh_id][2]} + ((t-{t0})*{action[2]})/({t1-t0})" + ] + ) + self.cumulative_action[mesh_id] += action +``` +In the current setting, the fingers are opening and closing along the y-axis. That is why the action to control the fingers to open or close also needs to be added to the overall y-axis. Also since there are two fingers in the scene, we use a for loop to update the displacements for both of them. + +#### Run simulation for the current timestep + +```python +def run_simulation(self): + self.solver.step_in_time(0, self.dt, self.step_count) # run simulation to the current time step, and the length of each timestep is self.dt + self.step_count += 1 # increment the step counter + self.t0 += self.dt # increment the starting time point for the next time step +``` + +To simulate the current timestep, we need to call `self.solver.step_in_time`, where the first argument of this function is the initial time of the simulation and the second argument is the time length for each time step and the third argument is the total time steps have been simulated now. + +#### Get the position of each object +If you want to get the position information of each object in the simulation when you make interactions with the environment, you can get the positions of each mesh using this function. + +```python +def get_object_positions(self): + points, tets, _, body_ids, displacement = self.solver.get_sampled_solution() + self.id_to_position = {} + self.id_to_vertex = {} + for mesh_id, _ in self.id_to_mesh.items(): + vertex_position = points + displacement + self.id_to_vertex[mesh_id] = vertex_position[body_ids[:,0]==mesh_id] + mean_cell_id = np.mean(body_ids[tets], axis=1).astype(np.int32).flat + tet_barycenter = np.mean(vertex_position[tets], axis=1) + self.id_to_position[mesh_id] = np.mean(tet_barycenter[mean_cell_id == mesh_id], axis=0) + return self.id_to_position +``` + +This function gets sample vertices for each mesh from the solver and these vertices are averaged to get a "centroid" of the object to represent its position. + +#### Step function exposed to the user +```python +def step(self, action: np.ndarray): + actions = { + # x, y, z gripper_displacement + "0": np.array([action[0], + action[1], + action[2], + -1 * action[3]/2]), + "1": np.array([action[0], + action[1], + action[2], + action[3]/2]) + } + self.set_boundary_conditions(actions) + self.run_simulation() + return self.get_object_positions() +``` +The step function here takes the action from the user and simulates the timestep and returns the positions for each object to the user. Note that the action from the user is a `numpy` array containing the `x,y,z` movement of the two fingers and the displacement between the two fingers for the current timestep. Then the action needs to be transferred into a dictionary that `"self.set_boundary_conditions"` function would recognize for both of the fingers. At the same time, the two fingers' displacements are coupled so in the `actions` dictionary, the displacements need to be decoupled from both fingers and let them move in opposite directions. + +To view the implementation of the whole class, please go to [slingshot.py](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/blob/main/slingshot/src/slingshot.py). + +### Test of the Environment +Here's a very simple test case: +```python +from slingshot.src.slingshot import SlingShot +import numpy as np + +env = SlingShot() +print("Initialzied.") +# pull the rubber band +for i in range(3): + action = np.array([0.1,0,0,0]) + env.step(action) + +# release it +action = np.array([0,0,0,-0.1]) +env.step(action) +# let it fly +for i in range(20): + action = np.array([0,0,0,0]) + env.step(action) +``` +You can create a test.py file for this, and run it in the project folder: +```shell= +python test.py +``` +The result should be like the gifs at the beginning. \ No newline at end of file diff --git a/tutorials/sphere-pushing-box/sim1.gif b/tutorials/sphere-pushing-box/sim1.gif new file mode 100644 index 00000000..eea7ad2f Binary files /dev/null and b/tutorials/sphere-pushing-box/sim1.gif differ diff --git a/tutorials/sphere-pushing-box/sim2.gif b/tutorials/sphere-pushing-box/sim2.gif new file mode 100644 index 00000000..e08e21e5 Binary files /dev/null and b/tutorials/sphere-pushing-box/sim2.gif differ diff --git a/tutorials/sphere-pushing-box/sphere-pushing-box/index.html b/tutorials/sphere-pushing-box/sphere-pushing-box/index.html new file mode 100644 index 00000000..db5feb24 --- /dev/null +++ b/tutorials/sphere-pushing-box/sphere-pushing-box/index.html @@ -0,0 +1,1679 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +In this tutorial, we will be focusing on how to make an environment using a sphere to push a box on a table from scratch. In this scenario, one single JSON file for PolyFEM is seemingly not enough to simulate a varying and interactive environment like this. Therefore we will be using polyfempy
, the python bindings for PolyFEM, to enable a more functional and versatile development.
+ + +
+ +In this tutorial, we are assuming you have already installed polyfempy in your machine. If not, please follow the instructions here. Note that there is no need to install standalone PolyFEM. All the dependencies that polyfempy requires will be installed automatically including PolyFEM. Also please note that please install and compile polyfempy from source by doing +
python setup.py install
+
After installation, please try to run +
python -c "import polyfempy as pf"
+
polyfempy
is installed successfully.
+Note that this tutorial is using a Conda virtual environment.
+To build this project, there are some other depencies we need. Note that meshio and igl are optional. They are only required if you want to render the scenes with python.
+conda install numpy
conda install -c conda-forge meshio
conda install -c conda-forge igl
The data needed in this tutorial can be found here. For triangle meshes, they are in surf_mesh folder and the volume meshes are in vol_mesh folder. The volume mesh files are all made using fTetWild. Feel free you make your own spheres and boxes.
+All the codes and JSON files can be found here.
+The first step is to make a JSON file push_box_all_vol_mesh.json
in the JSON folder for the initial setup with the sphere, cube, and the table in it. Let’s load the objects!
+
{
+ "geometry": [{
+ "mesh": "pushbox/assets/data/vol_mesh/sphere.msh",
+ "transformation": {
+ "translation": [-1.0, 0.2, 0],
+ "scale": 0.1
+ },
+ "volume_selection": 1,
+ "surface_selection": 1
+ }, {
+ "mesh": "pushbox/assets/data/vol_mesh/cube.msh",
+ "transformation": {
+ "translation": [0, -0.0051, 0],
+ "scale": [4, 0.01, 4]
+ },
+ "volume_selection": 2,
+ "surface_selection": 2,
+ }, {
+ "mesh": "pushbox/assets/data/vol_mesh/cube.msh",
+ "transformation": {
+ "translation": [-0.65, 0.2, 0],
+ "scale": 0.4
+ },
+ "volume_selection": 3,
+ "surface_selection": 3
+ }]
+}
+
The second thing is to give proper material parameters to these objects. +
{
+ "materials": [{
+ "id": 1,
+ "E": 2e11,
+ "nu": 0.3,
+ "rho": 7750,
+ "type": "NeoHookean"
+ }, {
+ "id": 2,
+ "E": 2e11,
+ "nu": 0.3,
+ "rho": 7750,
+ "type": "NeoHookean"
+ }, {
+ "id": 3,
+ "E": 1e8,
+ "nu": 0.48,
+ "rho": 1500.0,
+ "type": "NeoHookean"
+ }],
+}
+
"volume_selection"
s.
+For the boudary conditions, we can set it as: +
{
+ "boundary_conditions": {
+ "rhs": [0, 9.81, 0],
+ "dirichlet_boundary": [{
+ "id": 1,
+ "value": ["0", "0", "0"]
+ }, {
+ "id": 2,
+ "value": [0, 0, 0]
+ }]
+ }
+}
+
"id":1
is set for the sphere. They are set to ["0", "0", "0"]
just for initialization and the value of the boundary condition will be modified during the interaction.
+The second Dirichlet boundary condition is for the table since there’s no need for the table to move. That’s why it’s set to [0,0,0]
.
Note that there’s no Dirichlet boundary condition with "id":3
, however, the "boundary_id"
for the cube is set to 3. This is because we want the cube to be completely free in all three dimensions.
In addition to the Dirichlet boundary conditions, the problem should also be time-dependent and the gravity should also be specified in the "rhs"
argument (the gravity here is along the y-axis).
To view the whole JSON file, please go to pushbox_all_vol_mehses.json.
+In this section, we will develop a python environment to control the sphere to interact with the box.
+In the src
folder, create a python file pushbox.py
. In this file, let’s first import necessary libraries and create a PushBox class with its __init__
function:
import polyfempy as pf
+import json
+import numpy as np
+
+class PushBox:
+ def __init__(self) -> None:
+ self.asset_file = 'pushbox/assets/json/push_box_all_vol_mesh.json'
+ with open(self.asset_file,'r') as f:
+ self.config = json.load(f)
+ self.step_count = 1
+ self.solver = pf.Solver()
+ self.solver.set_log_level(3)
+ self.solver.set_settings(json.dumps(self.config))
+ self.solver.load_mesh_from_settings()
+ self.cumulative_action = np.zeros(3)
+ self.dt = self.config["time"]['dt']
+ self.t0 = self.config["time"]["t0"]
+ self.solver.init_timestepping(self.t0, self.dt)
+
+ self.id_to_mesh = {}
+ self.id_to_position = {}
+ self.id_to_vf = {}
+ for mesh in self.config["geometry"]:
+ if ("is_obstacle" in mesh.keys()) and (mesh["is_obstacle"]):
+ self.obstacle_ids.append(mesh["surface_selection"])
+ else:
+ self.id_to_mesh[mesh["volume_selection"]] = mesh["mesh"]
+ self.id_to_position[mesh["volume_selection"]] = mesh["transformation"]["translation"]
+
In the __init__
function, we load the environment configuration from the JSON file we just made, initialize a step counter and the polyfem solver. Here we set the log_level
of PolyFEM to 3 which only displays the errors and warnings from PolyFEM. Feel free to change the log level to get more information or less based on docs for log_levels (More specifically, --log_level ENUM:value in {trace->0,debug->1,info->2,warning->3,error->4,critical->5,off->6} OR {0,1,2,3,4,5,6}
).
One thing to mention is that polyfempy
is always calculating the result for this time step based on the displacement from the initial position which is the position read from the JSON file. However, we only pay close attention to the action or movement we want to exert for this timestep, so self.cumulative_action
would take care of previous displacements.
The solver is already initialized in the previous section, now we can design an interface for the users to pass new actions to the sphere from their side.
+def set_boundary_conditions(self, action: np.ndarray): -> None
+ t0 = self.t0 # starting time point for this timestep
+ t1 = t0 + self.dt # end time point for this timestep
+ self.solver.update_dirichlet_boundary(
+ int(1), # the dirichlet boundary condition with id=1
+ [
+ f"{self.cumulative_action[0]} + ((t-{t0})*{action[0]})/({t1-t0})",
+ f"{self.cumulative_action[1]} + ((t-{t0})*{action[1]})/({t1-t0})",
+ f"{self.cumulative_action[2]} + ((t-{t0})*{action[2]})/({t1-t0})"
+ ]
+ )
+ self.cumulative_action += action # accumulate the new action to displacement
+
This code block is to update the dirichlet boundary condition for the sphere in the next timestep. The current time is t0
, and the current displacement is self.cumulative_action
. Since the movement of the sphere needs to be continous and potential fatal penetration can happen if we just set the dirichlet boundary condition to self.cumulative_action + action
. Image the action is large enough and greater than the edge length of the box while the sphere is on the left side of the box, then the sphere can teleport to the right side of the box without moving it. To avoid this kind of teleportation, we can interpolate the displacement from self.cumulative_action
to self.cumulative_action + action
for this timestep to make the movement of the sphere smooth and contiuous. The updated dirichlet boundary conditon in the above code block is the linear interplotion for the current timestep.
def run_simulation(self):
+ self.solver.step_in_time(0, self.dt, self.step_count) # run simulation to the current time step, and the length of each timestep is self.dt
+ self.step_count += 1 # increment the step counter
+ self.t0 += self.dt # increment the starting time point for the next time step
+
To simulate the current timestep, we need to call self.solver.step_in_time
, where the first argument of this function is the initial time of the simulation and the second argument is the time length for each time step and the third argument is the total time steps have been simulated now.
If you want to get the position information of each object in the simulation when you make interactions with the environment, you can get the positions of each mesh using this function.
+def get_object_positions(self):
+ points, tets, _, body_ids, displacement = self.solver.get_sampled_solution()
+ self.id_to_position = {}
+ self.id_to_vertex = {}
+ for mesh_id, _ in self.id_to_mesh.items():
+ vertex_position = points + displacement
+ self.id_to_vertex[mesh_id] = vertex_position[body_ids[:,0]==mesh_id]
+ mean_cell_id = np.mean(body_ids[tets], axis=1).astype(np.int32).flat
+ tet_barycenter = np.mean(vertex_position[tets], axis=1)
+ self.id_to_position[mesh_id] = np.mean(tet_barycenter[mean_cell_id == mesh_id], axis=0)
+ return self.id_to_position
+
This function gets sample vertices for each mesh from the solver and these vertices are averaged to get a “centroid” of the object to represent its position.
+def step(self, action: np.ndarray):
+ self.set_boundary_conditions(action)
+ self.run_simulation()
+ return self.get_object_positions()
+
To view the implementation of the whole class, please go to pushbox.py.
+Here’s a very simple but weird test case:
+from pushbox.src.pushbox import PushBox
+import numpy as np
+
+env = PushBox()
+
+# push forward
+for i in range(5):
+ action = np.array([0.1,0,0])
+ env.step(action)
+
+# go around the box
+action = np.array([-0.1,0,0])
+env.step(action)
+action = np.array([0,0,0.3])
+env.step(action)
+action = np.array([1.0,0,0])
+env.step(action)
+action = np.array([0,0.3,0])
+env.step(action)
+action = np.array([0,0,-0.6])
+env.step(action)
+action = np.array([0,-0.4,0])
+env.step(action)
+action = np.array([0,0,0.4])
+env.step(action)
+
You can create a test.py file for this, and run it in the project folder:
+python test.py
+
The result should be like the gifs at the beginning.
+In the previous environment, all the meshes are volume meshes, so the sphere, box, and table are all deformable. The ability of deformation for all meshes is generally not good (if you want three of them to be deformable, then you can skip the rest of the tutorial) and takes a long time to simulate. Thus in this section, considering the table is only a support base and the sphere is only an actuator, the table and the sphere can be rigid. Then we can set them as obstacles (a special type of mesh whose displacement is fully prescribed and need not be volumetric).
+Now the mesh part only needs to load the box and the sphere and the table can be loaded as obstacles:
+{
+ "geometry": [{
+ "mesh": "pushbox/assets/data/vol_mesh/cube.msh",
+ "transformation": {
+ "translation": [-0.65, 0.2, 0],
+ "scale": 0.4
+ },
+ "volume_selection": 3,
+ "surface_selection": 3,
+ "advanced": {
+ "normalize_mesh": false
+ }
+ }, {
+ "mesh": "pushbox/assets/data/surf_mesh/sphere.obj",
+ "is_obstacle": true,
+ "enabled": true,
+ "transformation": {
+ "translation": [-1.0, 0.2, 0],
+ "scale": 0.1
+ },
+ "surface_selection": 1000
+ }, {
+ "mesh": "pushbox/assets/data/surf_mesh/cube_dense.obj",
+ "is_obstacle": true,
+ "enabled": true,
+ "transformation": {
+ "translation": [0, -0.0051, 0],
+ "scale": [4, 0.01, 4]
+ },
+ "surface_selection": 1001
+ }]
+}
+
Note that the obstacles have no boundary conditions or material parameters (since they are already rigid) but only displacements. Also, there’s no need for Dirichlet boundary conditions anymore since the sphere is controlled by its displacement field.
+The json file can be found at pushbox.json.
+In the src
folder, create a python file pushbox_with_obstacles.py
. The __init__
function stays the same except for the JSON file path.
def set_boundary_conditions(self, action):
+ t0 = self.t0
+ t1 = t0 + self.dt
+ self.solver.update_obstacle_displacement(
+ int(0),
+ [
+ f"{self.cumulative_action[0]} + ((t-{t0})*{action[0]})/({t1-t0})",
+ f"{self.cumulative_action[1]} + ((t-{t0})*{action[1]})/({t1-t0})",
+ f"{self.cumulative_action[2]} + ((t-{t0})*{action[2]})/({t1-t0})"
+ ]
+ )
+ self.cumulative_action += action
+
Note that the obstacles have no ID fields, thus we can’t update its displacement with its id but the order of the obstacles in the JSON file. The index starts from 0. The rest part remains the same.
+To view the whole implementation of the environment with obstacles, please go to pushbox_with_obstacles.py.
+The test script remains the same except for the first import. Make sure to import PushBox
from the correct file.
from pushbox.src.pushbox_with_obstacles import PushBox
+
The entire script can be viewed in test_with_obs.py.
+This is the end of the tutorial. Enjoy!
+ ++ + +
+ +## Prerequisites + +### Install the Python Bindings of PolyFEM + +In this tutorial, we are assuming you have already installed polyfempy in your machine. If not, please follow the instructions [here](https://github.com/polyfem/polyfem-python). Note that there is no need to install standalone PolyFEM. All the dependencies that polyfempy requires will be installed automatically including PolyFEM. Also please note that please install and compile polyfempy from source by doing +```sh +python setup.py install +``` +instead of using the conda depolyment. + +After installation, please try to run +```sh +python -c "import polyfempy as pf" +``` +to test if `polyfempy` is installed successfully. + +### Other Dependencies + +Note that this tutorial is using a Conda virtual environment. + +To build this project, there are some other depencies we need. Note that meshio and igl are optional. They are only required if you want to render the scenes with python. + +1. numpy: `conda install numpy` +2. meshio (optional): `conda install -c conda-forge meshio` +3. python bindings of libigl (optional): `conda install -c conda-forge igl` + +## Data Preparation + +The data needed in this tutorial can be found [here](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data). For triangle meshes, they are in [surf_mesh folder](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data/surf_mesh) and the volume meshes are in [vol_mesh folder](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data/vol_mesh). The volume mesh files are all made using [fTetWild](https://github.com/wildmeshing/fTetWild). Feel free you make your own spheres and boxes. + +All the codes and JSON files can be found [here](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial). + +## Environment with Volume Meshes + +### JSON Environment Setup + +1. The first step is to make a JSON file `push_box_all_vol_mesh.json` in the JSON folder for the initial setup with the sphere, cube, and the table in it. Let's load the objects! +```json +{ + "geometry": [{ + "mesh": "pushbox/assets/data/vol_mesh/sphere.msh", + "transformation": { + "translation": [-1.0, 0.2, 0], + "scale": 0.1 + }, + "volume_selection": 1, + "surface_selection": 1 + }, { + "mesh": "pushbox/assets/data/vol_mesh/cube.msh", + "transformation": { + "translation": [0, -0.0051, 0], + "scale": [4, 0.01, 4] + }, + "volume_selection": 2, + "surface_selection": 2, + }, { + "mesh": "pushbox/assets/data/vol_mesh/cube.msh", + "transformation": { + "translation": [-0.65, 0.2, 0], + "scale": 0.4 + }, + "volume_selection": 3, + "surface_selection": 3 + }] +} +``` + The first mesh is the sphere, and the third one is the cube. Here, the cube's mesh is re-scaled to act as the table. Feel free to use a 2D plane, or the mat mesh as the table in the GitHub repo. + +2. The second thing is to give proper material parameters to these objects. +```json +{ + "materials": [{ + "id": 1, + "E": 2e11, + "nu": 0.3, + "rho": 7750, + "type": "NeoHookean" + }, { + "id": 2, + "E": 2e11, + "nu": 0.3, + "rho": 7750, + "type": "NeoHookean" + }, { + "id": 3, + "E": 1e8, + "nu": 0.48, + "rho": 1500.0, + "type": "NeoHookean" + }], +} +``` + The material parameters go to their matching meshes with the same `"volume_selection"`s. + +3. For the boudary conditions, we can set it as: +```json +{ + "boundary_conditions": { + "rhs": [0, 9.81, 0], + "dirichlet_boundary": [{ + "id": 1, + "value": ["0", "0", "0"] + }, { + "id": 2, + "value": [0, 0, 0] + }] + } +} +``` + The first [Dirichlet boundary condition](../getting_started/#boundary-conditions) with `"id":1` is set for the sphere. They are set to `["0", "0", "0"]` just for initialization and the value of the boundary condition will be modified during the interaction. + + The second Dirichlet boundary condition is for the table since there's no need for the table to move. That's why it's set to `[0,0,0]`.In this tutorial, we will demonstrate how to use polyfem to optimize the initial velocity of throwing a ball to match a given trajectory.
++ +
+ +The following items are necessary to complete this tutorial. To reproduce the experiment, you can feel free to use either the given mesh files or your own mesh.
+The files can also be found at polyfem-data.
+The instructions for building PolyFEM can be found here.
+Then you can use it by
+polyfem --help
+
We will setup the optimization using PolyFEM’s JSON interface. For more details, please refer to the JSON Input documentation.
+We will only go over the JSON script for the optimization configuration, please refer to other tutorials for the JSON script for the simulation configuration.
+{
+ "parameters": [
+ {
+ "number": 2,
+ "initial": [4, 0]
+ }
+ ]
+}
+
In parameters
, we specify the dimension and initial guess of the variable to be optimized. Since we are going to optimize the initial velocity of a ball in 2D, the dimension is 2.
In more complex optimizations, where several types of parameters are optimized, the parameters
can be a list of variables of different dimensions.
{
+ "states": [
+ {
+ "path": "barycenter.json"
+ },
+ {
+ "path": "barycenter-target.json"
+ }
+ ]
+}
+
In states
, we specify the path to the JSON files of simulations, they follow the same rules for the simulation JSON scripts. PolyFEM will create a number of simulators, one for each JSON file, whose parameters can be optimized. During the optimization, certain parameters in these configurations are optimized, but the optimized values will not overwrite the values in these JSON files. Each simulator gets an ID starting from 0, following the order in this list. The ID of simulators may be used in variable to simulation
and functionals
.
Here we have two simulators: The first one is the simulator being optimized, while the second one is a fixed simulation that generates a reference trajectory. These JSON files are only for initializing the simulators, so one can use the same path for multiple simulators if possible.
+{
+ "variable_to_simulation": [
+ {
+ "type": "initial",
+ "state": 0,
+ "composition": [{
+ "type": "append-values",
+ "values": [0, 0]
+ },{
+ "type": "per-body-to-per-node",
+ "state": 0
+ },{
+ "type": "append-const",
+ "value": 0,
+ "size": 146,
+ "start": 0
+ }]
+ }
+ ]
+}
+
In variable to simulation
, we specify how the optimization variables in parameters
control the simulation configurations. Since different types of parameters in a number of simulations can be controlled at the same time, the variable to simulation
is a list, where each entry specifies the control of one type of parameter, e.g. initial condition, in one simulation. The type
specifies the type of parameter in the simulation, and state
points to the ID of the simulation (according to the order in states
).
The initial condition parameter has a dimension of 2 * dim * n_basis
, where dim
is the dimension of the simulation (2 or 3), n_basis
is the number of finite element basis in the simulation, because it consists of the initial displacement and velocity at every basis node. This allows the user to specify the initial condition not only as a rigid body transformation, but also as an arbitrary deformation, e.g. stretching and shearing.
In this tutorial, we only optimize the initial velocity of the ball, so we need to build a mapping, which we call composition
in the JSON script, from the variable of size 2 to the full initial condition parameter of size 2 * dim * n_basis
. The composition
is a list of some pre-defined mappings, which will apply to the optimization variables in order, and the final output of the mappings will be assigned to the initial condition parameter.
There are two objects with different volume IDs, specified in barycenter.json
and barycenter-target.json
, and we only want to control the initial velocity of the ball, with volume ID 1. First, in append-values
we append two zeros to the optimization variable, which represents the zero initial velocity of the floor. Second, in per-body-to-per-node
we map the per-volume values to per-node, whose output has the dimension of dim * n_basis
. Finally, in append-const
we append more zeros to the start of the vector, to account for the zero initial displacement. Please refer to the opt-input-spec.json for the documentation of compositions.
{
+ "functionals": [
+ {
+ "type": "transient_integral",
+ "state": 0,
+ "integral_type": "uniform",
+ "static_objective":
+ {
+ "type": "center-target",
+ "state": 0,
+ "target_state": 1,
+ "volume_selection": [1]
+ }
+ }
+ ]
+}
+
The functionals
specify the objective being minimized in the optimization. Please refer to objective-input-spec.json for the documentation of functionals
.
Here we perform trajectory optimization on the ball, so the objective is the \(L^2\) difference between the two ball barycenters in the two simulations, integrated over time.
+{
+ "type": "center-target",
+ "state": 0,
+ "target_state": 1,
+ "volume_selection": [1]
+}
+
The center-target
computes the \(L^2\) difference between the solutions in state
and target_state
, integrated over the space with volume selection
ID 1. We assume that both simulators have the same number of basis and dimension on the same volume selection (number of basis on other volume selections can be different).
{
+ "type": "transient_integral",
+ "state": 0,
+ "integral_type": "uniform",
+ "static_objective": { ... }
+}
+
The transient integral
computes the integral over time of the static objective
. The integral type
and state
specify the quadrature scheme and the simulator (the objective gets information like the number of time steps and dt from the simulator).
"output": {
+ "log": {
+ "level": 1
+ }
+}
+
The output
contains options regarding the logging of the optimization, here output/log/level
specifies a log level of 1, corresponding to debugging
, to log the energy and gradient during the optimization. The log level for simulations are specified in each state json, normally the simulation log level is set to info
or warn
so that we can focus more on the optimization logs.
"solver": {
+ "nonlinear": {
+ "history_size": 2,
+ "grad_norm": 1e-4
+ }
+ }
+
The solver
contains options of the nonlinear solver for the optimization. Since our forward problem and inverse problem share the same nonlinear solver code, the options of the inverse problem are the same as in the forward problem. However, since we can’t compute the second order derivatives of the inverse problem, the Newton’s method is not available here. By default the solver is L-BFGS, a quasi-Newton method using a limited amount of memory.
+ +
+ +## Prerequisites + +The following items are necessary to complete this tutorial. To reproduce the experiment, you can feel free to use either the given mesh files or your own mesh. + +- [ ] [Build PolyFEM](../../cxx_index.md) +- [ ] [Download File: square.obj](https://github.com/polyfem/polyfem-data/blob/main/contact/meshes/2D/simple/square.obj) +- [ ] [Download File: circle.msh](https://github.com/polyfem/polyfem-data/blob/main/differentiable/circle.msh) +- [ ] [Download File: barycenter-opt.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter-opt.json) +- [ ] [Download File: barycenter.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter.json) +- [ ] [Download File: barycenter-target.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter-target.json) + +The files can also be found at [polyfem-data](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/). + +### Build PolyFEM + +The instructions for building PolyFEM can be found [here](../../cxx_index.md). + +Then you can use it by + +```shell +polyfem --help +``` + +## Setting up the Optimization + +We will setup the optimization using PolyFEM's JSON interface. For more details, please refer to the [JSON Input](../../json.md) documentation. + +We will only go over the JSON script for the optimization configuration, please refer to other tutorials for the JSON script for the simulation configuration. + +### Parameters + +```json +{ + "parameters": [ + { + "number": 2, + "initial": [4, 0] + } + ] +} +``` + +In `parameters`, we specify the dimension and initial guess of the variable to be optimized. Since we are going to optimize the initial velocity of a ball in 2D, the dimension is 2. + +In more complex optimizations, where several types of parameters are optimized, the `parameters` can be a list of variables of different dimensions. + +### States + +```json +{ + "states": [ + { + "path": "barycenter.json" + }, + { + "path": "barycenter-target.json" + } + ] +} +``` + +In `states`, we specify the path to the JSON files of simulations, they follow the same [rules](../../json.md) for the simulation JSON scripts. PolyFEM will create a number of simulators, one for each JSON file, whose parameters can be optimized. During the optimization, certain parameters in these configurations are optimized, but the optimized values will not overwrite the values in these JSON files. Each simulator gets an ID starting from 0, following the order in this list. The ID of simulators may be used in `variable to simulation` and `functionals`. + +Here we have two simulators: The first one is the simulator being optimized, while the second one is a fixed simulation that generates a reference trajectory. These JSON files are only for initializing the simulators, so one can use the same path for multiple simulators if possible. + +### Variable to Simulation + +```json +{ + "variable_to_simulation": [ + { + "type": "initial", + "state": 0, + "composition": [{ + "type": "append-values", + "values": [0, 0] + },{ + "type": "per-body-to-per-node", + "state": 0 + },{ + "type": "append-const", + "value": 0, + "size": 146, + "start": 0 + }] + } + ] +} +``` + +In `variable to simulation`, we specify how the optimization variables in `parameters` control the simulation configurations. Since different types of parameters in a number of simulations can be controlled at the same time, the `variable to simulation` is a list, where each entry specifies the control of one type of parameter, e.g. initial condition, in one simulation. The `type` specifies the type of parameter in the simulation, and `state` points to the ID of the simulation (according to the order in `states`). + +The initial condition parameter has a dimension of `2 * dim * n_basis`, where `dim` is the dimension of the simulation (2 or 3), `n_basis` is the number of finite element basis in the simulation, because it consists of the initial displacement and velocity at every basis node. This allows the user to specify the initial condition not only as a rigid body transformation, but also as an arbitrary deformation, e.g. stretching and shearing. + +In this tutorial, we only optimize the initial velocity of the ball, so we need to build a mapping, which we call `composition` in the JSON script, from the variable of size 2 to the full initial condition parameter of size `2 * dim * n_basis`. The `composition` is a list of some pre-defined mappings, which will apply to the optimization variables in order, and the final output of the mappings will be assigned to the initial condition parameter. + +There are two objects with different volume IDs, specified in `barycenter.json` and `barycenter-target.json`, and we only want to control the initial velocity of the ball, with volume ID 1. First, in `append-values` we append two zeros to the optimization variable, which represents the zero initial velocity of the floor. Second, in `per-body-to-per-node` we map the per-volume values to per-node, whose output has the dimension of `dim * n_basis`. Finally, in `append-const` we append more zeros to the start of the vector, to account for the zero initial displacement. Please refer to the [opt-input-spec.json](https://github.com/polyfem/polyfem/blob/main/json-specs/opt-input-spec.json) for the documentation of compositions. + +### Functionals + +```json +{ + "functionals": [ + { + "type": "transient_integral", + "state": 0, + "integral_type": "uniform", + "static_objective": + { + "type": "center-target", + "state": 0, + "target_state": 1, + "volume_selection": [1] + } + } + ] +} +``` + +The `functionals` specify the objective being minimized in the optimization. Please refer to [objective-input-spec.json](https://github.com/polyfem/polyfem/blob/main/json-specs/objective-spec.json) for the documentation of `functionals`. + +Here we perform trajectory optimization on the ball, so the objective is the $L^2$ difference between the two ball barycenters in the two simulations, integrated over time. + +```json +{ + "type": "center-target", + "state": 0, + "target_state": 1, + "volume_selection": [1] +} +``` + +The `center-target` computes the $L^2$ difference between the solutions in `state` and `target_state`, integrated over the space with `volume selection` ID 1. We assume that both simulators have the same number of basis and dimension on the same volume selection (number of basis on other volume selections can be different). + +```json +{ + "type": "transient_integral", + "state": 0, + "integral_type": "uniform", + "static_objective": { ... } +} +``` + +The `transient integral` computes the integral over time of the `static objective`. The `integral type` and `state` specify the quadrature scheme and the simulator (the objective gets information like the number of time steps and dt from the simulator). + +### Output + +```json +"output": { + "log": { + "level": 1 + } +} +``` + +The `output` contains options regarding the logging of the optimization, here `output/log/level` specifies a log level of 1, corresponding to `debugging`, to log the energy and gradient during the optimization. The log level for simulations are specified in each state json, normally the simulation log level is set to `info` or `warn` so that we can focus more on the optimization logs. + +### Solver + +```json + "solver": { + "nonlinear": { + "history_size": 2, + "grad_norm": 1e-4 + } + } +``` + +The `solver` contains options of the nonlinear solver for the optimization. Since our forward problem and inverse problem share the same nonlinear solver code, the options of the inverse problem are the same as in the forward problem. However, since we can't compute the second order derivatives of the inverse problem, the Newton's method is not available here. By default the solver is [L-BFGS](https://github.com/yixuan/LBFGSpp), a quasi-Newton method using a limited amount of memory. diff --git a/tutorials/vision-proprioception/paraview.png b/tutorials/vision-proprioception/paraview.png new file mode 100644 index 00000000..143ef0e1 Binary files /dev/null and b/tutorials/vision-proprioception/paraview.png differ diff --git a/tutorials/vision-proprioception/vision-proprioception/index.html b/tutorials/vision-proprioception/vision-proprioception/index.html new file mode 100644 index 00000000..36c02de4 --- /dev/null +++ b/tutorials/vision-proprioception/vision-proprioception/index.html @@ -0,0 +1,1604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + ++ + +
+ +In this tutorial, we will demonstrate how PolyFEM can be used to generate vision proprioception data for soft robotics study. The GitHub repo of this tutorial can be found here.
+The following, items are necessary to complete this tutorial. To replicate the experiment, readers can use either the given mesh files or their own mesh files.
+In this tutorial, we assume that readers already have PolyFEM installed. If not, the PolyFEM install instruction can be found here.
+To decrease the computing complexity of this tutorial example, we assume that the target item is the only deformable solid and the environment is rigid and immovable.
+Target Object Mesh (Radius: 0.5) | +Environment Mesh (Radius: 5.0) | +
---|---|
+ | + |
This tutorial’s objective is to launch a deformable target object into an environment mesh (i.e. a sphere rolling in a bowl) and gather the corresponding vision-based proprioceptive data (the internal view that shows deformation). Such data can be utilized to investigate the relationship between vision-based proprioception and kinematics of deformable objects.
+PolyFEM provides an interface through JSON and Python. Here we demonstrate the JSON interface setup first. For more details, please refer to the JSON API.
+In this section, we will go over the JSON script that defines the simulation section by section. The complete JSON file can be found here.
+The "geometry"
section specifies all geometry data required for simulation. For example, "mesh"
defines the path to the volumetric mesh file. Then, the term "transformation"
defines the operations that will be applied to the current mesh file. Next, volume selection specifies the mesh’s identifier, allowing other parameters to be applied to specific meshes based on volume selection.
Furthermore, is obstacle
permits the definition of a mesh as part of the environment. Obstacles are fully prescribed objects and as such, only their surface needs to be specified.
"geometry": [{
+ "mesh": "../data/sphere.msh",
+ "transformation": {
+ "translation": [-0.4, 0.18, 0],
+ "scale": 0.1
+ },
+ "volume_selection": 1
+}, {
+ "mesh": "../data/scene_bowl.msh",
+ "is_obstacle": true,
+ "enabled": true,
+ "transformation": {
+ "translation": [0, 0, 0],
+ "scale": 0.01
+ }
+}]
+
In the previous section, we defined the simulation-required geometry
. Following that, we must define their material properties and initial conditions. In the "initial_conditions"
section, we assign the mesh with volume selection value 1
and an initial velocity of [2, 0, 2]
. Next, in the materials
section, we use NeoHookean
for non-linear elasticity and define Young’s modulus E
, Poisson’s ratio nu
, and density rho
.
Next, we define time step size as dt
and time steps as the number of steps. enable
in the contact
determines whether collision detection and friction calculation are considered. And boundary conditions
permit us to add gravity to the simulation with ease.
{
+ "initial_conditions": {
+ "velocity": [
+ {
+ "id": 1,
+ "value": [2, 0, 2]
+ }
+ ]
+ },
+ "materials": [
+ {
+ "id": 1,
+ "E": 5000.0,
+ "nu": 0.3,
+ "rho": 100,
+ "type": "NeoHookean"
+ }
+ ],
+ "time": {
+ "t0": 0,
+ "dt": 0.1,
+ "time_steps": 100
+ },
+ "contact": {
+ "enabled": true,
+ "dhat": 0.0001,
+ "epsv": 0.004,
+ "friction_coefficient": 0.3
+ },
+ "boundary_conditions": {
+ "rhs": [0, 9.81, 0]
+ }
+}
+
{
+ "solver": {
+ "linear": {
+ "solver": "Eigen::CholmodSupernodalLLT"
+ },
+ "nonlinear": {
+ "line_search": {
+ "method": "backtracking"
+ },
+ "grad_norm": 0.001,
+ "use_grad_norm": false
+ },
+ "contact": {
+ "friction_iterations": 20,
+ "CCD": {
+ "broad_phase": "STQ"
+ }
+ }
+ },
+ "output": {
+ "json": "results.json",
+ "paraview": {
+ "file_name": "output.pvd",
+ "options": {
+ "material": true,
+ "body_ids": true
+ },
+ "vismesh_rel_area": 10000000
+ },
+ "advanced": {
+ "save_solve_sequence_debug": false,
+ "save_time_sequence": true
+ }
+ }
+}
+
To run the simulation, the following command can be used where polyfem
should be replaced with .../polyfem/build/PolyFEM_bin
.
cd PolyFEM_Tutorial_SoRo
+mkdir output
+polyfem --json json/scene_bowl.json --output_dir output
+
The simulation results will be output as a VTU file or a sequence of VTU files and a PVD file for the time sequence.
+In addition, to the JSON files, PolyFEM also supports a Python interface through polyfem-python. More information can be found in the Python Documentation. Python interface not only allows to read configuration from JSON directly but also allows user to have more control during the simulation (eg. simulation stepping or change boundary conditions).
+If the JSON file is available, we can simply import the configuration by reading the JSON file.
+import polyfem as pf
+
+with open('./scene_bowl.json') as f:
+ config = json.load(f)
+solver = pf.Solver()
+solver.set_settings(json.dumps(config))
+solver.load_mesh_from_settings()
+
Python interface provides a more flexible solution to simulate solving the time-dependent problem completely or interacting with the solver with steps.
+# OPTION 1: solve the problem and extract the solution
+solver.solve()
+pts, tris, velocity = solver.get_sampled_solution()
+
# OPTION 2: solve the problem with time steping
+solver.init_timestepping(t0, dt)
+for i in range(timesteps):
+ solver.step_in_time(t, dt, i)
+ # interact with intermediate result
+
To visualize the simulation sequential results in VTU
format, we can use ParaView
, an open-source, multi-platform data analysis and visualization application.
To view the results, please follow the instructions below.
+![]paraview.png)
+* Step 1: File
- Open
, select sequence group file step.vtu or step.vtm.
+* Step 2: Click Apply
under the tab Properties
located on the left side of the GUI.
+* Step 3: Click on Wrap By Vector
to apply the displacement to the objects. This function can be found in the top menu bar.
+* Step 4: Click again Apply
under the tab Properties
.
+* Step 5: Now, the Play
button can be used to view the time sequence results.
Blender is a free and open-source 3D computer graphics software toolset that can be used for animation, rendering, and video games. Here, we are using Blender to create vision propriocetions (internal views). First, we need to convert the VTU outputs back to mesh files that represent the target object at each time step. Then, we can colorize the target object using vertex coloring and render the final image with the Blender camera instance.
+To convert VTU to OBJ format, we can use the MeshIO library that is available in Python. A minimum example is shown below.
+import meshio
+m = meshio.read('step.vtu')
+m.write('step.obj')
+
There are many different ways to colorize a mesh object. For example, coloring through mesh vertices, mesh faces, or a UV map. Here we demonstrate a simple way, which is to color the mesh using its vertices. The OBJ extension format support RGB floating values append to the vertex coordinates.
+In the example below, the Python script controls the rendering process. First, it loads colorized mesh files and adds light and camera to the pre-calculated position and orientation (based on the vertice coordinates and surface normal). It then renders the image using vertex color.
+In this example, the camera is attched to one of the triangle in the surface mesh OBJ
. And the camera is pointing at the center of the sphere, the rendering results are shown below.
+ +
+ +blender_render.py
:
+
import os, sys
+import math
+import bpy
+
+os.chdir(sys.path[0])
+
+argv_offset = 0
+
+# IMPORT MESH
+mesh = bpy.ops.import_mesh.ply(filepath=sys.argv[6+argv_offset])
+mesh = bpy.context.active_object
+bpy.ops.object.mode_set(mode = 'VERTEX_PAINT')
+
+# ADD LIGHT
+light_data = bpy.data.lights.new('light', type='POINT')
+light = bpy.data.objects.new('light', light_data)
+light.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])]
+bpy.context.collection.objects.link(light)
+
+# ADD CAMERA
+cam_data = bpy.data.cameras.new('camera')
+cam = bpy.data.objects.new('camera', cam_data)
+cam.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])]
+cam.rotation_euler = [float(sys.argv[11+argv_offset]), float(sys.argv[12+argv_offset]), float(sys.argv[13+argv_offset])]
+cam.data.lens = 14
+bpy.context.collection.objects.link(cam)
+
+# ADD MATERIAL
+mat = bpy.data.materials.new(name='Material')
+mat.use_nodes=True
+# create two shortcuts for the nodes we need to connect
+# Principled BSDF
+ps = mat.node_tree.nodes.get('Principled BSDF')
+# Vertex Color
+vc = mat.node_tree.nodes.new("ShaderNodeVertexColor")
+vc.location = (-300, 200)
+vc.label = 'vc'
+# connect the nodes
+mat.node_tree.links.new(vc.outputs[0], ps.inputs[0])
+# apply the material
+mesh.data.materials.append(mat)
+
+# CREATE A SCENE
+scene = bpy.context.scene
+scene.camera = cam
+scene.render.image_settings.file_format = 'PNG'
+scene.render.resolution_x = 512
+scene.render.resolution_y = 512
+scene.render.resolution_percentage = 100
+scene.render.filepath = sys.argv[7+argv_offset]
+
+# RENDER
+bpy.ops.render.render(write_still=1)
+
The rendering can be processed through Blender GUI or bash command as shown below.
+blender blender_project.blend -b --python blender_render.py -- target_mesh_path output_path camera_position_x camera_position_y camera_position_z camera_orientation_x camera_orientation_y camera_orientation_z
+
+ + +
+ +In this tutorial, we will demonstrate how PolyFEM can be used to generate vision proprioception data for soft robotics study. The GitHub repo of this tutorial can be found [here](https://github.com/hanwenzhao/PolyFEM_Tutorial_SoRo). + +## Prerequisites + +The following, items are necessary to complete this tutorial. To replicate the experiment, readers can use either the given mesh files or their own mesh files. + +In this tutorial, we assume that readers already have PolyFEM installed. If not, the PolyFEM install instruction can be found [here](../../../cxx_index/). + +### Meshes + +To decrease the computing complexity of this tutorial example, we assume that the target item is the only deformable solid and the environment is rigid and immovable. + +| Target Object Mesh (Radius: 0.5) | Environment Mesh (Radius: 5.0) | +| ---- | ---- | +||| + +## Problem Formulation + +This tutorial's objective is to launch a deformable target object into an environment mesh (i.e. a sphere rolling in a bowl) and gather the corresponding vision-based proprioceptive data (the internal view that shows deformation). Such data can be utilized to investigate the relationship between vision-based proprioception and kinematics of deformable objects. + +## JSON Interface + +PolyFEM provides an interface through JSON and Python. Here we demonstrate the JSON interface setup first. For more details, please refer to the [JSON API](../../../json/). + +### Setup Similation +In this section, we will go over the JSON script that defines the simulation section by section. The complete JSON file can be found [here](https://github.com/hanwenzhao/PolyFEM_Tutorial_SoRo). + +#### Geometry + +The `"geometry"` section specifies all geometry data required for simulation. For example, `"mesh"` defines the path to the volumetric mesh file. Then, the term `"transformation"` defines the operations that will be applied to the current mesh file. Next, volume selection specifies the mesh's identifier, allowing other parameters to be applied to specific meshes based on volume selection. + +Furthermore, `is obstacle` permits the definition of a mesh as part of the environment. Obstacles are fully prescribed objects and as such, only their surface needs to be specified. + +```json +"geometry": [{ + "mesh": "../data/sphere.msh", + "transformation": { + "translation": [-0.4, 0.18, 0], + "scale": 0.1 + }, + "volume_selection": 1 +}, { + "mesh": "../data/scene_bowl.msh", + "is_obstacle": true, + "enabled": true, + "transformation": { + "translation": [0, 0, 0], + "scale": 0.01 + } +}] +``` + +#### Mesh Related Configuration + +In the previous section, we defined the simulation-required `geometry`. Following that, we must define their material properties and initial conditions. In the `"initial_conditions"` section, we assign the mesh with volume selection value `1` and an initial velocity of `[2, 0, 2]`. Next, in the `materials` section, we use `NeoHookean` for non-linear elasticity and define Young's modulus `E`, Poisson's ratio `nu`, and density `rho`. + +Next, we define time step size as `dt` and time steps as the number of steps. `enable` in the `contact` determines whether collision detection and friction calculation are considered. And `boundary conditions` permit us to add gravity to the simulation with ease. + +```json +{ + "initial_conditions": { + "velocity": [ + { + "id": 1, + "value": [2, 0, 2] + } + ] + }, + "materials": [ + { + "id": 1, + "E": 5000.0, + "nu": 0.3, + "rho": 100, + "type": "NeoHookean" + } + ], + "time": { + "t0": 0, + "dt": 0.1, + "time_steps": 100 + }, + "contact": { + "enabled": true, + "dhat": 0.0001, + "epsv": 0.004, + "friction_coefficient": 0.3 + }, + "boundary_conditions": { + "rhs": [0, 9.81, 0] + } +} +``` + +#### Simulation Related Configuration + +```json +{ + "solver": { + "linear": { + "solver": "Eigen::CholmodSupernodalLLT" + }, + "nonlinear": { + "line_search": { + "method": "backtracking" + }, + "grad_norm": 0.001, + "use_grad_norm": false + }, + "contact": { + "friction_iterations": 20, + "CCD": { + "broad_phase": "STQ" + } + } + }, + "output": { + "json": "results.json", + "paraview": { + "file_name": "output.pvd", + "options": { + "material": true, + "body_ids": true + }, + "vismesh_rel_area": 10000000 + }, + "advanced": { + "save_solve_sequence_debug": false, + "save_time_sequence": true + } + } +} +``` + +### Run Simulation +To run the simulation, the following command can be used where `polyfem` should be replaced with `.../polyfem/build/PolyFEM_bin`. + +```bash +cd PolyFEM_Tutorial_SoRo +mkdir output +polyfem --json json/scene_bowl.json --output_dir output +``` + +The simulation results will be output as a VTU file or a sequence of VTU files and a PVD file for the time sequence. + +## Python Interface + +In addition, to the JSON files, PolyFEM also supports a Python interface through [polyfem-python](https://github.com/polyfem/polyfem-python). More information can be found in the [Python Documentation](https://polyfem.github.io/polyfempy_doc/). Python interface not only allows to read configuration from JSON directly but also allows user to have more control during the simulation (eg. simulation stepping or change boundary conditions). + +### Import from JSON +If the JSON file is available, we can simply import the configuration by reading the JSON file. + +```python +import polyfem as pf + +with open('./scene_bowl.json') as f: + config = json.load(f) +solver = pf.Solver() +solver.set_settings(json.dumps(config)) +solver.load_mesh_from_settings() +``` + +### Run Simulation in Python +Python interface provides a more flexible solution to simulate solving the time-dependent problem completely or interacting with the solver with steps. + +```python +# OPTION 1: solve the problem and extract the solution +solver.solve() +pts, tris, velocity = solver.get_sampled_solution() +``` + +```python +# OPTION 2: solve the problem with time steping +solver.init_timestepping(t0, dt) +for i in range(timesteps): + solver.step_in_time(t, dt, i) + # interact with intermediate result +``` + +## Visualize Simulation Results + +To visualize the simulation sequential results in `VTU` format, we can use [`ParaView`](https://www.paraview.org/), an open-source, multi-platform data analysis and visualization application. + +To view the results, please follow the instructions below. +![]paraview.png) +* Step 1: `File` - `Open`, select sequence group file step*.vtu or step*.vtm. +* Step 2: Click `Apply` under the tab `Properties` located on the left side of the GUI. +* Step 3: Click on `Wrap By Vector` to apply the displacement to the objects. This function can be found in the top menu bar. +* Step 4: Click again `Apply` under the tab `Properties`. +* Step 5: Now, the `Play` button can be used to view the time sequence results. + + +## Bouns: Blender Rendering + +Blender is a free and open-source 3D computer graphics software toolset that can be used for animation, rendering, and video games. Here, we are using Blender to create vision propriocetions (internal views). First, we need to convert the VTU outputs back to mesh files that represent the target object at each time step. Then, we can colorize the target object using vertex coloring and render the final image with the Blender camera instance. + +### Convert VTU to OBJ + +To convert VTU to OBJ format, we can use the MeshIO library that is available in Python. A minimum example is shown below. + +```python +import meshio +m = meshio.read('step.vtu') +m.write('step.obj') +``` + +### Colorize the OBJ Files + +There are many different ways to colorize a mesh object. For example, coloring through mesh vertices, mesh faces, or a UV map. Here we demonstrate a simple way, which is to color the mesh using its vertices. The OBJ extension format support RGB floating values append to the vertex coordinates. + +### Blender Rendering using Python + +In the example below, the Python script controls the rendering process. First, it loads colorized mesh files and adds light and camera to the pre-calculated position and orientation (based on the vertice coordinates and surface normal). It then renders the image using vertex color. + +In this example, the camera is attched to one of the triangle in the surface mesh `OBJ`. And the camera is pointing at the center of the sphere, the rendering results are shown below. + ++ +
+ +`blender_render.py`: +```python +import os, sys +import math +import bpy + +os.chdir(sys.path[0]) + +argv_offset = 0 + +# IMPORT MESH +mesh = bpy.ops.import_mesh.ply(filepath=sys.argv[6+argv_offset]) +mesh = bpy.context.active_object +bpy.ops.object.mode_set(mode = 'VERTEX_PAINT') + +# ADD LIGHT +light_data = bpy.data.lights.new('light', type='POINT') +light = bpy.data.objects.new('light', light_data) +light.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])] +bpy.context.collection.objects.link(light) + +# ADD CAMERA +cam_data = bpy.data.cameras.new('camera') +cam = bpy.data.objects.new('camera', cam_data) +cam.location = [float(sys.argv[8+argv_offset]), float(sys.argv[9+argv_offset]), float(sys.argv[10+argv_offset])] +cam.rotation_euler = [float(sys.argv[11+argv_offset]), float(sys.argv[12+argv_offset]), float(sys.argv[13+argv_offset])] +cam.data.lens = 14 +bpy.context.collection.objects.link(cam) + +# ADD MATERIAL +mat = bpy.data.materials.new(name='Material') +mat.use_nodes=True +# create two shortcuts for the nodes we need to connect +# Principled BSDF +ps = mat.node_tree.nodes.get('Principled BSDF') +# Vertex Color +vc = mat.node_tree.nodes.new("ShaderNodeVertexColor") +vc.location = (-300, 200) +vc.label = 'vc' +# connect the nodes +mat.node_tree.links.new(vc.outputs[0], ps.inputs[0]) +# apply the material +mesh.data.materials.append(mat) + +# CREATE A SCENE +scene = bpy.context.scene +scene.camera = cam +scene.render.image_settings.file_format = 'PNG' +scene.render.resolution_x = 512 +scene.render.resolution_y = 512 +scene.render.resolution_percentage = 100 +scene.render.filepath = sys.argv[7+argv_offset] + +# RENDER +bpy.ops.render.render(write_still=1) + +``` + +The rendering can be processed through Blender GUI or bash command as shown below. + +```bash +blender blender_project.blend -b --python blender_render.py -- target_mesh_path output_path camera_position_x camera_position_y camera_position_z camera_orientation_x camera_orientation_y camera_orientation_z +``` \ No newline at end of file