Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 40 additions & 12 deletions examples/xml/200shellComputationAnevrism.scn
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
<?xml version="1.0" ?>

<Node name="root" dt="0.04" gravity="0 -10 0">
<!-- List of plugins needed to load all components used by this scene -->
<Node name="plugins">
<RequiredPlugin name="Sofa.Component.AnimationLoop"/> <!-- Needed to use components [FreeMotionAnimationLoop] -->
<RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint,FixedRotationProjectiveConstraint] -->
<RequiredPlugin name="Sofa.Component.Constraint.Lagrangian.Solver"/> <!-- Needed to use components [LCPConstraintSolver] -->
<RequiredPlugin name="Sofa.Component.Engine.Select"/> <!-- Needed to use components [BoxROI] -->
<RequiredPlugin name="Sofa.Component.Engine.Transform"/> <!-- Needed to use components [Vertex2Frame] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Iterative"/> <!-- Needed to use components [PCGLinearSolver] -->
<RequiredPlugin name="Sofa.Component.Mapping.Linear"/> <!-- Needed to use components [IdentityMapping] -->
<RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
<RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
<RequiredPlugin name="Sofa.Component.SceneUtility"/> <!-- Needed to use components [InfoComponent] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [TriangleSetTopologyContainer] -->
<RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshOBJLoader] -->
<RequiredPlugin name="Sofa.GL.Component.Rendering3D"/> <!-- Needed to use components [OglModel] -->
<RequiredPlugin name="Shell"/>
</Node>



<VisualStyle displayFlags="showForceFields showVisualModels" />

Expand All @@ -9,15 +32,21 @@
<!-- <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5" />-->
<!-- <CollisionGroup />-->


<!--<DefaultAnimationLoop/>-->

<FreeMotionAnimationLoop computeBoundingBox="true"/>
<LCPConstraintSolver/>

<Node name="CoarseMesh">
<MeshObjLoader name="coarseMesh" filename="../mesh/aneurysm200.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>
<MeshOBJLoader name="coarseMesh" filename="../../../Shell/mesh/aneurysm200.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid3" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>

</Node>


<Node name="TargetMesh">
<MeshObjLoader name="targetMesh" filename="../mesh/aneurysmHighRes.obj"/>
<MeshOBJLoader name="targetMesh" filename="../../../Shell/mesh/aneurysmHighRes.obj"/>
<TriangleSetTopologyContainer name="targetTopo" src="@targetMesh" />
<!-- <MechanicalObject name="targetMesh_MO" template="Vec3d"/> -->
</Node>
Expand All @@ -27,22 +56,21 @@
<Node name="Shell">
<EulerImplicitSolver />
<!--<CGLinearSolver iterations="20" tolerance="0.05" threshold="1e-20"/>-->

<PCGLinearSolver iterations="5" tolerance="0.05" preconditioners="Precond"/>
<SparseLDLSolver name="Precond"/>
<PCGLinearSolver iterations="5" tolerance="0.05" preconditioner="@Precond"/>
<SparseLDLSolver name="Precond" template="CompressedRowSparseMatrixMat3x3"/>


<TriangleSetTopologyContainer name="coarseTopo"
position="@/CoarseMesh/coarseMesh.position"
edges="@/CoarseMesh/coarseMesh.edges"
triangles="@/CoarseMesh/coarseMesh.triangles" />
<MechanicalObject name="coarseMesh_MO" template="Rigid" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>
<MechanicalObject name="coarseMesh_MO" template="Rigid3d" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>

<UniformMass mass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" />
<UniformMass vertexMass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" totalMass="1.0" />

<BoxConstraint box="-0.2 -1 -0.2 0.2 -0.8 0.2 0.4 0.3 -0.8 0.8 0.7 -0.7" />

<FixedRotationConstraint FixedZRotation="true" />
<FixedRotationProjectiveConstraint template ="Rigid3" FixedZRotation="true" />
<TriangularBendingFEMForceField name="FEM" bending="true"
youngModulus="5000000" poissonRatio="0.45" thickness="0.05" />

