Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 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
Binary file added doc/VRIPHYS2012/vriphys2012.pdf
Comment thread
alxbilger marked this conversation as resolved.
Outdated
Binary file not shown.
Binary file added doc/Vrst2013/vrst2013.pdf
Comment thread
alxbilger marked this conversation as resolved.
Outdated
Binary file not shown.
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
94 changes: 62 additions & 32 deletions examples/xml/combo/miccai2013/Aspiration-dual.scn
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,52 @@
-->

<Node name="root" dt="0.01" gravity="0 0 0">


<Node name="plugins">
<RequiredPlugin name="MultiThreading"/> <!-- Needed to use components [ParallelBVHNarrowPhase,ParallelBruteForceBroadPhase] -->
<RequiredPlugin name="Sofa.Component.AnimationLoop"/> <!-- Needed to use components [FreeMotionAnimationLoop] -->
<RequiredPlugin name="Sofa.Component.Collision.Detection.Algorithm"/> <!-- Needed to use components [BVHNarrowPhase,BruteForceBroadPhase,BruteForceDetection,CollisionPipeline] -->
<RequiredPlugin name="Sofa.Component.Collision.Detection.Intersection"/> <!-- Needed to use components [LocalMinDistance] -->
<RequiredPlugin name="Sofa.Component.Constraint.Lagrangian.Correction"/> <!-- Needed to use components [LinearSolverConstraintCorrection] -->
<RequiredPlugin name="Sofa.Component.Constraint.Lagrangian.Solver"/> <!-- Needed to use components [GenericConstraintSolver] -->
<RequiredPlugin name="Sofa.Component.Constraint.Projective"/> <!-- Needed to use components [FixedProjectiveConstraint] -->
<RequiredPlugin name="Sofa.Component.Engine.Select"/> <!-- Needed to use components [BoxROI,SphereROI] -->
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshSTLLoader,MeshVTKLoader,VTKExporter] -->
<RequiredPlugin name="Sofa.Component.LinearSolver.Direct"/> <!-- Needed to use components [SparseLDLSolver template="CompressedRowSparseMatrixMat3x3d"] -->
<RequiredPlugin name="Sofa.Component.Mapping.Linear"/> <!-- Needed to use components [BarycentricMapping,IdentityMapping] -->
<RequiredPlugin name="Sofa.Component.Mass"/> <!-- Needed to use components [UniformMass] -->
<RequiredPlugin name="Sofa.Component.MechanicalLoad"/> <!-- Needed to use components [SurfacePressureForceField] -->
<RequiredPlugin name="Sofa.Component.SceneUtility"/> <!-- Needed to use components [InfoComponent] -->
<RequiredPlugin name="Sofa.Component.SolidMechanics.FEM.Elastic"/> <!-- Needed to use components [TetrahedronFEMForceField] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [TetrahedronSetTopologyContainer,TriangleSetTopologyContainer,TriangleSetTopologyModifier] -->
<RequiredPlugin name="Sofa.Component.Topology.Mapping"/> <!-- Needed to use components [Tetra2TriangleTopologicalMapping] -->
<RequiredPlugin name="Sofa.Component.Visual"/> <!-- Needed to use components [VisualStyle] -->
<RequiredPlugin name="Sofa.GL.Component.Rendering3D"/> <!-- Needed to use components [OglModel] -->
<RequiredPlugin name='Sofa.Component.Collision.Response.Contact'/>
<RequiredPlugin name="Sofa.Component.Collision.Geometry"/> <!-- Needed to use components [LineCollisionModel] -->
<RequiredPlugin name="Sofa.Component.ODESolver.Backward"/> <!-- Needed to use components [EulerImplicitSolver] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Constant"/> <!-- Needed to use components [MeshTopology] -->
<RequiredPlugin name="Shell"/>
</Node>


<VisualStyle displayFlags="showVisual hideForceFields hideCollisionModels" />

<FreeMotionAnimationLoop />
<GenericConstraintSolver tolerance="1e-8" printLog="false"/>
<!--<ComplianceVisualModel />-->
<FreeMotionAnimationLoop />
<LCPConstraintSolver maxIt="1000" tolerance="1e-8" printLog="false"/>
<CollisionPipeline depth="6" verbose="0" draw="0"/>
<BruteForceDetection name="N2" />
<!--<MinProximityIntersection name="proximity" alarmDistance="0.1" contactDistance="0.01" />-->
<LocalMinDistance name="Proximity" alarmDistance="0.01" contactDistance="0.0005" angleCone="0.0" />
<DefaultContactManager name="Response" response="FrictionContact" />
<ParallelBruteForceBroadPhase name="N2"/>
<ParallelBVHNarrowPhase/>
<LocalMinDistance name="Proximity" alarmDistance="0.01" contactDistance="0.0005" angleCone="0.0" />
<CollisionResponse name="Response" response="FrictionContactConstraint" />

<Node name="VolMesh">
<!--<MeshVTKLoader name="loader" filename="../cube2739.vtk"-->
<MeshVTKLoader name="loader" filename="cube2648G.vtk"
scale3d="0.015 0.015 0.015" translation="-0.0075 0 -0.0075" />
<TetrahedronSetTopologyContainer name="topo" src="@loader" />
<TetrahedronSetTopologyContainer name="topo" triangles="@loader.triangles" position="@loader.position" />
<MechanicalObject name="VolMO" />
<Node name="Surface">
<TriangleSetTopologyContainer name="triangles" />
Expand All @@ -41,33 +71,33 @@
</Node>

