Skip to content

VonMisesStress

Compute and draw von Mises stress based on a local least-square projection in each element

Vec1d,Edge

Templates:

  • Vec1d,Edge

Target: Sofa.Component.SolidMechanics.FEM.Elastic

namespace: sofa::component::solidmechanics::fem::elastic

parents:

  • TopologyAccessor
  • SingleStateAccessor

Data

Name Description Default value
name object name unnamed
printLog if true, emits extra messages at runtime. 0
tags list of the subsets the object belongs to
bbox this object bounding box
componentState The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). Undefined
listening if true, handle the events, otherwise ignore the events 0
nodalStress Local nodal von Mises stress values
colorMap Color map #ff0000ff #ff0500ff #ff0b00ff #ff1100ff #ff1700ff #ff1d00ff #ff2300ff #ff2900ff #ff2f00ff #ff3500ff #ff3b00ff #ff4100ff #ff4700ff #ff4e00ff #ff5400ff #ff5900ff #ff5f00ff #ff6600ff #ff6c00ff #ff7100ff #ff7700ff #ff7e00ff #ff8400ff #ff8a00ff #ff9000ff #ff9600ff #ff9c00ff #ffa200ff #ffa800ff #ffae00ff #ffb400ff #ffba00ff #ffc000ff #ffc600ff #ffcc00ff #ffd200ff #ffd800ff #ffde00ff #ffe400ff #ffea00ff #fff000ff #fff600ff #fffc00ff #fbff00ff #f5ff00ff #efff00ff #e9ff00ff #e3ff00ff #ddff00ff #d7ff00ff #d1ff00ff #cbff00ff #c5ff00ff #bfff00ff #b9ff00ff #b3ff00ff #adff00ff #a7ff00ff #a1ff00ff #9bff00ff #95ff00ff #8fff00ff #89ff00ff #83ff00ff #7dff00ff #77ff00ff #71ff00ff #6bff00ff #65ff00ff #5fff00ff #59ff00ff #53ff00ff #4dff00ff #47ff00ff #41ff00ff #3bff00ff #35ff00ff #2fff00ff #29ff00ff #23ff00ff #1dff00ff #17ff00ff #11ff00ff #0bff00ff #05ff00ff #00ff00ff #00ff06ff #00ff0bff #00ff12ff #00ff17ff #00ff1eff #00ff24ff #00ff2aff #00ff2fff #00ff36ff #00ff3bff #00ff42ff #00ff48ff #00ff4eff #00ff54ff #00ff5aff #00ff60ff #00ff66ff #00ff6cff #00ff72ff #00ff78ff #00ff7eff #00ff84ff #00ff8aff #00ff90ff #00ff96ff #00ff9cff #00ffa2ff #00ffa8ff #00ffaeff #00ffb4ff #00ffbaff #00ffc0ff #00ffc6ff #00ffccff #00ffd2ff #00ffd8ff #00ffdeff #00ffe4ff #00ffeaff #00fff0ff #00fff6ff #00fffcff #00fbffff #00f5ffff #00efffff #00e9ffff #00e3ffff #00ddffff #00d7ffff #00d1ffff #00cbffff #00c5ffff #00bfffff #00b9ffff #00b3ffff #00adffff #00a7ffff #00a2ffff #009bffff #0095ffff #008fffff #0089ffff #0083ffff #007dffff #0077ffff #0071ffff #006bffff #0065ffff #005fffff #0059ffff #0053ffff #004dffff #0047ffff #0041ffff #003bffff #0035ffff #002fffff #0029ffff #0023ffff #001dffff #0017ffff #0011ffff #000bffff #0005ffff #0000ffff #0600ffff #0c00ffff #1200ffff #1700ffff #1e00ffff #2400ffff #2900ffff #2f00ffff #3600ffff #3c00ffff #4200ffff #4800ffff #4e00ffff #5400ffff #5a00ffff #5f00ffff #6600ffff #6c00ffff #7200ffff #7700ffff #7e00ffff #8400ffff #8a00ffff #9000ffff #9600ffff #9c00ffff #a200ffff #a800ffff #ae00ffff #b400ffff #ba00ffff #c000ffff #c600ffff #cc00ffff #d200ffff #d800ffff #de00ffff #e400ffff #ea00ffff #f000ffff #f600ffff #fc00ffff #ff00fbff #ff00f5ff #ff00efff #ff00e9ff #ff00e3ff #ff00ddff #ff00d7ff #ff00d1ff #ff00cbff #ff00c5ff #ff00bfff #ff00b9ff #ff00b3ff #ff00adff #ff00a7ff #ff00a1ff #ff009bff #ff0095ff #ff008fff #ff0089ff #ff0083ff #ff007dff #ff0077ff #ff0071ff #ff006bff #ff0065ff #ff005fff #ff0059ff #ff0053ff #ff004dff #ff0047ff #ff0041ff #ff003bff #ff0035ff #ff002fff #ff0029ff #ff0023ff #ff001dff #ff0017ff #ff0011ff #ff000bff #ff0005ff #ff0000ff
lighting If true, light is simulated on the mesh. Otherwise, no lighting effect. 1
Name Description Destination type name
context Graph Node containing this object (or BaseContext::getDefault() if no graph is used) BaseContext
slaves Sub-objects used internally by this object BaseComponent
master nullptr for regular objects, or master object for which this object is one sub-objects BaseComponent
mechanicalStates List of mechanical states to which this component is associated BaseMechanicalState
topology Link to a topology BaseMeshTopology
mstate MechanicalState used by this component MechanicalState<Vec1d>
stressEvaluator The component in charge of evaluating the Cauchy stress. CauchyStressEvaluator<Vec1d>

