PolyDiM
C++ library for POLYtopal DIscretization Methods
Loading...
Searching...
No Matches
Gedim::MapParallelepiped Class Reference

#include <MapParallelepiped.hpp>

Classes

struct  MapParallelepipedData
 

Public Member Functions

 MapParallelepiped (const Gedim::GeometryUtilities &geometryUtilities)
 
 ~MapParallelepiped ()
 
MapParallelepipedData Compute (const Eigen::MatrixXd &vertices, const std::vector< unsigned int > &coordinateSystem) const
 

Static Public Member Functions

static Eigen::Matrix3d Q (const Eigen::Vector3d &firstVertex, const Eigen::Vector3d &secondVertex, const Eigen::Vector3d &thirdVertex, const Eigen::Vector3d &fourthVertex)
 
static Eigen::Vector3d b (const Eigen::Vector3d &firstVertex)
 
static Eigen::MatrixXd F (const MapParallelepipedData &mapData, const Eigen::MatrixXd &x)
 
static Eigen::MatrixXd FInv (const MapParallelepipedData &mapData, const Eigen::MatrixXd &x)
 
static Eigen::MatrixXd J (const MapParallelepipedData &mapData, const Eigen::MatrixXd &x)
 
static Eigen::VectorXd DetJ (const MapParallelepipedData &mapData, const Eigen::MatrixXd &x)
 

Public Attributes

Eigen::MatrixXd ReferenceVertices
 

Constructor & Destructor Documentation

◆ MapParallelepiped()

Gedim::MapParallelepiped::MapParallelepiped ( const Gedim::GeometryUtilities geometryUtilities)

◆ ~MapParallelepiped()

Gedim::MapParallelepiped::~MapParallelepiped ( )
inline

Member Function Documentation

◆ b()

static Eigen::Vector3d Gedim::MapParallelepiped::b ( const Eigen::Vector3d &  firstVertex)
inlinestatic

Matrix Q for linear map x = Q * x_r + b from reference Hexahedron [0,1]x[0,1]x[0,1] to Hexahedron with x points vertices the Hexahedron to map vertices, size 3 x 4 return the resulting value, size 3 x 3

◆ Compute()

MapParallelepiped::MapParallelepipedData Gedim::MapParallelepiped::Compute ( const Eigen::MatrixXd &  vertices,
const std::vector< unsigned int > &  coordinateSystem 
) const

Map from the hexahedron reference element [0,1]x[0,1]x[0,1]/2 to the polygon x = F(x_r) = Q * x_r + b

Parameters
verticesthe hexahedron to map vertices, size 3 x 4
edgesthe hexahedron edges
Returns
the map data

◆ DetJ()

VectorXd Gedim::MapParallelepiped::DetJ ( const MapParallelepipedData mapData,
const Eigen::MatrixXd &  x 
)
static

Compute the determinant of the jacobian matrix of the trasformation

Parameters
mapDatathe map data computed
xpoints in reference Hexahedron, size 3 x numPoints
Returns
the determinant of Jacobian matrix for each points, size 1 x numPoints

◆ F()

static Eigen::MatrixXd Gedim::MapParallelepiped::F ( const MapParallelepipedData mapData,
const Eigen::MatrixXd &  x 
)
inlinestatic

Map from the Hexahedron reference element [0,1]x[0,1]x[0,1] to the polygon x = F(x_r) = Q * x_r + b

Parameters
mapDatathe map data computed
xpoints in reference Hexahedron, size 3 x numPoints
Returns
the mapped points, size 3 x numPoints

◆ FInv()

static Eigen::MatrixXd Gedim::MapParallelepiped::FInv ( const MapParallelepipedData mapData,
const Eigen::MatrixXd &  x 
)
inlinestatic

◆ J()

MatrixXd Gedim::MapParallelepiped::J ( const MapParallelepipedData mapData,
const Eigen::MatrixXd &  x 
)
static

Compute the jacobian matrix of the transformation F

Parameters
mapDatathe map data computed
xpoints in reference Hexahedron, size 3 x numPoints
Returns
the Q matrix for each points, size 2 x (2 * numPoints)

◆ Q()

static Eigen::Matrix3d Gedim::MapParallelepiped::Q ( const Eigen::Vector3d &  firstVertex,
const Eigen::Vector3d &  secondVertex,
const Eigen::Vector3d &  thirdVertex,
const Eigen::Vector3d &  fourthVertex 
)
inlinestatic

Matrix Q for linear map x = Q * x_r + b from reference Hexahedron [0,1]x[0,1]x[0,1] to Hexahedron with x points vertices the Hexahedron to map vertices, size 3 x 4 return the resulting value, size 3 x 3

Member Data Documentation

◆ ReferenceVertices

Eigen::MatrixXd Gedim::MapParallelepiped::ReferenceVertices

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