<Node name="SurfMesh">
<!--<MeshObjLoader name="loader" filename="../cube2739.obj"-->
<MeshObjLoader name="loader" filename="cube2648G.obj"
<!--<MeshOBJLoader name="loader" filename="../cube2739.obj"-->
<MeshOBJLoader name="loader" filename="cube2648G.obj"
scale3d="0.015 0.015 0.015" translation="-0.0075 0 -0.0075" />
<TriangleSetTopologyContainer name="topo" src="@loader" />
<MechanicalObject name="SurfMO" />
</Node>

<Node name="TubeMesh">
<MeshObjLoader name="loader" filename="tube.obj"
<MeshOBJLoader name="loader" filename="tube.obj"
scale3d="0.01 0.01 0.01" translation="0 0.0206 0" />
<TriangleSetTopologyContainer name="topo" src="@loader" />
<MechanicalObject name="TubeMO" />
</Node>

<Node name="Tube">
<EulerImplicit />
<SparseLDLSolver/>
<EulerImplicitSolver />
<SparseLDLSolver template="CompressedRowSparseMatrixMat3x3d"/>

<TriangleSetTopologyContainer name="topo" src="@/TubeMesh/topo" />

<MechanicalObject template="Vec3d" />

<FixedConstraint indices="0-63" />
<FixedProjectiveConstraint indices="0-63" />

<LinearSolverConstraintCorrection />

<UniformMass mass="1"/>
<UniformMass totalMass="1"/>

<Node name="Collision">
<TriangleSetTopologyContainer name="topo" src="@../topo" />
Expand All @@ -77,23 +107,23 @@
<IdentityMapping input="@.." output="@."/>

<!--<Point name="tube_collis_point" group="10" />-->
<Line name="tube_collis_line" group="10"/>
<LineCollisionModel name="tube_collis_line" group="10"/>
<!--<Triangle name="tube_collis_line" bothSide="true" group="10"/>-->
</Node>

</Node>

<Node name="Cube">
<EulerImplicit />
<SparseLDLSolver/>
<EulerImplicitSolver />
<SparseLDLSolver template="CompressedRowSparseMatrixMat3x3d"/>


<Mesh src="@/VolMesh/loader" />
<MeshTopology src="@/VolMesh/loader" />
<MechanicalObject name="MO" src="@/VolMesh/loader"/>
<BoxROI name="top" box="-0.0076 0.0149 -0.0076 0.0076 0.0178 0.0076" drawBoxes="true" />
<BoxROI name="bottom" box="-0.0076 -0.0001 -0.0076 0.0076 0.0001 0.0076" drawBoxes="true" />-->
<BoxROI name="bottom" box="-0.0076 -0.0001 -0.0076 0.0076 0.0001 0.0076" drawBoxes="true" />

<UniformMass mass="0.001"/>
<UniformMass totalMass="0.001"/>

<VTKExporter filename="result_aspiration.vtk" XMLformat="false" listening="true"
edges="0" triangles="0" quads="0" tetras="1"
Expand All @@ -115,15 +145,15 @@
/>
</Node>

<!--<FixedConstraint indices="@bottom.indices" />-->
<!--<FixedProjectiveConstraint indices="@bottom.indices" />-->

<LinearSolverConstraintCorrection/>

<Node name="CubeCollision">
<Mesh src="@/SurfMesh/topo" />
<MeshTopology src="@/SurfMesh/topo" />
<MechanicalObject />
<!--<Point name="cube_collis_point" group="11" />-->
<Line name="cube_collis_line" group="11" />
<LineCollisionModel name="cube_collis_line" group="11" />
<!--<Triangle name="cube_collis_triangle" computeNormals="false" bothSide="true" group="11" />-->
<BarycentricMapping input="@.." output="@." />

Expand All @@ -136,16 +166,16 @@
</Node>

<Node name="Cube-composite">
<EulerImplicit />
<SparseLDLSolver/>
<EulerImplicitSolver />
<SparseLDLSolver template="CompressedRowSparseMatrixMat3x3d"/>


<Mesh src="@/VolMesh/loader" />
<MeshTopology src="@/VolMesh/loader" />
<MechanicalObject name="MO" src="@/VolMesh/loader"/>
<BoxROI name="top" box="-0.0076 0.0149 -0.0076 0.0076 0.0178 0.0076" drawBoxes="true" />
<BoxROI name="bottom" box="-0.0076 -0.0001 -0.0076 0.0076 0.0001 0.0076" drawBoxes="true" />-->

<UniformMass mass="0.001"/>
<UniformMass totalMass="0.001"/>

<VTKExporter filename="result_aspiration2.vtk" XMLformat="false" listening="true"
edges="0" triangles="0" quads="0" tetras="1"
Expand All @@ -168,15 +198,15 @@
/>
</Node>

<!--<FixedConstraint indices="@bottom.indices" />-->
<!--<FixedProjectiveConstraint indices="@bottom.indices" />-->

<LinearSolverConstraintCorrection/>

<Node name="CubeCollision">
<Mesh src="@/SurfMesh/topo" />
<MeshTopology src="@/SurfMesh/topo" />
<MechanicalObject />
<!--<Point name="cube_collis_point" group="11" />-->
<Line name="cube_collis_line" group="11" />
<LineCollisionModel name="cube_collis_line" group="11" />
<!--<Triangle name="cube_collis_triangle" computeNormals="false" bothSide="true" group="11" />-->
<BarycentricMapping input="@.." output="@." />

Expand All @@ -189,7 +219,7 @@
</Node>

<!--<Node name="TubeRender">-->
<!--<MeshObjLoader name="loader" filename="tube.obj"-->
<!--<MeshOBJLoader name="loader" filename="tube.obj"-->
<!--scale3d="0.01 0.01 0.01" translation="0 0.0205 0" />-->
<!--<TriangleSetTopologyContainer name="topo" src="@loader" />-->
<!--<MechanicalObject name="TubeMO" />-->
Expand Down
Loading
Loading