Expand All @@ -53,11 +81,11 @@
<TriangleSetTopologyContainer name="subTrianglesTopo"
position="@/TargetMesh/targetTopo.position" triangles="@/TargetMesh/targetTopo.triangles" />
<MechanicalObject name="subCoarse_MO" rest_position="@/TargetMesh/targetTopo.position" />
<BendingPlateMechanicalMapping printLog="1" object1="coarseMesh_MO" object2="subCoarse_MO" name="MappingShells" isMechanical="false"/>
<BendingPlateMechanicalMapping printLog="1" input="@../coarseMesh_MO" output="@subCoarse_MO" name="MappingShells" isMechanical="false"/>

<Node>
<Node name="Visu">
<OglModel name="Visual" color="red"/>
<IdentityMapping object1="subCoarse_MO" object2="Visual"/>
<IdentityMapping input="@../subCoarse_MO" output="@Visual"/>
</Node>
</Node>

Expand Down
57 changes: 43 additions & 14 deletions examples/xml/400shellComputationAnevrism.scn
Original file line number Diff line number Diff line change
@@ -1,19 +1,48 @@
<?xml version="1.0" ?>
<Node name="root" dt="0.04" showBehaviorModels="0" showCollisionModels="0" showMappings="0" showForceFields="1" showBoundingTree="0" showVisualModels="1" gravity="0 -10 0">
<!-- <CollisionPipeline verbose="0" />-->
<Node name="root" dt="0.04" gravity="0 -10 0">
<!--Node name="root" dt="0.04" showBehaviorModels="0" showCollisionModels="0" showMappings="0" showForceFields="1" showBoundingTree="0" showVisualModels="1" gravity="0 -10 0"-->


<Node name="plugins">
<RequiredPlugin name="Sofa.Component.AnimationLoop"/> <!-- Needed to use components [FreeMotionAnimationLoop] -->
<RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint,FixedRotationProjectiveConstraint] -->
<RequiredPlugin name="Sofa.Component.Constraint.Lagrangian.Solver"/> <!-- Needed to use components [LCPConstraintSolver] -->
<RequiredPlugin name="Sofa.Component.Engine.Select"/> <!-- Needed to use components [BoxROI] -->
<RequiredPlugin name="Sofa.Component.Engine.Transform"/> <!-- Needed to use components [Vertex2Frame] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Iterative"/> <!-- Needed to use components [PCGLinearSolver] -->
<RequiredPlugin name="Sofa.Component.Mapping.Linear"/> <!-- Needed to use components [IdentityMapping] -->
<RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
<RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
<RequiredPlugin name="Sofa.Component.SceneUtility"/> <!-- Needed to use components [InfoComponent] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [TriangleSetTopologyContainer] -->
<RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshOBJLoader] -->
<RequiredPlugin name="Sofa.GL.Component.Rendering3D"/> <!-- Needed to use components [OglModel] -->
<RequiredPlugin name="Shell"/>
</Node>






<!-- <CollisionPipeline verbose="0" />-->
<!-- <BruteForceDetection name="N2" />-->
<!-- <CollisionResponse response="default" />-->
<!-- <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5" />-->
<!-- <CollisionGroup />-->

<FreeMotionAnimationLoop computeBoundingBox="true"/>
<LCPConstraintSolver/>
<Node name="CoarseMesh">
<MeshObjLoader name="coarseMesh" filename="../mesh/aneurysm400.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>
<MeshOBJLoader name="coarseMesh" filename="../../../Shell/mesh/aneurysm400.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid3" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>
</Node>


<Node name="TargetMesh">
<MeshObjLoader name="targetMesh" filename="../mesh/aneurysmHighRes.obj"/>
<MeshOBJLoader name="targetMesh" filename="../../../Shell/mesh/aneurysmHighRes.obj"/>
<TriangleSetTopologyContainer name="targetTopo" src="@targetMesh"/>
</Node>

Expand All @@ -23,21 +52,21 @@
<EulerImplicitSolver />
<!--<CGLinearSolver iterations="20" tolerance="0.05" threshold="1e-20"/>-->

