Back

BaseMatrixAccumulatorComponent

The `BaseMatrixAccumulatorComponent` is a matrix accumulator designed to be associated with another component in the SOFA ecosystem. It inherits from `BaseObject`, which makes it part of the object model, and serves as an abstract base class for various types of matrices such as mass, stiffness, damping, and geometric stiffness. This component provides methods to associate itself with other components via the `associateObject` method. Although it does not have any data fields or links explicitly defined, its primary role is to accumulate matrix contributions from different parts of a simulation, facilitating interactions between various physical models. The template parameterization allows for specific types of matrices (e.g., mass, stiffness) to be handled in a consistent manner.

abstract
The `BaseMatrixAccumulatorComponent` accumulates matrix contributions (mass, stiffness, damping, geometric stiffness) from various components in a SOFA simulation, facilitating assembly of global system matrices.
sheet
<h1>BaseMatrixAccumulatorComponent</h1> <h2>Overview</h2> <p>The `BaseMatrixAccumulatorComponent` is an abstract base class designed to accumulate matrix contributions from various components in a SOFA simulation. It inherits from <code>BaseObject</code>, making it part of the object model hierarchy and facilitating its role as a container for mass, stiffness, damping, and geometric stiffness matrices.</p> <h2>Mathematical Model</h2> <p>The `BaseMatrixAccumulatorComponent` accumulates various matrix contributions in the context of finite element simulations. The primary types of matrices it handles include:</p> <ul> <li><strong>Mass Matrix (\( M \\) )</strong>: Represents the distribution of mass across elements, affecting their response to forces over time.</li> <li><strong>Stiffness Matrix (\( K \\) )</strong>: Encodes elastic properties and describes how forces are generated due to deformations.</li> <li><strong>Damping Matrix (\( D \\) )</strong>: Represents dissipative forces that reduce energy in the system over time.</li> <li><strong>Geometric Stiffness Matrix (\( G \\) )</strong>: Accounts for nonlinear effects due to large deformations, particularly initial stresses or pre-strains.</li> </ul> <p>This component plays a crucial role during the assembly phase of the finite element method by aggregating matrix contributions from different local force fields or mass matrices across the simulation domain. By accumulating these matrices, it indirectly contributes to the time integration process used in dynamic simulations.</p>
description
The `BaseMatrixAccumulatorComponent` is a matrix accumulator designed to be associated with another component in the SOFA ecosystem. It inherits from `BaseObject`, which makes it part of the object model, and serves as an abstract base class for various types of matrices such as mass, stiffness, damping, and geometric stiffness. This component provides methods to associate itself with other components via the `associateObject` method. Although it does not have any data fields or links explicitly defined, its primary role is to accumulate matrix contributions from different parts of a simulation, facilitating interactions between various physical models. The template parameterization allows for specific types of matrices (e.g., mass, stiffness) to be handled in a consistent manner.
maths
The `BaseMatrixAccumulatorComponent` is an abstract base class designed to accumulate various matrix contributions in the context of finite element simulations. It inherits from `sofa::core::objectmodel::BaseObject`, making it part of the object model hierarchy in SOFA. This component serves as a template-based container for different types of matrices, including mass (M), stiffness (K), damping (D), and geometric stiffness (G). The role of this component is to facilitate the accumulation of these matrix contributions from various components or fields within a simulation. ### Governing Equations and Operators: - **Mass Matrix (\( M \))**: This matrix contributes to the system's inertia term. It represents the distribution of mass across the elements in the simulation, affecting how they respond to forces over time. - **Stiffness Matrix (\( K \))**: This matrix encodes the elastic properties of the material and structure. It is derived from the strain-displacement relationship and material constitutive laws, describing how forces are generated due to deformations. - **Damping Matrix (\( D \))**: The damping matrix represents dissipative forces that reduce energy in the system over time. This can be crucial for simulating realistic behavior under dynamic loading conditions. - **Geometric Stiffness Matrix (\( G \))**: This matrix accounts for nonlinear effects due to large deformations, particularly in cases where initial stresses or pre-strains are present. ### Constitutive and Kinematic Laws: - The `BaseMatrixAccumulatorComponent` itself does not define specific constitutive laws but rather serves as a container that can accumulate contributions from other components. These other components might implement different strain measures (e.g., Green-Lagrange, Euler-Almansi), stress tensors (e.g., Cauchy, Kirchhoff), and hyperelastic potentials depending on the material model. ### Role in the FEM Pipeline: - **Assembly**: This component plays a crucial role during the assembly phase of the finite element method. It aggregates matrix contributions from different local force fields or mass matrices across the simulation domain, ensuring that all relevant physical effects are accounted for in the global system matrices. - **Time Integration**: By accumulating matrices like stiffness and damping, this component indirectly contributes to the time integration process used in dynamic simulations. ### Numerical Methods: - The template parameterization allows `BaseMatrixAccumulatorComponent` to handle different types of matrices based on their contributions (mass, stiffness, damping, geometric stiffness). This ensures that specific numerical methods and discretization choices are encapsulated within the components associated with this accumulator. ### Variational / Lagrangian Mechanics Framework: - Within the broader variational or Lagrangian mechanics framework, this component helps in formulating the system's equations of motion. By accumulating matrices such as mass and stiffness, it supports the construction of the governing differential equations derived from the principle of virtual work or Hamilton's principle. ### Summary: - The `BaseMatrixAccumulatorComponent` is a versatile container designed to accumulate matrix contributions for various physical effects in finite element simulations within SOFA. Its template-based design allows it to handle mass, stiffness, damping, and geometric stiffness matrices efficiently, playing an essential role in the assembly phase of FEM pipelines.
{
  "name": "BaseMatrixAccumulatorComponent",
  "main": {
    "name": "BaseMatrixAccumulatorComponent",
    "namespace": "sofa::core",
    "module": "Sofa.framework.Core",
    "include": "sofa/core/BaseMatrixAccumulatorComponent.h",
    "doc": "Matrix accumulator which is also a BaseObject. It is designed to be associated with another component.",
    "inherits": [
      "BaseObject"
    ],
    "templates": [
      "matrixaccumulator::Contribution::DAMPING",
      "matrixaccumulator::Contribution::GEOMETRIC_STIFFNESS",
      "matrixaccumulator::Contribution::MASS",
      "matrixaccumulator::Contribution::STIFFNESS"
    ],
    "data_fields": [],
    "links": [],
    "methods": [
      {
        "name": "associateObject",
        "return_type": "void",
        "params": [
          {
            "name": "object",
            "type": "int *"
          }
        ],
        "is_virtual": false,
        "is_pure_virtual": false,
        "is_static": false,
        "access": "public"
      }
    ]
  },
  "desc": {
    "description": "The `BaseMatrixAccumulatorComponent` is a matrix accumulator designed to be associated with another component in the SOFA ecosystem. It inherits from `BaseObject`, which makes it part of the object model, and serves as an abstract base class for various types of matrices such as mass, stiffness, damping, and geometric stiffness. This component provides methods to associate itself with other components via the `associateObject` method. Although it does not have any data fields or links explicitly defined, its primary role is to accumulate matrix contributions from different parts of a simulation, facilitating interactions between various physical models. The template parameterization allows for specific types of matrices (e.g., mass, stiffness) to be handled in a consistent manner."
  },
  "maths": {
    "maths": "The `BaseMatrixAccumulatorComponent` is an abstract base class designed to accumulate various matrix contributions in the context of finite element simulations. It inherits from `sofa::core::objectmodel::BaseObject`, making it part of the object model hierarchy in SOFA. This component serves as a template-based container for different types of matrices, including mass (M), stiffness (K), damping (D), and geometric stiffness (G). The role of this component is to facilitate the accumulation of these matrix contributions from various components or fields within a simulation.\n\n### Governing Equations and Operators:\n- **Mass Matrix (\\( M \\))**: This matrix contributes to the system's inertia term. It represents the distribution of mass across the elements in the simulation, affecting how they respond to forces over time.\n- **Stiffness Matrix (\\( K \\))**: This matrix encodes the elastic properties of the material and structure. It is derived from the strain-displacement relationship and material constitutive laws, describing how forces are generated due to deformations.\n- **Damping Matrix (\\( D \\))**: The damping matrix represents dissipative forces that reduce energy in the system over time. This can be crucial for simulating realistic behavior under dynamic loading conditions.\n- **Geometric Stiffness Matrix (\\( G \\))**: This matrix accounts for nonlinear effects due to large deformations, particularly in cases where initial stresses or pre-strains are present.\n\n### Constitutive and Kinematic Laws:\n- The `BaseMatrixAccumulatorComponent` itself does not define specific constitutive laws but rather serves as a container that can accumulate contributions from other components. These other components might implement different strain measures (e.g., Green-Lagrange, Euler-Almansi), stress tensors (e.g., Cauchy, Kirchhoff), and hyperelastic potentials depending on the material model.\n\n### Role in the FEM Pipeline:\n- **Assembly**: This component plays a crucial role during the assembly phase of the finite element method. It aggregates matrix contributions from different local force fields or mass matrices across the simulation domain, ensuring that all relevant physical effects are accounted for in the global system matrices.\n- **Time Integration**: By accumulating matrices like stiffness and damping, this component indirectly contributes to the time integration process used in dynamic simulations.\n\n### Numerical Methods:\n- The template parameterization allows `BaseMatrixAccumulatorComponent` to handle different types of matrices based on their contributions (mass, stiffness, damping, geometric stiffness). This ensures that specific numerical methods and discretization choices are encapsulated within the components associated with this accumulator.\n\n### Variational / Lagrangian Mechanics Framework:\n- Within the broader variational or Lagrangian mechanics framework, this component helps in formulating the system's equations of motion. By accumulating matrices such as mass and stiffness, it supports the construction of the governing differential equations derived from the principle of virtual work or Hamilton's principle.\n\n### Summary:\n- The `BaseMatrixAccumulatorComponent` is a versatile container designed to accumulate matrix contributions for various physical effects in finite element simulations within SOFA. Its template-based design allows it to handle mass, stiffness, damping, and geometric stiffness matrices efficiently, playing an essential role in the assembly phase of FEM pipelines."
  },
  "summary": {
    "abstract": "The `BaseMatrixAccumulatorComponent` accumulates matrix contributions (mass, stiffness, damping, geometric stiffness) from various components in a SOFA simulation, facilitating assembly of global system matrices.",
    "sheet": "<h1>BaseMatrixAccumulatorComponent</h1>\n\n<h2>Overview</h2>\n<p>The `BaseMatrixAccumulatorComponent` is an abstract base class designed to accumulate matrix contributions from various components in a SOFA simulation. It inherits from <code>BaseObject</code>, making it part of the object model hierarchy and facilitating its role as a container for mass, stiffness, damping, and geometric stiffness matrices.</p>\n\n<h2>Mathematical Model</h2>\n<p>The `BaseMatrixAccumulatorComponent` accumulates various matrix contributions in the context of finite element simulations. The primary types of matrices it handles include:</p>\n<ul>\n<li><strong>Mass Matrix (\\( M \\\\) )</strong>: Represents the distribution of mass across elements, affecting their response to forces over time.</li>\n<li><strong>Stiffness Matrix (\\( K \\\\) )</strong>: Encodes elastic properties and describes how forces are generated due to deformations.</li>\n<li><strong>Damping Matrix (\\( D \\\\) )</strong>: Represents dissipative forces that reduce energy in the system over time.</li>\n<li><strong>Geometric Stiffness Matrix (\\( G \\\\) )</strong>: Accounts for nonlinear effects due to large deformations, particularly initial stresses or pre-strains.</li>\n</ul>\n<p>This component plays a crucial role during the assembly phase of the finite element method by aggregating matrix contributions from different local force fields or mass matrices across the simulation domain. By accumulating these matrices, it indirectly contributes to the time integration process used in dynamic simulations.</p>"
  }
}