Back

SimpleTesselatedHexaTopologicalMapping

sofa::component::mapping::linear::SimpleTesselatedHexaTopologicalMapping
TopologicalMapping
Doc (from source)

Special case of mapping where HexahedronSetTopology is converted into a finer HexahedronSetTopology. This class, called SimpleTesselatedTetraTopologicalMapping, is a specific implementation of the interface TopologicalMapping where : INPUT TOPOLOGY = HexahedronSetTopology OUTPUT TOPOLOGY = Set of HexahedronSetTopologies, as the boundary of the INPUT TOPOLOGY Each hexahedron in the input Topology will be divided in eight hexahedrom in the output topology SimpleTesselatedHexaTopologicalMapping class is templated by the pair (INPUT TOPOLOGY, OUTPUT TOPOLOGY)

Abstract (AI generated)

The `SimpleTesselatedHexaTopologicalMapping` component subdivides each hexahedron in the input HexahedronSetTopology into eight smaller hexahedra, creating a finer output topology while maintaining consistent topological relationships.

Metadata
module
Sofa.Component.Mapping.Linear
namespace
sofa::component::mapping::linear
include
sofa/component/mapping/linear/SimpleTesselatedHexaTopologicalMapping.h
inherits
  • TopologicalMapping
description

The SimpleTesselatedHexaTopologicalMapping component in the SOFA framework is designed to convert an input HexahedronSetTopology into a finer topology by subdividing each hexahedron into eight smaller hexahedra. This process ensures that topological changes in the input are properly translated to the output, maintaining consistency between the source and target topologies.

Governing Equations or Operators

This component does not directly contribute to governing equations such as mass matrix $M$, stiffness matrix $K$, internal force $ extbf{f}_{int}$, or residual $R$. Instead, it facilitates the process of subdividing hexahedra and managing topological relationships between points, edges, facets, and hexahedra. The component's primary role is in the assembly phase of the FEM pipeline.

Constitutive or Kinematic Laws Involved

The SimpleTesselatedHexaTopologicalMapping does not involve constitutive laws such as stress tensors or hyperelastic potentials. Its operation is purely geometric, focusing on subdividing hexahedra and managing the points, edges, facets, and new hexahedra accordingly.

Role in the Global FEM Pipeline

  • Assembly Phase: The component facilitates the subdivision of each hexahedron into eight smaller ones by interpolating points along edges, facets, and within the volume. This results in a finer mesh that can be used for higher-resolution simulations or analyses.
  • Constraint Handling: Although not directly involved in constraint handling, the mapping ensures consistent topological relationships are maintained between the input and output meshes.

Numerical Methods or Discretization Choices

The component employs simple linear interpolation to create new points along edges and within hexahedra. This results in a regular subdivision of each hexahedron into eight smaller ones, preserving the overall structure but increasing resolution.

  1. Point Subdivision:
  2. New points are created at midpoints of edges:
    $$ p_{new} = \frac{p_0 + p_1}{2}, \quad p_{new} = \frac{p_1 + p_2}{2}, \quad \text{etc.} $$
  3. New points are created at centroids of facets and hexahedra:
    $$ p_{facet} = \frac{p_0 + p_1 + p_2 + p_3}{4}, \quad p_{hexa} = \frac{p_0 + p_1 + p_2 + p_3 + p_4 + p_5 + p_6 + p_7}{8} $$

  4. Hexahedron Subdivision:

  5. Each original hexahedron is divided into eight smaller hexahedra using the new points created from edges and facets.

Integration into Variational / Lagrangian Mechanics Framework

The SimpleTesselatedHexaTopologicalMapping component does not directly contribute to the variational or Lagrangian mechanics framework. Its role is purely topological, ensuring that higher-resolution meshes can be generated while maintaining consistent relationships between points and elements. This finer mesh can then be used in subsequent FEM analyses where governing equations and constitutive laws are applied.

In summary, this component provides a means to generate finer hexahedral meshes from coarser ones through simple geometric subdivision, which can enhance the resolution of simulations without altering the underlying mechanics.