<PCGLinearSolver iterations="5" tolerance="0.05" preconditioners="Precond"/>
<SparseLDLSolver name="Precond"/>
<PCGLinearSolver iterations="5" tolerance="0.05" preconditioner="@Precond"/>
<SparseLDLSolver name="Precond" template="CompressedRowSparseMatrixMat3x3"/>


<TriangleSetTopologyContainer name="coarseTopo"
position="@/CoarseMesh/coarseMesh.position"
edges="@/CoarseMesh/coarseMesh.edges"
triangles="@/CoarseMesh/coarseMesh.triangles" />
<MechanicalObject name="coarseMesh_MO" template="Rigid" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>
<MechanicalObject name="coarseMesh_MO" template="Rigid3" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>

<UniformMass mass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" />
<UniformMass vertexMass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" />

<BoxConstraint box="-0.2 -1 -0.2 0.2 -0.8 0.2 0.4 0.3 -0.8 0.8 0.7 -0.7" />

<FixedRotationConstraint FixedZRotation="true" />
<FixedRotationProjectiveConstraint FixedZRotation="true" />
<TriangularBendingFEMForceField name="FEM" bending="true"
youngModulus="5000000" poissonRatio="0.45" thickness="0.05" />

Expand All @@ -48,11 +77,11 @@
<TriangleSetTopologyContainer name="subTrianglesTopo"
position="@/TargetMesh/targetTopo.position" triangles="@/TargetMesh/targetTopo.triangles" />
<MechanicalObject name="subCoarse_MO" rest_position="@/TargetMesh/targetTopo.position" />
<BendingPlateMechanicalMapping printLog="1" object1="coarseMesh_MO" object2="subCoarse_MO" name="MappingShells" isMechanical="false"/>
<BendingPlateMechanicalMapping printLog="1" input="@../coarseMesh_MO" output="@subCoarse_MO" name="MappingShells" isMechanical="false"/>

<Node>
<Node name="Visu">
<OglModel name="Visual" color="red"/>
<IdentityMapping object1="subCoarse_MO" object2="Visual"/>
<IdentityMapping input="@../subCoarse_MO" output="@Visual"/>
</Node>
</Node>

Expand Down
61 changes: 42 additions & 19 deletions examples/xml/600shellComputationAnevrism.scn
Original file line number Diff line number Diff line change
@@ -1,25 +1,48 @@
<?xml version="1.0" ?>
<Node name="root" dt="0.04" gravity="0 -10 0">

<VisualStyle displayFlags="showForceFields showVisualModels" />
<Node name="plugins">
<RequiredPlugin name="Sofa.Component.AnimationLoop"/> <!-- Needed to use components [FreeMotionAnimationLoop] -->
<RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint,FixedRotationProjectiveConstraint] -->
<RequiredPlugin name="Sofa.Component.Constraint.Lagrangian.Solver"/> <!-- Needed to use components [LCPConstraintSolver] -->
<RequiredPlugin name="Sofa.Component.Engine.Select"/> <!-- Needed to use components [BoxROI] -->
<RequiredPlugin name="Sofa.Component.Engine.Transform"/> <!-- Needed to use components [Vertex2Frame] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Iterative"/> <!-- Needed to use components [PCGLinearSolver] -->
<RequiredPlugin name="Sofa.Component.Mapping.Linear"/> <!-- Needed to use components [IdentityMapping] -->
<RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
<RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
<RequiredPlugin name="Sofa.Component.SceneUtility"/> <!-- Needed to use components [InfoComponent] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [TriangleSetTopologyContainer] -->
<RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshOBJLoader] -->
<RequiredPlugin name="Sofa.GL.Component.Rendering3D"/> <!-- Needed to use components [OglModel] -->
<RequiredPlugin name="Shell"/>
</Node>





<!-- <CollisionPipeline verbose="0" />-->