Vec2d,Edge...

Templates:

  • Vec2d,Edge
  • Vec2d,Quad
  • Vec2d,Triangle

Target: Sofa.Component.SolidMechanics.FEM.Elastic

namespace: sofa::component::solidmechanics::fem::elastic

parents:

  • TopologyAccessor
  • SingleStateAccessor

Data

Name Description Default value
name object name unnamed
printLog if true, emits extra messages at runtime. 0
tags list of the subsets the object belongs to
bbox this object bounding box
componentState The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). Undefined
listening if true, handle the events, otherwise ignore the events 0
nodalStress Local nodal von Mises stress values
colorMap Color map #ff0000ff #ff0500ff #ff0b00ff #ff1100ff #ff1700ff #ff1d00ff #ff2300ff #ff2900ff #ff2f00ff #ff3500ff #ff3b00ff #ff4100ff #ff4700ff #ff4e00ff #ff5400ff #ff5900ff #ff5f00ff #ff6600ff #ff6c00ff #ff7100ff #ff7700ff #ff7e00ff #ff8400ff #ff8a00ff #ff9000ff #ff9600ff #ff9c00ff #ffa200ff #ffa800ff #ffae00ff #ffb400ff #ffba00ff #ffc000ff #ffc600ff #ffcc00ff #ffd200ff #ffd800ff #ffde00ff #ffe400ff #ffea00ff #fff000ff #fff600ff #fffc00ff #fbff00ff #f5ff00ff #efff00ff #e9ff00ff #e3ff00ff #ddff00ff #d7ff00ff #d1ff00ff #cbff00ff #c5ff00ff #bfff00ff #b9ff00ff #b3ff00ff #adff00ff #a7ff00ff #a1ff00ff #9bff00ff #95ff00ff #8fff00ff #89ff00ff #83ff00ff #7dff00ff #77ff00ff #71ff00ff #6bff00ff #65ff00ff #5fff00ff #59ff00ff #53ff00ff #4dff00ff #47ff00ff #41ff00ff #3bff00ff #35ff00ff #2fff00ff #29ff00ff #23ff00ff #1dff00ff #17ff00ff #11ff00ff #0bff00ff #05ff00ff #00ff00ff #00ff06ff #00ff0bff #00ff12ff #00ff17ff #00ff1eff #00ff24ff #00ff2aff #00ff2fff #00ff36ff #00ff3bff #00ff42ff #00ff48ff #00ff4eff #00ff54ff #00ff5aff #00ff60ff #00ff66ff #00ff6cff #00ff72ff #00ff78ff #00ff7eff #00ff84ff #00ff8aff #00ff90ff #00ff96ff #00ff9cff #00ffa2ff #00ffa8ff #00ffaeff #00ffb4ff #00ffbaff #00ffc0ff #00ffc6ff #00ffccff #00ffd2ff #00ffd8ff #00ffdeff #00ffe4ff #00ffeaff #00fff0ff #00fff6ff #00fffcff #00fbffff #00f5ffff #00efffff #00e9ffff #00e3ffff #00ddffff #00d7ffff #00d1ffff #00cbffff #00c5ffff #00bfffff #00b9ffff #00b3ffff #00adffff #00a7ffff #00a2ffff #009bffff #0095ffff #008fffff #0089ffff #0083ffff #007dffff #0077ffff #0071ffff #006bffff #0065ffff #005fffff #0059ffff #0053ffff #004dffff #0047ffff #0041ffff #003bffff #0035ffff #002fffff #0029ffff #0023ffff #001dffff #0017ffff #0011ffff #000bffff #0005ffff #0000ffff #0600ffff #0c00ffff #1200ffff #1700ffff #1e00ffff #2400ffff #2900ffff #2f00ffff #3600ffff #3c00ffff #4200ffff #4800ffff #4e00ffff #5400ffff #5a00ffff #5f00ffff #6600ffff #6c00ffff #7200ffff #7700ffff #7e00ffff #8400ffff #8a00ffff #9000ffff #9600ffff #9c00ffff #a200ffff #a800ffff #ae00ffff #b400ffff #ba00ffff #c000ffff #c600ffff #cc00ffff #d200ffff #d800ffff #de00ffff #e400ffff #ea00ffff #f000ffff #f600ffff #fc00ffff #ff00fbff #ff00f5ff #ff00efff #ff00e9ff #ff00e3ff #ff00ddff #ff00d7ff #ff00d1ff #ff00cbff #ff00c5ff #ff00bfff #ff00b9ff #ff00b3ff #ff00adff #ff00a7ff #ff00a1ff #ff009bff #ff0095ff #ff008fff #ff0089ff #ff0083ff #ff007dff #ff0077ff #ff0071ff #ff006bff #ff0065ff #ff005fff #ff0059ff #ff0053ff #ff004dff #ff0047ff #ff0041ff #ff003bff #ff0035ff #ff002fff #ff0029ff #ff0023ff #ff001dff #ff0017ff #ff0011ff #ff000bff #ff0005ff #ff0000ff
lighting If true, light is simulated on the mesh. Otherwise, no lighting effect. 1
Name Description Destination type name
context Graph Node containing this object (or BaseContext::getDefault() if no graph is used) BaseContext
slaves Sub-objects used internally by this object BaseComponent
master nullptr for regular objects, or master object for which this object is one sub-objects BaseComponent
mechanicalStates List of mechanical states to which this component is associated BaseMechanicalState
topology Link to a topology BaseMeshTopology
mstate MechanicalState used by this component MechanicalState<Vec2d>
stressEvaluator The component in charge of evaluating the Cauchy stress. CauchyStressEvaluator<Vec2d>

