MergeROIs
Merge a list of ROIs (vector<Indices>) into a single Data (vector<svector<Indices>>). This class merges a list of ROIs (vector<Indices>) into a single Data (vector<svector<Indices>>)
The MergeROIs component merges multiple Regions Of Interest (ROIs), represented as vectors of indices, into a single structured output vector for further processing within the simulation environment.
- module
- Sofa.Component.Engine.Select
- namespace
- sofa::component::engine::select
- include
- sofa/component/engine/select/MergeROIs.h
- inherits
-
- DataEngine
- description
The MergeROIs component in the SOFA framework is designed to merge multiple Regions Of Interest (ROIs), represented as vectors of indices, into a single structured output vector. This process does not involve any physical or mathematical operations that are typically associated with FEM simulations such as mass matrices, stiffness matrices, internal forces, or residuals. Instead, it focuses on data management and organization within the simulation environment.
Mathematical and Physical Description:
Governing Equations and Operators
- Mass Matrix ((M")), Stiffness Matrix ((K"), Internal Force ((f_{int}"), Residual ((R"): None. The MergeROIs component does not contribute to these FEM operators.
Constitutive or Kinematic Laws Involved
- Strain measures, stress tensors, hyperelastic potentials, damping models, constraint Jacobians: None. This component is purely data-related and does not involve any constitutive laws or kinematic formulations.
Role in the Global FEM Pipeline
- Assembly: No contribution to assembling mass matrices, stiffness matrices, internal forces, etc.
- Time Integration: Not involved in time integration schemes such as implicit Euler or Newmark-type methods.
- Nonlinear Resolution: Does not participate in nonlinear solve steps like Newton-Raphson iterations.
- Linear Resolution: No involvement in linear solvers or matrix-free operations.
- Update: Does not contribute to state update, velocity reconstruction, or timestep advancement.
Numerical Methods and Discretization Choices
- The component does not encode any numerical methods or discretization choices related to FEM. It is purely a data manipulation utility for merging ROIs represented as index lists.
Integration into the Variational / Lagrangian Mechanics Framework
- Variational Formulation: None. This component operates on input data and outputs merged ROI lists without affecting any variational or Lagrangian formulations.
- Lagrangian Mechanics: No contribution to Lagrangian mechanics principles, as it is purely a data management tool.
Summary
The MergeROIs component in SOFA is used for merging multiple ROIs (represented as vectors of indices) into a single structured output vector. It does not contribute to the mathematical or physical aspects of FEM simulations but plays a role in organizing and preparing ROI data for further processing within the simulation environment.
Data Fields
| Name | Type | Default | Help |
|---|---|---|---|
d_nbROIs |
unsigned int | |
Methods
void
init
()
virtual
void
reinit
()
virtual
void
parse
(core::objectmodel::BaseObjectDescription * arg)
virtual
void
parseFields
(const int & str)
void
doUpdate
()
virtual
{
"name": "MergeROIs",
"namespace": "sofa::component::engine::select",
"module": "Sofa.Component.Engine.Select",
"include": "sofa/component/engine/select/MergeROIs.h",
"doc": "Merge a list of ROIs (vector<Indices>) into a single Data (vector<svector<Indices>>).\n\nThis class merges a list of ROIs (vector<Indices>) into a single Data (vector<svector<Indices>>)",
"inherits": [
"DataEngine"
],
"templates": [],
"data_fields": [
{
"name": "d_nbROIs",
"type": "unsigned int"
}
],
"links": [],
"methods": [
{
"name": "init",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "reinit",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "parse",
"return_type": "void",
"params": [
{
"name": "arg",
"type": "core::objectmodel::BaseObjectDescription *"
}
],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "parseFields",
"return_type": "void",
"params": [
{
"name": "str",
"type": "const int &"
}
],
"is_virtual": false,
"is_pure_virtual": false,
"is_static": false,
"access": "public"
},
{
"name": "doUpdate",
"return_type": "void",
"params": [],
"is_virtual": true,
"is_pure_virtual": false,
"is_static": false,
"access": "protected"
}
],
"description": "The **MergeROIs** component in the SOFA framework is part of the `sofa::component::engine::select` namespace and serves to merge multiple Regions Of Interest (ROIs) represented as vectors of indices into a single structured output vector. This class inherits from `DataEngine`, indicating its role in processing and manipulating data within the simulation environment.\n\n**Role & Purpose:**\n- **MergeROIs** takes a list of ROIs, where each ROI is a collection of indices, and combines them into one consolidated output structure that can be used for further computation or visualization. The merged ROIs are stored in `d_outputIndices`, which is a vector containing sub-vectors (`svector`) of indices.\n\n**Interactions with Other Components:**\n- **Inputs**: It primarily interacts with other components through its data fields, such as `f_indices` (input ROIs) and `d_nbROIS` (number of ROIs).\n- **Outputs**: The merged ROI list is exposed via the `d_outputIndices` field for downstream components to utilize.\n\n**Practical Usage Guidance:**\n- Ensure that the input ROIs (`f_indices`) are properly defined with correct sizes, controlled by `d_nbROIS`. During initialization (`init()` and `reinit()`), the component adjusts its internal state based on these inputs. The `doUpdate()` method performs the actual merging operation, consolidating all individual ROI lists into a single data structure.\n\n**Data Fields:**\n- **`d_nbROIs`:** An unsigned integer specifying the size of the indices and value vectors (number of ROIs to be merged).\n- **`f_indices`:** A vector containing input ROIs, each represented as a list of indices.",
"maths": "The **MergeROIs** component in the SOFA framework is designed to merge multiple Regions Of Interest (ROIs), represented as vectors of indices, into a single structured output vector. This process does not involve any physical or mathematical operations that are typically associated with FEM simulations such as mass matrices, stiffness matrices, internal forces, or residuals. Instead, it focuses on data management and organization within the simulation environment.\n\n### Mathematical and Physical Description:\n\n#### Governing Equations and Operators\n- **Mass Matrix** (\\(M\")), **Stiffness Matrix** (\\(K\"), **Internal Force** (\\(f_{int}\"), **Residual** (\\(R\"): None. The MergeROIs component does not contribute to these FEM operators.\n\n#### Constitutive or Kinematic Laws Involved\n- Strain measures, stress tensors, hyperelastic potentials, damping models, constraint Jacobians: None. This component is purely data-related and does not involve any constitutive laws or kinematic formulations.\n\n#### Role in the Global FEM Pipeline\n- **Assembly**: No contribution to assembling mass matrices, stiffness matrices, internal forces, etc.\n- **Time Integration**: Not involved in time integration schemes such as implicit Euler or Newmark-type methods.\n- **Nonlinear Resolution**: Does not participate in nonlinear solve steps like Newton-Raphson iterations.\n- **Linear Resolution**: No involvement in linear solvers or matrix-free operations.\n- **Update**: Does not contribute to state update, velocity reconstruction, or timestep advancement.\n\n#### Numerical Methods and Discretization Choices\n- The component does not encode any numerical methods or discretization choices related to FEM. It is purely a data manipulation utility for merging ROIs represented as index lists.\n\n#### Integration into the Variational / Lagrangian Mechanics Framework\n- **Variational Formulation**: None. This component operates on input data and outputs merged ROI lists without affecting any variational or Lagrangian formulations.\n- **Lagrangian Mechanics**: No contribution to Lagrangian mechanics principles, as it is purely a data management tool.\n\n### Summary\nThe MergeROIs component in SOFA is used for merging multiple ROIs (represented as vectors of indices) into a single structured output vector. It does not contribute to the mathematical or physical aspects of FEM simulations but plays a role in organizing and preparing ROI data for further processing within the simulation environment.",
"abstract": "The MergeROIs component merges multiple Regions Of Interest (ROIs), represented as vectors of indices, into a single structured output vector for further processing within the simulation environment.",
"sheet": "# MergeROIs\n\n## Overview\n\nMergeROIs is part of the `sofa::component::engine::select` namespace and inherits from `DataEngine`. It merges multiple Regions Of Interest (ROIs), represented as vectors of indices, into a single structured output vector. This component does not involve any mathematical or physical operations typical in FEM simulations but focuses on data management and organization.\n\n## Parameters and Data\n\n- **`d_nbROIs`:** An unsigned integer specifying the number of ROIs to be merged.\n\nThis parameter controls the size of the indices and value vectors, ensuring that the input ROIs are properly defined for merging."
}