Methods
void init () virtual
void updateTopologicalMappingTopDown () virtual
{
  "name": "SimpleTesselatedHexaTopologicalMapping",
  "namespace": "sofa::component::mapping::linear",
  "module": "Sofa.Component.Mapping.Linear",
  "include": "sofa/component/mapping/linear/SimpleTesselatedHexaTopologicalMapping.h",
  "doc": "Special case of mapping where HexahedronSetTopology is converted into a finer HexahedronSetTopology.\n\nThis class, called SimpleTesselatedTetraTopologicalMapping, is a specific implementation of the interface TopologicalMapping where :\nINPUT TOPOLOGY = HexahedronSetTopology\nOUTPUT TOPOLOGY = Set of HexahedronSetTopologies, as the boundary of the INPUT TOPOLOGY\nEach hexahedron in the input Topology will be divided in eight hexahedrom in the output topology\nSimpleTesselatedHexaTopologicalMapping class is templated by the pair (INPUT TOPOLOGY, OUTPUT TOPOLOGY)",
  "inherits": [
    "TopologicalMapping"
  ],
  "templates": [],
  "data_fields": [],
  "links": [],
  "methods": [
    {
      "name": "init",
      "return_type": "void",
      "params": [],
      "is_virtual": true,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "updateTopologicalMappingTopDown",
      "return_type": "void",
      "params": [],
      "is_virtual": true,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    }
  ],
  "description": "The `SimpleTesselatedHexaTopologicalMapping` component in SOFA is designed for converting HexahedronSetTopology into a finer topology by dividing each hexahedron into eight smaller hexahedra. It inherits from the `TopologicalMapping` class and implements specific methods such as `init()` and `updateTopologicalMappingTopDown()`. This mapping ensures that topological changes in the input are properly translated to the output, maintaining consistency between the source and target topologies. The component is useful for scenarios requiring higher resolution representations of hexahedral meshes while preserving their original structure. It operates by subdividing each hexahedron into eight smaller ones and managing the points, edges, facets, and new hexahedra accordingly.",
  "maths": "The `SimpleTesselatedHexaTopologicalMapping` component in the SOFA framework is designed to convert an input HexahedronSetTopology into a finer topology by subdividing each hexahedron into eight smaller hexahedra. This process ensures that topological changes in the input are properly translated to the output, maintaining consistency between the source and target topologies.\n\n### Governing Equations or Operators\nThis component does not directly contribute to governing equations such as mass matrix $M$, stiffness matrix $K$, internal force $\textbf{f}_{int}$, or residual $R$. Instead, it facilitates the process of subdividing hexahedra and managing topological relationships between points, edges, facets, and hexahedra. The component's primary role is in the assembly phase of the FEM pipeline.\n\n### Constitutive or Kinematic Laws Involved\nThe `SimpleTesselatedHexaTopologicalMapping` does not involve constitutive laws such as stress tensors or hyperelastic potentials. Its operation is purely geometric, focusing on subdividing hexahedra and managing the points, edges, facets, and new hexahedra accordingly.\n\n### Role in the Global FEM Pipeline\n- **Assembly Phase:** The component facilitates the subdivision of each hexahedron into eight smaller ones by interpolating points along edges, facets, and within the volume. This results in a finer mesh that can be used for higher-resolution simulations or analyses.\n- **Constraint Handling:** Although not directly involved in constraint handling, the mapping ensures consistent topological relationships are maintained between the input and output meshes.\n\n### Numerical Methods or Discretization Choices\nThe component employs simple linear interpolation to create new points along edges and within hexahedra. This results in a regular subdivision of each hexahedron into eight smaller ones, preserving the overall structure but increasing resolution.\n\n1. **Point Subdivision:**\n   - New points are created at midpoints of edges:\n     \\[ p_{new} = \\frac{p_0 + p_1}{2}, \\quad p_{new} = \\frac{p_1 + p_2}{2}, \\quad \\text{etc.} \\]\n   - New points are created at centroids of facets and hexahedra:\n     \\[ p_{facet} = \\frac{p_0 + p_1 + p_2 + p_3}{4}, \\quad p_{hexa} = \\frac{p_0 + p_1 + p_2 + p_3 + p_4 + p_5 + p_6 + p_7}{8} \\]\n\n2. **Hexahedron Subdivision:**\n   - Each original hexahedron is divided into eight smaller hexahedra using the new points created from edges and facets.\n\n### Integration into Variational / Lagrangian Mechanics Framework\nThe `SimpleTesselatedHexaTopologicalMapping` component does not directly contribute to the variational or Lagrangian mechanics framework. Its role is purely topological, ensuring that higher-resolution meshes can be generated while maintaining consistent relationships between points and elements. This finer mesh can then be used in subsequent FEM analyses where governing equations and constitutive laws are applied.\n\nIn summary, this component provides a means to generate finer hexahedral meshes from coarser ones through simple geometric subdivision, which can enhance the resolution of simulations without altering the underlying mechanics.",
  "abstract": "The `SimpleTesselatedHexaTopologicalMapping` component subdivides each hexahedron in the input HexahedronSetTopology into eight smaller hexahedra, creating a finer output topology while maintaining consistent topological relationships.",
  "sheet": "<h1>SimpleTesselatedHexaTopologicalMapping</h1>\n\n<h2>Overview</h2>\n<p>The `SimpleTesselatedHexaTopologicalMapping` component is designed to convert an input HexahedronSetTopology into a finer topology by subdividing each hexahedron into eight smaller hexahedra. It inherits from the <code>TopologicalMapping</code> class and ensures that topological changes in the input are properly translated to the output, maintaining consistency between the source and target topologies.</p>\n\n<h2>Mathematical Model</h2>\n<p>The component facilitates the process of subdividing hexahedra and managing topological relationships between points, edges, facets, and hexahedra. The primary role is in the assembly phase of the FEM pipeline:</p>\n<ul>\n<li><strong>Point Subdivision:</strong>\n  <ul>\n    <li>New points are created at midpoints of edges:\n      \\[ p_{new} = \\frac{p_0 + p_1}{2}, \\quad p_{new} = \\frac{p_1 + p_2}{2}, \\quad \\text{etc.} \\]</li>\n    <li>New points are created at centroids of facets and hexahedra:\n      \\[ p_{facet} = \\frac{p_0 + p_1 + p_2 + p_3}{4}, \\quad p_{hexa} = \\frac{p_0 + p_1 + p_2 + p_3 + p_4 + p_5 + p_6 + p_7}{8} \\]</li>\n  </ul>\n</li>\n<li><strong>Hexahedron Subdivision:</strong>\n  <ul>\n    <li>Each original hexahedron is divided into eight smaller hexahedra using the new points created from edges and facets.</li>\n  </ul>\n</li>\n</ul>"
}