Vec3d,Edge...

Templates:

  • Vec3d,Edge
  • Vec3d,Hexahedron
  • Vec3d,Prism
  • Vec3d,Pyramid
  • Vec3d,Quad
  • Vec3d,Tetrahedron
  • Vec3d,Triangle

Target: Sofa.Component.SolidMechanics.FEM.Elastic

namespace: sofa::component::solidmechanics::fem::elastic

parents:

  • TopologyAccessor
  • SingleStateAccessor

Data

Name Description Default value
name object name unnamed
printLog if true, emits extra messages at runtime. 0
tags list of the subsets the object belongs to
bbox this object bounding box
componentState The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). Undefined
listening if true, handle the events, otherwise ignore the events 0
nodalStress Local nodal von Mises stress values
colorMap Color map #ff0000ff #ff0500ff #ff0b00ff #ff1100ff #ff1700ff #ff1d00ff #ff2300ff #ff2900ff #ff2f00ff #ff3500ff #ff3b00ff #ff4100ff #ff4700ff #ff4e00ff #ff5400ff #ff5900ff #ff5f00ff #ff6600ff #ff6c00ff #ff7100ff #ff7700ff #ff7e00ff #ff8400ff #ff8a00ff #ff9000ff #ff9600ff #ff9c00ff #ffa200ff #ffa800ff #ffae00ff #ffb400ff #ffba00ff #ffc000ff #ffc600ff #ffcc00ff #ffd200ff #ffd800ff #ffde00ff #ffe400ff #ffea00ff #fff000ff #fff600ff #fffc00ff #fbff00ff #f5ff00ff #efff00ff #e9ff00ff #e3ff00ff #ddff00ff #d7ff00ff #d1ff00ff #cbff00ff #c5ff00ff #bfff00ff #b9ff00ff #b3ff00ff #adff00ff #a7ff00ff #a1ff00ff #9bff00ff #95ff00ff #8fff00ff #89ff00ff #83ff00ff #7dff00ff #77ff00ff #71ff00ff #6bff00ff #65ff00ff #5fff00ff #59ff00ff #53ff00ff #4dff00ff #47ff00ff #41ff00ff #3bff00ff #35ff00ff #2fff00ff #29ff00ff #23ff00ff #1dff00ff #17ff00ff #11ff00ff #0bff00ff #05ff00ff #00ff00ff #00ff06ff #00ff0bff #00ff12ff #00ff17ff #00ff1eff #00ff24ff #00ff2aff #00ff2fff #00ff36ff #00ff3bff #00ff42ff #00ff48ff #00ff4eff #00ff54ff #00ff5aff #00ff60ff #00ff66ff #00ff6cff #00ff72ff #00ff78ff #00ff7eff #00ff84ff #00ff8aff #00ff90ff #00ff96ff #00ff9cff #00ffa2ff #00ffa8ff #00ffaeff #00ffb4ff #00ffbaff #00ffc0ff #00ffc6ff #00ffccff #00ffd2ff #00ffd8ff #00ffdeff #00ffe4ff #00ffeaff #00fff0ff #00fff6ff #00fffcff #00fbffff #00f5ffff #00efffff #00e9ffff #00e3ffff #00ddffff #00d7ffff #00d1ffff #00cbffff #00c5ffff #00bfffff #00b9ffff #00b3ffff #00adffff #00a7ffff #00a2ffff #009bffff #0095ffff #008fffff #0089ffff #0083ffff #007dffff #0077ffff #0071ffff #006bffff #0065ffff #005fffff #0059ffff #0053ffff #004dffff #0047ffff #0041ffff #003bffff #0035ffff #002fffff #0029ffff #0023ffff #001dffff #0017ffff #0011ffff #000bffff #0005ffff #0000ffff #0600ffff #0c00ffff #1200ffff #1700ffff #1e00ffff #2400ffff #2900ffff #2f00ffff #3600ffff #3c00ffff #4200ffff #4800ffff #4e00ffff #5400ffff #5a00ffff #5f00ffff #6600ffff #6c00ffff #7200ffff #7700ffff #7e00ffff #8400ffff #8a00ffff #9000ffff #9600ffff #9c00ffff #a200ffff #a800ffff #ae00ffff #b400ffff #ba00ffff #c000ffff #c600ffff #cc00ffff #d200ffff #d800ffff #de00ffff #e400ffff #ea00ffff #f000ffff #f600ffff #fc00ffff #ff00fbff #ff00f5ff #ff00efff #ff00e9ff #ff00e3ff #ff00ddff #ff00d7ff #ff00d1ff #ff00cbff #ff00c5ff #ff00bfff #ff00b9ff #ff00b3ff #ff00adff #ff00a7ff #ff00a1ff #ff009bff #ff0095ff #ff008fff #ff0089ff #ff0083ff #ff007dff #ff0077ff #ff0071ff #ff006bff #ff0065ff #ff005fff #ff0059ff #ff0053ff #ff004dff #ff0047ff #ff0041ff #ff003bff #ff0035ff #ff002fff #ff0029ff #ff0023ff #ff001dff #ff0017ff #ff0011ff #ff000bff #ff0005ff #ff0000ff
lighting If true, light is simulated on the mesh. Otherwise, no lighting effect. 1
Name Description Destination type name
context Graph Node containing this object (or BaseContext::getDefault() if no graph is used) BaseContext
slaves Sub-objects used internally by this object BaseComponent
master nullptr for regular objects, or master object for which this object is one sub-objects BaseComponent
mechanicalStates List of mechanical states to which this component is associated BaseMechanicalState
topology Link to a topology BaseMeshTopology
mstate MechanicalState used by this component MechanicalState<Vec3d>
stressEvaluator The component in charge of evaluating the Cauchy stress. CauchyStressEvaluator<Vec3d>

