SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
serif::mapping::DMWorkspace Class Reference

A class representing a workspace for displacement mapping operations, including various vectors and matrices used in the mapping process. primarily this is just a separate class so we can more easily make this code thread-safe in the future. At construction of an instance of this class loads of Heap allocation is done (or really whatever mfem does internally for allocation for vector which dependents on the selected device) and then that allocation can be reused. More...

#include <data.hpp>

Collaboration diagram for serif::mapping::DMWorkspace:
[legend]

Public Member Functions

 DMWorkspace (int dimension=3)
 Constructs a DMWorkspace object with the specified dimension.
 
void set_dimension (int dimension)
 Sets the dimension of the workspace.
 
int get_dimension () const noexcept
 Returns the dimension of the workspace.
 

Public Attributes

mfem::Vector m_shape
 Pre-allocated vector for shape function values at a quadrature point.
 
mfem::DenseMatrix m_reference_dshape
 Pre-allocated matrix for reference shape function derivatives at a quadrature point.
 
mfem::DenseMatrix m_mesh_dshape
 Pre-allocated matrix for mesh shape function derivatives at a quadrature point.
 
mfem::DenseMatrix m_reference_field_jacobian
 Pre-allocated matrix for the reference field Jacobian at a quadrature point.
 
mfem::Vector m_field_value
 Pre-allocated vector for field values at a quadrature point.
 
mfem::DenseMatrix m_field_jacobian
 Pre-allocated matrix for field Jacobian at a quadrature point.
 
mfem::Vector m_compactification_shape
 Pre-allocated vector for compactification shape function values at a quadrature point.
 
mfem::DenseMatrix m_compactification_dshape
 Pre-allocated matrix for compactification shape function derivatives at a quadrature point.
 
CompactificationPointData m_compactification_point
 Pre-allocated data for compactification point.
 
mfem::Vector m_reference_normal
 Pre-allocated vector for reference normal at a quadrature point.
 
mfem::Vector m_mapped_normal
 Pre-allocated vector for mapped normal at a quadrature point.
 
mfem::DenseMatrix m_full_element_jacobian
 Pre-allocated matrix for full element Jacobian at a quadrature point.
 
mfem::Vector m_vector_temp
 Pre-allocated temporary vector for intermediate calculations.
 
mfem::DenseMatrix m_matrix_temp_1
 Pre-allocated temporary matrix for intermediate calculations.
 
mfem::DenseMatrix m_matrix_temp_2
 Pre-allocated temporary matrix for intermediate calculations.
 
compactification::ExteriorMapResult m_exterior_result
 Pre-allocated result for exterior mapping at a quadrature point.
 
compactification::ExteriorMapVariation m_exterior_variation
 Pre-allocated variation for exterior mapping at a quadrature point.
 

Private Attributes

int m_dimension
 The number of spatial dimensions for the workspace (e.g., 2D or 3D).
 

Detailed Description

A class representing a workspace for displacement mapping operations, including various vectors and matrices used in the mapping process. primarily this is just a separate class so we can more easily make this code thread-safe in the future. At construction of an instance of this class loads of Heap allocation is done (or really whatever mfem does internally for allocation for vector which dependents on the selected device) and then that allocation can be reused.

Constructor & Destructor Documentation

◆ DMWorkspace()

serif::mapping::DMWorkspace::DMWorkspace ( int dimension = 3)
explicit

Constructs a DMWorkspace object with the specified dimension.

Parameters
dimensionThe dimension of the workspace (default is 3).
Exceptions
std::invalid_argumentif the specified dimension is not positive and finite.

Member Function Documentation

◆ get_dimension()

int serif::mapping::DMWorkspace::get_dimension ( ) const
nodiscardnoexcept

Returns the dimension of the workspace.

Returns
The dimension of the workspace.

◆ set_dimension()

void serif::mapping::DMWorkspace::set_dimension ( int dimension)

Sets the dimension of the workspace.

Parameters
dimensionThe new dimension of the workspace.
Exceptions
std::invalid_argumentif the specified dimension is not positive and finite.
Postcondition
All internal vectors are sized to dimension
All internal matrices are sized to dimension x dimension
The compactification coordinate is set to 0.0

Member Data Documentation

◆ m_compactification_dshape

mfem::DenseMatrix serif::mapping::DMWorkspace::m_compactification_dshape

Pre-allocated matrix for compactification shape function derivatives at a quadrature point.

◆ m_compactification_point

CompactificationPointData serif::mapping::DMWorkspace::m_compactification_point

Pre-allocated data for compactification point.

◆ m_compactification_shape

mfem::Vector serif::mapping::DMWorkspace::m_compactification_shape

Pre-allocated vector for compactification shape function values at a quadrature point.

◆ m_dimension

int serif::mapping::DMWorkspace::m_dimension
private

The number of spatial dimensions for the workspace (e.g., 2D or 3D).

◆ m_exterior_result

compactification::ExteriorMapResult serif::mapping::DMWorkspace::m_exterior_result

Pre-allocated result for exterior mapping at a quadrature point.

◆ m_exterior_variation

compactification::ExteriorMapVariation serif::mapping::DMWorkspace::m_exterior_variation

Pre-allocated variation for exterior mapping at a quadrature point.

◆ m_field_jacobian

mfem::DenseMatrix serif::mapping::DMWorkspace::m_field_jacobian

Pre-allocated matrix for field Jacobian at a quadrature point.

◆ m_field_value

mfem::Vector serif::mapping::DMWorkspace::m_field_value

Pre-allocated vector for field values at a quadrature point.

◆ m_full_element_jacobian

mfem::DenseMatrix serif::mapping::DMWorkspace::m_full_element_jacobian

Pre-allocated matrix for full element Jacobian at a quadrature point.

◆ m_mapped_normal

mfem::Vector serif::mapping::DMWorkspace::m_mapped_normal

Pre-allocated vector for mapped normal at a quadrature point.

◆ m_matrix_temp_1

mfem::DenseMatrix serif::mapping::DMWorkspace::m_matrix_temp_1

Pre-allocated temporary matrix for intermediate calculations.

◆ m_matrix_temp_2

mfem::DenseMatrix serif::mapping::DMWorkspace::m_matrix_temp_2

Pre-allocated temporary matrix for intermediate calculations.

◆ m_mesh_dshape

mfem::DenseMatrix serif::mapping::DMWorkspace::m_mesh_dshape

Pre-allocated matrix for mesh shape function derivatives at a quadrature point.

◆ m_reference_dshape

mfem::DenseMatrix serif::mapping::DMWorkspace::m_reference_dshape

Pre-allocated matrix for reference shape function derivatives at a quadrature point.

◆ m_reference_field_jacobian

mfem::DenseMatrix serif::mapping::DMWorkspace::m_reference_field_jacobian

Pre-allocated matrix for the reference field Jacobian at a quadrature point.

◆ m_reference_normal

mfem::Vector serif::mapping::DMWorkspace::m_reference_normal

Pre-allocated vector for reference normal at a quadrature point.

◆ m_shape

mfem::Vector serif::mapping::DMWorkspace::m_shape

Pre-allocated vector for shape function values at a quadrature point.

◆ m_vector_temp

mfem::Vector serif::mapping::DMWorkspace::m_vector_temp

Pre-allocated temporary vector for intermediate calculations.


The documentation for this class was generated from the following files: