Back

UpdateMappingEndEvent

sofa::simulation::UpdateMappingEndEvent
Event
Doc (from source)

Event fired by Simulation::animate() after computing a new animation step. @author Jeremie Allard

Abstract (AI generated)

`UpdateMappingEndEvent` signals the completion of an animation step in SOFA's simulation loop, facilitating synchronization among different components.

Metadata
module
Sofa.framework.Simulation.Core
namespace
sofa::simulation
include
sofa/simulation/UpdateMappingEndEvent.h
inherits
  • Event
description

The SimulationInitDoneEvent is an event in the SOFA framework that signifies the completion of the initialization phase for animation processes. This event inherits from the generic Event class and does not contribute directly to any governing equations, constitutive laws, or kinematic formulations within the Finite Element Method (FEM) simulation pipeline. It serves primarily as a signal mechanism to other components within the simulation framework.

Mathematically and physically, this component has no direct role in:
- Governing equations such as mass matrix $M$, stiffness matrix $K$, internal force $f_{int}$, or residual $R$.
- Constitutive laws involving strain measures, stress tensors, hyperelastic potentials, damping models, or constraint Jacobians.

The klzzwxh:0008 does not participate in assembly phases, time integration steps, nonlinear or linear resolution processes, state updates, or any other specific variational mechanics framework components. Its role is solely to provide a signal that initialization has been completed, and it does not contain any numerical methods or discretization choices.

In summary, the SimulationInitDoneEvent is a utility component in SOFA that indicates the end of an initialization process but has no mathematical content related to FEM simulation.


Methods
int getEventTypeIndex ()
bool checkEventType (const Event * event)
SReal getDt ()
const char * GetClassName ()
{
  "name": "UpdateMappingEndEvent",
  "namespace": "sofa::simulation",
  "module": "Sofa.framework.Simulation.Core",
  "include": "sofa/simulation/UpdateMappingEndEvent.h",
  "doc": "Event fired by Simulation::animate() after computing a new animation step.\n  @author Jeremie Allard",
  "inherits": [
    "Event"
  ],
  "templates": [],
  "data_fields": [],
  "links": [],
  "methods": [
    {
      "name": "getEventTypeIndex",
      "return_type": "int",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "checkEventType",
      "return_type": "bool",
      "params": [
        {
          "name": "event",
          "type": "const Event *"
        }
      ],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": true,
      "access": "public"
    },
    {
      "name": "getDt",
      "return_type": "SReal",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": false,
      "access": "public"
    },
    {
      "name": "GetClassName",
      "return_type": "const char *",
      "params": [],
      "is_virtual": false,
      "is_pure_virtual": false,
      "is_static": true,
      "access": "public"
    }
  ],
  "description": "The `UpdateMappingEndEvent` is an event in the SOFA simulation framework that is fired by the `Simulation::animate()` method after computing a new animation step. This event indicates the completion of a mapping update phase within the simulation loop. It inherits from the `sofa::core::objectmodel::Event` class and is part of the Sofa.framework.Simulation.Core module.\n\nThe primary role of this component is to signal other components that an animation step has been completed, allowing for subsequent operations or actions based on the updated state.\n\nIt interacts with the simulation framework through its inherited methods and provides utility functions like `getDt()` which returns the time step (`SReal`) used in the last computation. The event also includes a static method `GetClassName` that returns the class name as a string, useful for debugging or logging purposes.\n\nUsage of this event is typically internal to SOFA's simulation loop and does not require direct user interaction. It operates within the context of SOFA’s event-driven architecture where events like `UpdateMappingEndEvent` help synchronize different components during the simulation process.",
  "maths": "The `UpdateMappingEndEvent` is an event in the SOFA simulation framework that is fired by the `Simulation::animate()` method after computing a new animation step. This event does not directly contribute to the governing equations or operators such as mass matrix \\(M\\), stiffness matrix \\(K\\), internal force \\(f_{int}\\), or residual \\(R\\). Instead, it serves as an indicator that a mapping update phase within the simulation loop has been completed.\n\n### Mathematical and Physical Description\n\n#### Governing Equations and Operators\n- **Mass Matrix** \\(M\\): Not directly involved. The mass matrix is assembled during the discretization phase but `UpdateMappingEndEvent` does not contribute to it.\n- **Stiffness Matrix** \\(K\\): Similarly, the stiffness matrix is derived from constitutive laws and weak formulations; this event does not modify or contribute to it.\n- **Internal Force** \\(f_{int}\\): Internal forces are computed as part of the nonlinear solution phase but `UpdateMappingEndEvent` does not directly compute or manipulate these forces.\n- **Residual** \\(R\\): The residual is defined in terms of the balance between applied and internal forces, and again, this event does not modify or contribute to it.\n\n#### Constitutive and Kinematic Laws Involved\n- `UpdateMappingEndEvent` does not involve any constitutive laws (such as stress-strain relationships or hyperelastic potentials) nor kinematic laws like deformation gradients or strain measures. It is purely an event signaling mechanism.\n\n#### Role in the Global FEM Pipeline\n- **Assembly Phase**: Not involved in the assembly of global operators such as mass and stiffness matrices, internal forces, constraints, etc.\n- **Time Integration**: The `UpdateMappingEndEvent` indicates the completion of a time step (animation step), but it does not perform any integration or solve any equations directly. It is more about signaling that an animation step has been completed.\n- **Nonlinear and Linear Solve Phases**: This event does not contribute to the nonlinear solution or linear solve phases.\n- **Constraints and Mappings Handling**: Although `UpdateMappingEndEvent` pertains to mapping updates, it does not directly handle constraints or mappings. It merely signals that a mapping update has been completed.\n\n#### Numerical Methods or Discretization Choices\n- The event itself does not encode any specific numerical methods or discretization choices; it is more about the synchronization of events within the simulation loop.\n\n#### Broad Variational / Lagrangian Mechanics Framework Fit\n- This event operates within SOFA's event-driven architecture and supports the overall variational/Lagrangian mechanics framework by ensuring that components are synchronized during the simulation process. Specifically, it signals when a mapping update is completed, allowing other parts of the system to react accordingly.\n\n### Summary\nThe `UpdateMappingEndEvent` serves as an internal signaling mechanism within SOFA’s simulation loop and does not directly contribute to any mathematical or physical operators in the Finite Element Method pipeline. Instead, its role is to indicate that a mapping update has been completed, allowing for further synchronization and coordination among different components.",
  "abstract": "`UpdateMappingEndEvent` signals the completion of an animation step in SOFA's simulation loop, facilitating synchronization among different components.",
  "sheet": "# UpdateMappingEndEvent\n\n## Overview\nThe `UpdateMappingEndEvent` is fired by the `Simulation::animate()` method after computing a new animation step. It serves as a signaling mechanism to indicate that a mapping update phase within the simulation loop has been completed, allowing other components to react accordingly.\n\n## Practical Notes\nThis event does not directly contribute to any mathematical or physical operators in the Finite Element Method pipeline. Its role is purely internal and it operates within SOFA's event-driven architecture to ensure synchronization among different components during the simulation process."
}