Examples

VonMisesStress.scn

<?xml version="1.0" ?>
<Node name="root" gravity="0 -9.81 0" dt="0.01">

    <Node name="plugins">
        <RequiredPlugin pluginName="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint] -->
        <RequiredPlugin pluginName="Sofa.Component.Engine.Select"/> <!-- Needed to use components [BoxROI] -->
        <RequiredPlugin pluginName="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver] -->
        <RequiredPlugin pluginName="Sofa.Component.Mass"/> <!-- Needed to use components [FEMMass,NodalMassDensity] -->
        <RequiredPlugin pluginName="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
        <RequiredPlugin pluginName="Sofa.Component.SolidMechanics.FEM.Elastic"/> <!-- Needed to use components [LinearSmallStrainFEMForceField,VonMisesStress] -->
        <RequiredPlugin pluginName="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
        <RequiredPlugin pluginName="Sofa.Component.Topology.Container.Grid"/> <!-- Needed to use components [RegularGridTopology] -->
        <RequiredPlugin pluginName="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->
    </Node>

    <DefaultAnimationLoop/>

    <VisualStyle displayFlags="showBehaviorModels showVisualModels" />

    <EulerImplicitSolver name="ODE_solver" rayleighStiffness="0.01" rayleighMass="0.01" />
    <SparseLDLSolver name="linear_solver" template="CompressedRowSparseMatrixMat3x3"/>

    <RegularGridTopology name="grid" n="20 5 5" min="0 -0.05 -0.05" max="0.4 0.05 0.05" />
    <MechanicalObject template="Vec3" name="state"/>

    <BoxROI name="boxLeft" box="-0.01 -0.51 -0.51  0.001 0.51 0.51"/>
    <FixedProjectiveConstraint indices="@boxLeft.indices"/>

    <NodalMassDensity property="1100"/>
    <FEMMass template="Vec3,Hexahedron" topology="@grid"/>

    <LinearSmallStrainFEMForceField name="FEM" template="Vec3,Hexahedron"
                                    youngModulus="500000" poissonRatio="0.45"/>

    <VonMisesStress template="Vec3,Hexahedron" name="stress" topology="@grid" stressEvaluator="@FEM"
                    colorMap="green yellow orange red purple #221C35"/>
