DataTransferKit - Multiphysics Solution Transfer Services
2.0
|
Entity forward and reverse local map interface definition. More...
#include <DTK_EntityLocalMap.hpp>
Public Member Functions | |
EntityLocalMap () | |
Constructor. More... | |
virtual | ~EntityLocalMap () |
Destructor. More... | |
virtual double | measure (const Entity &entity) const =0 |
Return the entity measure in the physical frame with respect to the parameteric dimension (volume for a 3D entity, area for 2D, length for 1D, 0 for 0D). More... | |
virtual void | centroid (const Entity &entity, const Teuchos::ArrayView< double > ¢roid) const =0 |
Return the centroid of the entity in the physical frame. More... | |
virtual bool | isSafeToMapToReferenceFrame (const Entity &entity, const Teuchos::ArrayView< const double > &physical_point) const |
(Safeguard the reverse map) Perform a safeguard check for mapping a point to the reference space of an entity using the given tolerance. More... | |
virtual bool | mapToReferenceFrame (const Entity &entity, const Teuchos::ArrayView< const double > &physical_point, const Teuchos::ArrayView< double > &reference_point) const =0 |
(Reverse Map) Map a point to the reference space of an entity. Return the parameterized point. More... | |
virtual bool | checkPointInclusion (const Entity &entity, const Teuchos::ArrayView< const double > &reference_point) const =0 |
Determine if a reference point is in the parameterized space of an entity. More... | |
virtual void | mapToPhysicalFrame (const Entity &entity, const Teuchos::ArrayView< const double > &reference_point, const Teuchos::ArrayView< double > &physical_point) const =0 |
(Forward Map) Map a reference point to the physical space of an entity. More... | |
virtual void | normalAtReferencePoint (const Entity &entity, const Entity &parent_entity, const Teuchos::ArrayView< const double > &reference_point, const Teuchos::ArrayView< double > &normal) const |
Compute the normal on a face (3D) or edge (2D) at a given reference point. A default implementation is provided using a finite difference scheme. More... | |
Entity forward and reverse local map interface definition.
An EntityLocalMap provides an interface for accessing forward and reverse maps for an entity's local coordinates as well as related convenience functions.
Definition at line 63 of file DTK_EntityLocalMap.hpp.
DataTransferKit::EntityLocalMap::EntityLocalMap | ( | ) |
Constructor.
Definition at line 51 of file DTK_EntityLocalMap.cpp.
|
virtual |
Destructor.
Definition at line 55 of file DTK_EntityLocalMap.cpp.
|
pure virtual |
Return the entity measure in the physical frame with respect to the parameteric dimension (volume for a 3D entity, area for 2D, length for 1D, 0 for 0D).
entity | Compute the measure for this entity. |
Implemented in DataTransferKit::STKMeshEntityLocalMap, and DataTransferKit::BasicGeometryLocalMap.
|
pure virtual |
Return the centroid of the entity in the physical frame.
centroid | A view of the centroid coordinates. This view will be allocated. Assign a view of your centroid to this view. |
Implemented in DataTransferKit::STKMeshEntityLocalMap, and DataTransferKit::BasicGeometryLocalMap.
|
virtual |
(Safeguard the reverse map) Perform a safeguard check for mapping a point to the reference space of an entity using the given tolerance.
Mapping from physical domain to a reference one requires solving a nonlinear problem. It has been observed (see [1], sections VI.2.1-VI.2.3) that this nonlinear method may not converge for some points that should not have been considered in the first place as they are too far. The method tries to address the issue by providing a way to ignore those points early in the process. The default implementation checks if the physical point is in the bounding box of the entity.
It is recommended that a user calls isSafeToMapToReferenceFrame() before calling mapToReferenceFrame(). The tolerance is provided by a specific implementation of the interface.
[1] Lebrun-Grandie, Damien Thomas (2014). Contact Detection and Constraints Enforcement for the Simulation of Pellet/Clad Thermo-Mechanical Contact in Nuclear Fuel Rods. Doctoral dissertation, Texas A & M University
entity | Perfrom the mapping for this entity. |
parameters | Parameters to be used for the safeguard check. |
physical_point | A view into an array of size physicalDimension() containing the coordinates of the point to map. |
Reimplemented in DataTransferKit::STKMeshEntityLocalMap.
Definition at line 61 of file DTK_EntityLocalMap.cpp.
|
pure virtual |
(Reverse Map) Map a point to the reference space of an entity. Return the parameterized point.
entity | Perfrom the mapping for this entity. |
parameters | Parameters to be used for the mapping procedure. |
physical_point | A view into an array of size physicalDimension() containing the coordinates of the point to map. |
reference_point | A view into an array of size physicalDimension() to write the reference coordinates of the mapped point. |
Implemented in DataTransferKit::STKMeshEntityLocalMap, and DataTransferKit::BasicGeometryLocalMap.
|
pure virtual |
Determine if a reference point is in the parameterized space of an entity.
entity | Perfrom the mapping for this entity. |
parameters | Parameters to be used for the point inclusion check. |
reference_point | A view into an array of size physicalDimension() containing the reference coordinates of the mapped point. |
Implemented in DataTransferKit::STKMeshEntityLocalMap, and DataTransferKit::BasicGeometryLocalMap.
|
pure virtual |
(Forward Map) Map a reference point to the physical space of an entity.
entity | Perfrom the mapping for this entity. |
reference_point | A view into an array of size physicalDimension() containing the reference coordinates of the mapped point. |
physical_point | A view into an array of size physicalDimension() to write the coordinates of physical point. |
Implemented in DataTransferKit::STKMeshEntityLocalMap, and DataTransferKit::BasicGeometryLocalMap.
|
virtual |
Compute the normal on a face (3D) or edge (2D) at a given reference point. A default implementation is provided using a finite difference scheme.
entity | Compute the normal for this entity. |
parent_entity | The adjacent parent entity used to determine which direction is outward. The parent entity should be of a higher topological dimension than the entity and be adjacent to the entity. |
reference_point | Compute the normal at this reference point. |
normal | A view into an array of size physicalDimension() to write the normal. |
DataTransferKitException | The function throws if a normal cannot be calculated |
Reimplemented in DataTransferKit::STKMeshEntityLocalMap.
Definition at line 97 of file DTK_EntityLocalMap.cpp.