|
svMultiPhysics
|
Public Member Functions | |
| RobinBoundaryCondition () | |
| Default constructor - creates an empty RobinBoundaryCondition. | |
| RobinBoundaryCondition (const std::string &vtp_file_path, bool normal_only, const faceType &face, SimulationLogger &logger) | |
| Constructor - reads stiffness and damping from VTP file. | |
| RobinBoundaryCondition (double uniform_stiffness, double uniform_damping, bool normal_only, const faceType &face, SimulationLogger &logger) | |
| Constructor for uniform values. | |
| bool | normal_direction_only () const |
| Apply only along normal direction (getter) | |
| double | get_stiffness (int node_id) const |
| Get stiffness value for a specific node (convenience method) | |
| double | get_damping (int node_id) const |
| Get damping value for a specific node (convenience method) | |
| double | assemble () const |
| Assemble the Robin BC into the global residual vector and stiffness matrix Currently not implemented. | |
Public Member Functions inherited from BoundaryCondition | |
| BoundaryCondition ()=default | |
| Default constructor - creates an empty BC. | |
| BoundaryCondition (const std::string &vtp_file_path, const std::vector< std::string > &array_names, const StringBoolMap &flags, const faceType &face, SimulationLogger &logger) | |
| Constructor - reads data from VTP file. | |
| BoundaryCondition (const StringDoubleMap &uniform_values, const StringBoolMap &flags, const faceType &face, SimulationLogger &logger) | |
| Constructor for uniform values. | |
| BoundaryCondition (const BoundaryCondition &other) | |
| Copy constructor. | |
| BoundaryCondition & | operator= (BoundaryCondition other) |
| Unified assignment operator (handles both copy and move) | |
| BoundaryCondition (BoundaryCondition &&other) noexcept | |
| Move constructor. | |
| virtual | ~BoundaryCondition () noexcept=default |
| Virtual destructor. | |
| double | get_value (const std::string &array_name, int node_id) const |
| Get value for a specific array and node. | |
| bool | get_flag (const std::string &name) const |
| Get a boolean flag by name. | |
| std::string | flags_to_string () const |
| Get a string representation of the flags. | |
| int | get_global_num_nodes () const noexcept |
| Get global number of nodes. | |
| int | get_local_num_nodes () const noexcept |
| Get local number of nodes. | |
| int | get_local_index (int global_node_id) const |
| Get local array index for a global node ID. | |
| bool | is_from_vtp () const noexcept |
| Check if data is loaded from VTP file. | |
| const std::string & | get_vtp_path () const noexcept |
| Get the VTP file path (empty if using uniform values) | |
| bool | is_initialized () const noexcept |
| Check if this BC has been properly initialized with data. | |
| void | distribute (const ComMod &com_mod, const CmMod &cm_mod, const cmType &cm, const faceType &face) |
| Distribute BC data from the master process to the slave processes. | |
Protected Member Functions | |
| void | validate_array_value (const std::string &array_name, double value) const override |
| Validate array values for Robin BC. | |
Protected Member Functions inherited from BoundaryCondition | |
| StringArrayMap | read_data_from_vtp_file (const std::string &vtp_file_path, const std::vector< std::string > &array_names) |
| Read data from VTP file. | |
| int | find_vtp_point_index (double x, double y, double z, const Array< double > &vtp_points, double mesh_scale_factor) const |
| Find index of a point in the VTP points array. | |
| void | distribute_metadata (const CmMod &cm_mod, const cmType &cm, bool is_slave) |
| void | distribute_spatially_variable (const ComMod &com_mod, const CmMod &cm_mod, const cmType &cm, bool is_slave) |
| void | distribute_uniform (const CmMod &cm_mod, const cmType &cm, bool is_slave) |
| void | distribute_flags (const CmMod &cm_mod, const cmType &cm, bool is_slave) |
Additional Inherited Members | |
Static Public Attributes inherited from BoundaryCondition | |
| static constexpr double | POINT_MATCH_TOLERANCE = 1e-12 |
| Tolerance for point matching in VTP files. | |
Protected Types inherited from BoundaryCondition | |
| using | StringArrayMap = std::map< std::string, Array< double > > |
| Type alias for map of array names to array data. | |
| using | StringBoolMap = std::map< std::string, bool > |
| using | StringDoubleMap = std::map< std::string, double > |
Protected Attributes inherited from BoundaryCondition | |
| const faceType * | face_ = nullptr |
| Data members for BC. | |
| int | global_num_nodes_ = 0 |
| Global number of nodes on the face. | |
| int | local_num_nodes_ = 0 |
| Local number of nodes on this processor. | |
| std::vector< std::string > | array_names_ |
| Names of arrays to read from VTP file. | |
| StringArrayMap | local_data_ |
| Local array values for each node on this processor. | |
| StringArrayMap | global_data_ |
| Global array values (only populated on master) | |
| StringBoolMap | flags_ |
| Named boolean flags for BC behavior. | |
| bool | spatially_variable = false |
| Flag indicating if data is from VTP file. | |
| std::string | vtp_file_path_ |
| Path to VTP file (empty if uniform) | |
| std::map< int, int > | global_node_map_ |
| Maps global node IDs to local array indices. | |
| std::unique_ptr< VtkVtpData > | vtp_data_ |
| VTP data object. | |
| const SimulationLogger * | logger_ = nullptr |
| Logger for warnings/info (not owned by BoundaryCondition) | |
|
inline |
Default constructor - creates an empty RobinBoundaryCondition.
|
inline |
Constructor - reads stiffness and damping from VTP file.
| vtp_file_path | Path to VTP file containing Stiffness and Damping point arrays |
| normal_only | Flag to apply only along normal direction |
| face | Face associated with the Robin BC |
| logger | Simulation logger used to write warnings |
| BoundaryConditionFileException | if file cannot be read |
| BoundaryConditionVtpArrayException | if arrays are missing |
| BoundaryConditionValidationException | if values are invalid |
| RobinBoundaryCondition::RobinBoundaryCondition | ( | double | uniform_stiffness, |
| double | uniform_damping, | ||
| bool | normal_only, | ||
| const faceType & | face, | ||
| SimulationLogger & | logger | ||
| ) |
Constructor for uniform values.
| uniform_stiffness | Uniform stiffness value for all nodes |
| uniform_damping | Uniform damping value for all nodes |
| normal_only | Flag to apply only along normal direction |
| face | Face associated with the Robin BC |
| logger | Simulation logger used to write warnings |
| BoundaryConditionValidationException | if values are invalid |
|
inline |
Assemble the Robin BC into the global residual vector and stiffness matrix Currently not implemented.
|
inline |
Get damping value for a specific node (convenience method)
| node_id | Node index on the face |
| BoundaryConditionArrayException | if "Damping" array not found |
| BoundaryConditionNodeIdException | if node_id is out of range |
|
inline |
Get stiffness value for a specific node (convenience method)
| node_id | Node index on the face |
| BoundaryConditionArrayException | if "Stiffness" array not found |
| BoundaryConditionNodeIdException | if node_id is out of range |
|
inline |
Apply only along normal direction (getter)
| BoundaryConditionFlagException | if "normal_direction_only" flag not found |
|
inlineoverrideprotectedvirtual |
Validate array values for Robin BC.
| array_name | Name of the array being validated |
| value | Value to validate |
| BoundaryConditionValidationException | if validation fails |
Reimplemented from BoundaryCondition.