This class contains transformation information that only exists in a context in which there are multiple applications. More...
#include <MooseAppCoordTransform.h>
Public Member Functions | |
MultiAppCoordTransform (const MooseAppCoordTransform &our_app_transform) | |
libMesh::Point | operator() (const libMesh::Point &point) const |
Transforms a point from our domain into the reference domain. More... | |
libMesh::Point | mapBack (const libMesh::Point &point) const |
Inverse transform from the reference space to our space. More... | |
void | setTranslationVector (const libMesh::Point &translation) |
Set how much our domain should be translated in order to match a reference frame. More... | |
void | setDestinationCoordTransform (const MooseAppCoordTransform &destination_coord_transform) |
Set the destination coordinate system and destination radial and symmetry axes as appropriate for RZ or RSPHERICAL simulations. More... | |
bool | isIdentity () const |
bool | hasNonTranslationTransformation () const |
bool | hasCoordinateSystemTypeChange () const |
Moose::CoordinateSystemType | coordinateSystem () const |
void | skipCoordinateCollapsing (bool skip_coordinate_collapsing) |
set whether coordinate collapsing operations should be skipped More... | |
bool | skipCoordinateCollapsing () const |
whether coordinate collapsing operations should be skipped More... | |
const MooseAppCoordTransform & | ourAppTransform () const |
Private Attributes | |
const MooseAppCoordTransform & | _our_app_transform |
A reference to the MooseAppCoordTransform object that describes scaling, rotation, and coordinate system transformations from our domain to the reference domain, e.g. More... | |
const MooseAppCoordTransform * | _destination_app_transform |
A pointer to the MooseAppCoordTransform object that describes scaling, rotation, and coordinate system transformations from the destination domain to the reference domain, e.g. More... | |
libMesh::Point | _translation |
Describes a forward translation transformation from our domain to the reference frame domain. More... | |
bool | _skip_coordinate_collapsing |
whether coordinate collapsing operations should be skipped More... | |
This class contains transformation information that only exists in a context in which there are multiple applications.
Such information includes translation and coordinate collapsing
Definition at line 245 of file MooseAppCoordTransform.h.
|
explicit |
Definition at line 462 of file MooseAppCoordTransform.C.
|
inline |
Definition at line 316 of file MooseAppCoordTransform.h.
bool MultiAppCoordTransform::hasCoordinateSystemTypeChange | ( | ) | const |
Definition at line 624 of file MooseAppCoordTransform.C.
Referenced by hasNonTranslationTransformation().
bool MultiAppCoordTransform::hasNonTranslationTransformation | ( | ) | const |
Definition at line 609 of file MooseAppCoordTransform.C.
Referenced by isIdentity().
bool MultiAppCoordTransform::isIdentity | ( | ) | const |
Definition at line 640 of file MooseAppCoordTransform.C.
Point MultiAppCoordTransform::mapBack | ( | const libMesh::Point & | point | ) | const |
Inverse transform from the reference space to our space.
This will error if coordinate collapsing would occur in operator()
. When doing inversion we invert the order of operations, e.g. we will perform
Definition at line 538 of file MooseAppCoordTransform.C.
Point MultiAppCoordTransform::operator() | ( | const libMesh::Point & | point | ) | const |
Transforms a point from our domain into the reference domain.
The sequence of transformations applied is:
point | A point in our domain |
Definition at line 470 of file MooseAppCoordTransform.C.
|
inline |
Definition at line 331 of file MooseAppCoordTransform.h.
void MultiAppCoordTransform::setDestinationCoordTransform | ( | const MooseAppCoordTransform & | destination_coord_transform | ) |
Set the destination coordinate system and destination radial and symmetry axes as appropriate for RZ or RSPHERICAL simulations.
Depending on the coordinate system type of the provided coordinate transform we may perform additional transformations. For instance if the destination coordinate system is RZ and we are XYZ, we will translate our xyz points into RZ points, e.g. we will collapse from three dimensions into two. The transformation would be non-unique if we were to attempt to go from RZ to XYZ, e.g. a single RZ point could correspond to any point in a 2pi rotation around the symmetry axis
Definition at line 569 of file MooseAppCoordTransform.C.
void MultiAppCoordTransform::setTranslationVector | ( | const libMesh::Point & | translation | ) |
Set how much our domain should be translated in order to match a reference frame.
In practice we choose the parent application to be the reference frame with respect to translation, e.g. the parent application origin is the reference frame origin, and we set the translation vectors of child applications to the multiapp positions parameter. Similarly to the setRotation
with angles API, this represents a forward transformation from our domain to the reference domain
Definition at line 659 of file MooseAppCoordTransform.C.
void MultiAppCoordTransform::skipCoordinateCollapsing | ( | bool | skip_coordinate_collapsing | ) |
set whether coordinate collapsing operations should be skipped
Definition at line 653 of file MooseAppCoordTransform.C.
Referenced by MultiApp::getBoundingBox().
|
inline |
whether coordinate collapsing operations should be skipped
Definition at line 326 of file MooseAppCoordTransform.h.
|
private |
A pointer to the MooseAppCoordTransform
object that describes scaling, rotation, and coordinate system transformations from the destination domain to the reference domain, e.g.
transformations that occur irrespective of the existence of other applications This attribute is currently mostly providing only the coordinate system for conversions and sanity checking. The actual transformation of destination app points in transfers is done by the MultiAppCoordTransform for the other direction
Definition at line 345 of file MooseAppCoordTransform.h.
Referenced by hasCoordinateSystemTypeChange(), mapBack(), operator()(), and setDestinationCoordTransform().
|
private |
A reference to the MooseAppCoordTransform
object that describes scaling, rotation, and coordinate system transformations from our domain to the reference domain, e.g.
transformations that occur irrespective of the existence of other applications
Definition at line 337 of file MooseAppCoordTransform.h.
Referenced by coordinateSystem(), hasCoordinateSystemTypeChange(), hasNonTranslationTransformation(), mapBack(), operator()(), ourAppTransform(), and setDestinationCoordTransform().
|
private |
whether coordinate collapsing operations should be skipped
Definition at line 351 of file MooseAppCoordTransform.h.
Referenced by hasCoordinateSystemTypeChange(), hasNonTranslationTransformation(), mapBack(), operator()(), setDestinationCoordTransform(), and skipCoordinateCollapsing().
|
private |
Describes a forward translation transformation from our domain to the reference frame domain.
Definition at line 348 of file MooseAppCoordTransform.h.
Referenced by isIdentity(), mapBack(), operator()(), and setTranslationVector().