</Node>
def createScene(root_node):

   root = root_node.addChild('root', gravity="0 -9.81 0", dt="0.01")

   plugins = root.addChild('plugins')

   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.Constraint.Projective")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.Engine.Select")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.LinearSolver.Direct")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.Mass")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.ODESolver.Backward")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.SolidMechanics.FEM.Elastic")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.StateContainer")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.Topology.Container.Grid")
   plugins.addObject('RequiredPlugin', pluginName="Sofa.Component.Visual")

   root.addObject('DefaultAnimationLoop', )
   root.addObject('VisualStyle', displayFlags="showBehaviorModels showVisualModels")
   root.addObject('EulerImplicitSolver', name="ODE_solver", rayleighStiffness="0.01", rayleighMass="0.01")
   root.addObject('SparseLDLSolver', name="linear_solver", template="CompressedRowSparseMatrixMat3x3")
   root.addObject('RegularGridTopology', name="grid", n="20 5 5", min="0 -0.05 -0.05", max="0.4 0.05 0.05")
   root.addObject('MechanicalObject', template="Vec3", name="state")
   root.addObject('BoxROI', name="boxLeft", box="-0.01 -0.51 -0.51  0.001 0.51 0.51")
   root.addObject('FixedProjectiveConstraint', indices="@boxLeft.indices")
   root.addObject('NodalMassDensity', property="1100")
   root.addObject('FEMMass', template="Vec3,Hexahedron", topology="@grid")
   root.addObject('LinearSmallStrainFEMForceField', name="FEM", template="Vec3,Hexahedron", youngModulus="500000", poissonRatio="0.45")
   root.addObject('VonMisesStress', template="Vec3,Hexahedron", name="stress", topology="@grid", stressEvaluator="@FEM", colorMap="green yellow orange red purple #221C35")