<!-- <CollisionPipeline verbose="0" />-->
<!-- <BruteForceDetection name="N2" />-->
<!-- <CollisionResponse response="default" />-->
<!-- <MinProximityIntersection name="Proximity" alarmDistance="0.8" contactDistance="0.5" />-->
<!-- <CollisionGroup />-->

<FreeMotionAnimationLoop computeBoundingBox="true"/>
<LCPConstraintSolver/>

<Node name="CoarseMesh">
<MeshObjLoader name="coarseMesh" filename="../mesh/aneurysm600.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>

<MeshOBJLoader name="coarseMesh" filename="../../../Shell/mesh/aneurysm600.obj"/>
<Vertex2Frame name="coarseMeshVertex2Frame" template="Rigid3" position="@coarseMesh.position" normals="@coarseMesh.normals" invertNormals="false"/>
</Node>


<Node name="TargetMesh">
<MeshObjLoader name="targetMesh" filename="../mesh/aneurysmHighRes.obj"/>
<TriangleSetTopologyContainer name="targetTopo" src="@targetMesh" />
<!-- <MechanicalObject name="targetMesh_MO" template="Vec3d"/> -->
<MeshOBJLoader name="targetMesh" filename="../../../Shell/mesh/aneurysmHighRes.obj"/>
<TriangleSetTopologyContainer name="targetTopo" src="@targetMesh"/>
</Node>


Expand All @@ -28,21 +51,21 @@
<EulerImplicitSolver />
<!--<CGLinearSolver iterations="20" tolerance="0.05" threshold="1e-20"/>-->

<PCGLinearSolver iterations="5" tolerance="0.05" preconditioners="Precond"/>
<SparseLDLSolver name="Precond"/>
<PCGLinearSolver iterations="5" tolerance="0.05" preconditioner="@Precond"/>
<SparseLDLSolver name="Precond" template="CompressedRowSparseMatrixMat3x3"/>


<TriangleSetTopologyContainer name="coarseTopo"
position="@/CoarseMesh/coarseMesh.position"
edges="@/CoarseMesh/coarseMesh.edges"
triangles="@/CoarseMesh/coarseMesh.triangles" />
<MechanicalObject name="coarseMesh_MO" template="Rigid" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>
<MechanicalObject name="coarseMesh_MO" template="Rigid3" rest_position="@/CoarseMesh/coarseMeshVertex2Frame.frames" position="@/CoarseMesh/coarseMeshVertex2Frame.frames"/>

<UniformMass mass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" />
<UniformMass vertexMass="0.3 0.1 [ 0.1 0 0 , 0 0.1 0 , 0 0 0.05 ]" showAxisSizeFactor="0.03" compute_mapping_inertia="0" />

<BoxConstraint box="-0.2 -1 -0.2 0.2 -0.8 0.2 0.4 0.3 -0.8 0.8 0.7 -0.7" />

<FixedRotationConstraint FixedZRotation="true" />
<FixedRotationProjectiveConstraint FixedZRotation="true" />
<TriangularBendingFEMForceField name="FEM" bending="true"
youngModulus="5000000" poissonRatio="0.45" thickness="0.05" />

Expand All @@ -53,13 +76,13 @@
<TriangleSetTopologyContainer name="subTrianglesTopo"
position="@/TargetMesh/targetTopo.position" triangles="@/TargetMesh/targetTopo.triangles" />
<MechanicalObject name="subCoarse_MO" rest_position="@/TargetMesh/targetTopo.position" />
<BendingPlateMechanicalMapping printLog="1" object1="coarseMesh_MO" object2="subCoarse_MO" name="MappingShells" isMechanical="false"/>
<BendingPlateMechanicalMapping printLog="1" input="@../coarseMesh_MO" output="@subCoarse_MO" name="MappingShells" isMechanical="false"/>

<Node>
<Node name="Visu">
<OglModel name="Visual" color="red"/>
<IdentityMapping object1="subCoarse_MO" object2="Visual"/>
<IdentityMapping input="@../subCoarse_MO" output="@Visual"/>
</Node>
</Node>

</Node>
</Node>
</Node>
Loading
Loading