PLaSK library
Loading...
Searching...
No Matches
plask::EquilateralMesh3D Class Reference

#include <plask/mesh/equilateral3d.hpp>

Inheritance diagram for plask::EquilateralMesh3D:
[legend]
Collaboration diagram for plask::EquilateralMesh3D:
[legend]

Classes

struct  Transformed
 Adapter for the destination mesh in interpolations, moving the src point to mesh coordinates. More...
 

Public Types

typedef RectilinearMesh3D::ElementMesh< EquilateralMesh3DElementMesh
 
- Public Types inherited from plask::RectilinearMesh3D
enum  IterationOrder {
  ORDER_012 , ORDER_021 , ORDER_102 , ORDER_120 ,
  ORDER_201 , ORDER_210
}
 Iteration orders: Every other order is proper permutation of indices. More...
 
- Public Types inherited from plask::RectangularMeshBase3D
typedef plask::Boundary< RectangularMeshBase3DBoundary
 Boundary type.
 
- Public Types inherited from plask::MeshD< 3 >
enum  
 Number of dimensions. More...
 
typedef Primitive< DIM >::DVec LocalCoords
 Type of vector representing coordinates in local space.
 
typedef IndexedIterator< const MeshD< dimension >, LocalCoordsconst_iterator
 Random access iterator type which allow iterate over all points in this mesh, in order appointed by operator[].
 
typedef const_iterator iterator
 
typedef const_iterator Iterator
 

Public Member Functions

 EquilateralMesh3D (IterationOrder iterationOrder=ORDER_012, Vec< 3 > vec0=vec(1., 0., 0.), Vec< 3 > vec1=vec(0., 1., 0.), Vec< 3 > vec2=vec(0., 0., 1.))
 Construct mesh which has all axes of type OrderedAxis and all are empty.
 
 EquilateralMesh3D (shared_ptr< MeshAxis > mesh0, shared_ptr< MeshAxis > mesh1, shared_ptr< MeshAxis > mesh2, IterationOrder iterationOrder=ORDER_012, Vec< 3 > vec0=vec(1., 0., 0.), Vec< 3 > vec1=vec(0., 1., 0.), Vec< 3 > vec2=vec(0., 0., 1.))
 Construct mesh with is based on given 1D meshes.
 
Vec< 3, doublegetVec0 () const
 Return the first mesh vector.
 
Vec< 3, doublegetVec1 () const
 Return the second mesh vector.
 
Vec< 3, doublegetVec2 () const
 Return the third mesh vector.
 
Vec< 3, doublegetInvVec0 () const
 Return the first inverse vector.
 
Vec< 3, doublegetInvVec1 () const
 Return the second inverse vector.
 
Vec< 3, doublegetInvVec2 () const
 Return the third inverse vector.
 
void setVec0 (Vec< 3, double > vec0)
 Set the first mesh vector.
 
void setVec1 (Vec< 3, double > vec1)
 Set the second mesh vector.
 
void setVec2 (Vec< 3, double > vec2)
 Set the third mesh vector.
 
Vec< 3, doubletoMeshCoords (Vec< 3, double > point) const
 Transform point in the real coordinates to mesh coordinates.
 
Vec< 3, doubletoMeshCoords (double c0, double c1, double c2) const
 Transform point in the real coordinates to mesh coordinates.
 
Vec< 3, doublefromMeshCoords (Vec< 3, double > coords) const
 Transform point in mesh coordinates to the real coordinates.
 
Vec< 3, doublefromMeshCoords (double c0, double c1, double c2) const
 Transform point in mesh coordinates to the real coordinates.
 
Vec< 3, doubleat (std::size_t index0, std::size_t index1, std::size_t index2) const override
 Get point with given mesh indices.
 
shared_ptr< EquilateralMesh3D::ElementMeshgetElementMesh () const
 Return a mesh that enables iterating over middle points of the elements.
 
Vec< 3, doublegetElementMidpoint (std::size_t index0, std::size_t index1, std::size_t index2) const override
 Get point in center of Elements.
 
- Public Member Functions inherited from plask::RectilinearMesh3D
Elements elements () const
 Accessor to FEM-like elements.
 
Elements getElements () const
 
Element element (std::size_t i0, std::size_t i1, std::size_t i2) const
 
Element getElement (std::size_t i0, std::size_t i1, std::size_t i2) const
 
Element element (std::size_t i) const
 Get an element with a given index i.
 
Element getElement (std::size_t i) const
 Get an element with a given index i.
 
Box3D getElementBox (std::size_t index0, std::size_t index1, std::size_t index2) const
 Get element as box.
 
void setIterationOrder (IterationOrder order)
 Choose iteration order.
 
IterationOrder getIterationOrder () const
 Get iteration order.
 
const chargetIterationOrderAsArray () const
 Get iteration order as an array, e.g.
 
const chargetAxisToIterationOrder () const
 Similar to getIterationOrderAsArray but the resulted array has exchanged indexes with values.
 
bool isChangeSlower (std::size_t axis_index1, std::size_t axis_index2) const
 Check if axis with index axis_index1 changes slower than one with index axis_index2 when the mesh is changed by 1.
 
void setOptimalIterationOrder ()
 Set iteration order to the shortest axis changes fastest.
 
 RectilinearMesh3D (IterationOrder iterationOrder=ORDER_012)
 Construct mesh which has all axes of type OrderedAxis and all are empty.
 
 RectilinearMesh3D (shared_ptr< MeshAxis > mesh0, shared_ptr< MeshAxis > mesh1, shared_ptr< MeshAxis > mesh2, IterationOrder iterationOrder=ORDER_012)
 Construct mesh with is based on given 1D meshes.
 
void reset (shared_ptr< MeshAxis > mesh0, shared_ptr< MeshAxis > mesh1, shared_ptr< MeshAxis > mesh2, IterationOrder iterationOrder=ORDER_012)
 Change axes and iteration order of this mesh.
 
 RectilinearMesh3D (const RectilinearMesh3D &src, bool clone_axes=false)
 Copy constructor.
 
void reset (const RectilinearMesh3D &src, bool clone_axes=false)
 Change axes and iteration order of this mesh to the ones from src.
 
RectilinearMesh3Doperator= (const RectilinearMesh3D &src)
 
RectilinearMesh3Doperator= (RectilinearMesh3D &&src)
 
 ~RectilinearMesh3D ()
 
void setAxis (std::size_t axis_nr, shared_ptr< MeshAxis > new_val, bool fireResized=true)
 Change axis.
 
const shared_ptr< MeshAxisgetAxis0 () const
 
void setAxis0 (shared_ptr< MeshAxis > a0)
 
const shared_ptr< MeshAxisgetAxis1 () const
 
void setAxis1 (shared_ptr< MeshAxis > a1)
 
const shared_ptr< MeshAxisgetAxis2 () const
 
void setAxis2 (shared_ptr< MeshAxis > a2)
 
const shared_ptr< MeshAxis > & getAxis (size_t n) const
 Get numbered axis.
 
const shared_ptr< MeshAxismajorAxis () const
 
std::size_t majorAxisIndex () const
 
const shared_ptr< MeshAxismediumAxis () const
 
std::size_t mediumAxisIndex () const
 
const shared_ptr< MeshAxisminorAxis () const
 
std::size_t minorAxisIndex () const
 
bool operator== (const RectilinearMesh3D &to_compare) const
 Compare meshes.
 
bool operator!= (const RectilinearMesh3D &to_compare) const
 
std::size_t size () const override
 Get number of points in the mesh.
 
bool empty () const override
 
Vec< 3, doubleat (std::size_t index) const override
 Get point with given mesh index.
 
Vec< 3, doubleoperator[] (std::size_t index) const
 Get point with given mesh index.
 
Vec< 3, doubleoperator() (std::size_t index0, std::size_t index1, std::size_t index2) const
 Get point with given x and y indexes.
 
double getElementMidpoint0 (std::size_t index0) const
 Get first coordinate of point in center of Elements.
 
double getElementMidpoint1 (std::size_t index1) const
 Get second coordinate of point in center of Elements.
 
double getElementMidpoint2 (std::size_t index2) const
 Get second coordinate of point in center of Elements.
 
std::size_t index (std::size_t c0_index, std::size_t c1_index, std::size_t c2_index) const
 Calculate this mesh index using indexes of c0, c1 and c2.
 
std::size_t index (const Vec< 3, std::size_t > &indexes) const
 Calculate this mesh index using indexes of axis[0], axis[1] and axis[2].
 
std::size_t index0 (std::size_t mesh_index) const
 Calculate index of c0 using this mesh index.
 
std::size_t index1 (std::size_t mesh_index) const
 Calculate index of c1 using this mesh index.
 
std::size_t index2 (std::size_t mesh_index) const
 Calculate index of c2 using this mesh index.
 
template<std::size_t axis_nr>
std::size_t index_axis (std::size_t mesh_index) const
 Calculate index of c<axis_nr> using this mesh index.
 
Vec< 3, std::size_t > indexes (std::size_t mesh_index) const
 Calculate indexes of axes.
 
std::size_t majorIndex (std::size_t mesh_index) const
 Calculate index of major axis using given mesh index.
 
std::size_t middleIndex (std::size_t mesh_index) const
 Calculate index of middle axis using given mesh index.
 
std::size_t minorIndex (std::size_t mesh_index) const
 Calculate index of minor axis using given mesh index.
 
std::size_t getElementsCount0 () const
 Get number of elements (for FEM method) in the first direction.
 
std::size_t getElementsCount1 () const
 Get number of elements (for FEM method) in the second direction.
 
size_t getElementsCount2 () const
 Get number of elements (for FEM method) in the third direction.
 
size_t getElementsCount () const
 Get number of elements (for FEM method).
 
std::size_t getElementMeshLowIndex (std::size_t element_index) const
 Convert element index to mesh index of bottom, left, front element corner.
 
std::size_t getElementIndexFromLowIndexes (std::size_t axis0_index, std::size_t axis1_index, std::size_t axis2_index) const
 Convert mesh indexes of a bottom-left corner of an element to the index of this element.
 
bool isLowIndexOfElement (std::size_t meshIndex) const
 Check if mesh index is at the bottom, left, front corner of an element.
 
std::size_t getElementIndexFromLowIndex (std::size_t mesh_index_of_el_bottom_left) const
 Convert mesh index of bottom, left, front element corner to this element index.
 
std::size_t getElementIndexFromLowIndex (std::size_t axis0_index, std::size_t axis1_index, std::size_t axis2_index) const
 Convert indexes of mesh axes of lower (along all axes) element corner to index of this element.
 
Vec< 3, std::size_t > getElementMeshLowIndexes (std::size_t element_index) const
 Convert element index to mesh indexes of bottom left element corner.
 
template<typename RandomAccessContainer >
auto interpolateLinear (const RandomAccessContainer &data, const Vec< 3 > &point, const InterpolationFlags &flags) const -> typename std::remove_reference< decltype(data[0])>::type
 Calculate (using linear interpolation) value of data in point using data in points describe by this mesh.
 
template<typename RandomAccessContainer >
auto interpolateNearestNeighbor (const RandomAccessContainer &data, Vec< 3 > point, const InterpolationFlags &flags) const -> typename std::remove_reference< decltype(data[0])>::type
 Calculate (using nearest neighbor interpolation) value of data in point using data in points describe by this mesh.
 
BoundaryNodeSet createIndex0BoundaryAtLine (std::size_t line_nr_axis0) const override
 Create a node set which includes one plane in mesh, which has 0 coordinate equals to line_nr_axis0.
 
BoundaryNodeSet createBackBoundary () const override
 Create a node set which includes a whole back plane (face) of mesh.
 
BoundaryNodeSet createFrontBoundary () const override
 Create a node set which includes a whole front plane (face) of mesh.
 
BoundaryNodeSet createIndex1BoundaryAtLine (std::size_t line_nr_axis1) const override
 Create a node set which includes one plane in mesh, which has 1 coordinate equals to line_nr_axis1.
 
BoundaryNodeSet createLeftBoundary () const override
 Create a node set which includes a whole left plane (face) of mesh.
 
BoundaryNodeSet createRightBoundary () const override
 Create a node set which includes a whole right plane (face) of mesh.
 
BoundaryNodeSet createIndex2BoundaryAtLine (std::size_t line_nr_axis2) const override
 Create a node set which includes one plane in mesh, which has 2 coordinate equals to line_nr_axis2.
 
BoundaryNodeSet createBottomBoundary () const override
 Create a node set which shows a whole bottom plane (face) of mesh.
 
BoundaryNodeSet createTopBoundary () const override
 Create a node set which shows a whole top plane (face) of mesh.
 
BoundaryNodeSet createIndex0BoundaryAtLine (std::size_t line_nr_axis0, std::size_t index1Begin, std::size_t index1End, std::size_t index2Begin, std::size_t index2End) const override
 Create a node set which includes a rectangle in plane of mesh, which has 0 coordinate equals to line_nr_axis0.
 
BoundaryNodeSet createBackOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 0 direction and lies on back of the box (at nearest plane inside the box).
 
BoundaryNodeSet createFrontOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 0 direction and lies on front of the box (at nearest plane inside the box).
 
BoundaryNodeSet createIndex1BoundaryAtLine (std::size_t line_nr_axis1, std::size_t index0Begin, std::size_t index0End, std::size_t index2Begin, std::size_t index2End) const override
 Create a node set which includes a rectangle in plane of mesh, which has 0 coordinate equals to line_nr_axis1.
 
BoundaryNodeSet createLeftOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 1 direction and lies on left face of the box (at nearest plane inside the box).
 
BoundaryNodeSet createRightOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 1 direction and lies on right face of the box (at nearest plane inside the box).
 
BoundaryNodeSet createIndex2BoundaryAtLine (std::size_t line_nr_axis2, std::size_t index0Begin, std::size_t index0End, std::size_t index1Begin, std::size_t index1End) const override
 Create a node set which includes a rectangle in plane of mesh, which has 2 coordinate equals to line_nr_axis2.
 
BoundaryNodeSet createBottomOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 2 direction and lies on bottom face of the box (at nearest plane inside the box).
 
BoundaryNodeSet createTopOfBoundary (const Box3D &box) const override
 Create a node set which has fixed index at axis 2 direction and lies on top face of the box (at nearest plane inside the box).
 
- Public Member Functions inherited from plask::MeshD< 3 >
LocalCoords operator[] (std::size_t index) const
 Get point with given mesh index.
 
const_iterator begin () const
 
const_iterator end () const
 
 MeshD (const MeshD &PLASK_UNUSED(to_copy))
 Initialize this to be the same as to_copy but don't copy any changes observer.
 
 MeshD ()
 
MeshDoperator= (const MeshD &PLASK_UNUSED(to_copy))
 Set this to be the same as to_copy but doesn't changed changes observer.
 
bool operator== (const MeshD &to_compare) const
 Check if this mesh and to_compare represent the same sequence of points (have exactly the same points in the same order).
 
bool operator!= (const MeshD &to_compare) const
 Check if this mesh and to_compare represent different sequences of points.
 
void print (std::ostream &out) const override
 Print this to stream out.
 
- Public Member Functions inherited from plask::Mesh
template<typename ClassT , typename methodT >
boost::signals2::connection changedConnectMethod (ClassT *obj, methodT method, boost::signals2::connect_position at=boost::signals2::at_back)
 Connect a method to changed signal.
 
template<typename ClassT , typename methodT >
void changedDisconnectMethod (ClassT *obj, methodT method)
 
template<typename EventT = Event, typename ... Args>
void fireChanged (Args &&... event_constructor_params_without_source)
 Call changed with this as event source.
 
void fireResized ()
 This method is called when the mesh is resized.
 
virtual void writeXML (XMLElement &object) const
 Write mesh to XML.
 
virtual ~Mesh ()
 
- Public Member Functions inherited from plask::Printable
virtual ~Printable ()
 
std::string str () const
 Get string representation of this using print method.
 
- Public Member Functions inherited from plask::MeshBase
virtual ~MeshBase ()
 

Protected Attributes

double trans [9]
 Transformation matrix.
 

Additional Inherited Members

- Static Public Member Functions inherited from plask::RectangularMeshBase3D
template<typename Predicate >
static Boundary getBoundary (Predicate predicate)
 
static Boundary getIndex0BoundaryAtLine (std::size_t line_nr_axis0)
 Get boundary which shows one plane in mesh, which has 0 coordinate equals to line_nr_axis0.
 
static Boundary getIndex0BoundaryAtLine (std::size_t line_nr_axis0, std::size_t index1Begin, std::size_t index1End, std::size_t index2Begin, std::size_t index2End)
 Get boundary which shows a rectangle in plane of mesh, which has 0 coordinate equals to line_nr_axis0.
 
static Boundary getIndex1BoundaryAtLine (std::size_t line_nr_axis1)
 Get boundary which shows one plane in mesh, which has 1 coordinate equals to line_nr_axis1.
 
static Boundary getIndex1BoundaryAtLine (std::size_t line_nr_axis1, std::size_t index0Begin, std::size_t index0End, std::size_t index2Begin, std::size_t index2End)
 Get boundary which shows a rectangle in plane of mesh, which has 1 coordinate equals to line_nr_axis1.
 
static Boundary getIndex2BoundaryAtLine (std::size_t line_nr_axis2)
 Get boundary which shows one plane in mesh, which has 2 coordinate equals to line_nr_axis2.
 
static Boundary getIndex2BoundaryAtLine (std::size_t line_nr_axis2, std::size_t index0Begin, std::size_t index0End, std::size_t index1Begin, std::size_t index1End)
 Get boundary which shows a rectangle in plane of mesh, which has 2 coordinate equals to line_nr_axis2.
 
static Boundary getBackBoundary ()
 Get boundary which show a whole back plane (face) of mesh.
 
static Boundary getBackOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 0 direction and lies on back of the box (at nearest plane inside the box).
 
static Boundary getFrontBoundary ()
 Get boundary which show a whole front plane (face) of mesh.
 
static Boundary getFrontOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 0 direction and lies on front of the box (at nearest plane inside the box).
 
static Boundary getLeftBoundary ()
 Get boundary which show a whole left plane (face) of mesh.
 
static Boundary getLeftOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 1 direction and lies on left face of the box (at nearest plane inside the box).
 
static Boundary getRightBoundary ()
 Get boundary which show a whole right plane (face) of mesh.
 
static Boundary getRightOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 1 direction and lies on right face of the box (at nearest plane inside the box).
 
static Boundary getTopBoundary ()
 Get boundary which show a whole top plane (face) of mesh.
 
static Boundary getTopOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 2 direction and lies on top face of the box (at nearest plane inside the box).
 
static Boundary getBottomBoundary ()
 Get boundary which show a whole bottom plane (face) of mesh.
 
static Boundary getBottomOfBoundary (const Box3D &box)
 Get a boundary which has fixed index at axis 2 direction and lies on top bottom of the box (at nearest plane inside the box).
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on left faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on left faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on left faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on right faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on right faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on right faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on bottom faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on bottom faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on bottom faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on top faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on top faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on top faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on back faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on back faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on back of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 Get boundary which lies on front faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object)
 Get boundary which lies on front faces of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 Get boundary which lies on front of bounding-boxes of objects (in geometry coordinates).
 
static Boundary getBoundary (const std::string &boundary_desc)
 
static Boundary getBoundary (XMLReader &boundary_desc, Manager &manager)
 
- Public Attributes inherited from plask::RectilinearMesh3D
const shared_ptr< MeshAxisaxis [3]
 First, second and third coordinates of points in this mesh.
 
- Public Attributes inherited from plask::Mesh
boost::signals2::signal< void(Event &)> changed
 Changed signal, fired when mesh was changed.
 
- Protected Member Functions inherited from plask::RectilinearMesh3D
bool hasSameNodes (const MeshD< 3 > &to_compare) const override
 
- Protected Member Functions inherited from plask::MeshD< 3 >
virtual bool hasSameNodes (const MeshD< dimension > &to_compare) const
 Check if this mesh and to_compare represent the same sequence of points (have exactly the same points in the same order).
 
- Protected Member Functions inherited from plask::Mesh
virtual void onChange (const Event &evt)
 This method is called when the mesh is changed, just before changed signal.
 

Detailed Description

Definition at line 25 of file equilateral3d.hpp.

Member Typedef Documentation

◆ ElementMesh

Constructor & Destructor Documentation

◆ EquilateralMesh3D() [1/2]

plask::EquilateralMesh3D::EquilateralMesh3D ( IterationOrder  iterationOrder = ORDER_012,
Vec< 3 >  vec0 = vec(1., 0., 0.),
Vec< 3 >  vec1 = vec(0., 1., 0.),
Vec< 3 >  vec2 = vec(0., 0., 1.) 
)
explicit

Construct mesh which has all axes of type OrderedAxis and all are empty.

Parameters
iterationOrderiteration order
vec0first axis vector
vec1second axis vector
vec2third axis vector

Definition at line 19 of file equilateral3d.cpp.

◆ EquilateralMesh3D() [2/2]

plask::EquilateralMesh3D::EquilateralMesh3D ( shared_ptr< MeshAxis mesh0,
shared_ptr< MeshAxis mesh1,
shared_ptr< MeshAxis mesh2,
IterationOrder  iterationOrder = ORDER_012,
Vec< 3 >  vec0 = vec(1., 0., 0.),
Vec< 3 >  vec1 = vec(0., 1., 0.),
Vec< 3 >  vec2 = vec(0., 0., 1.) 
)

Construct mesh with is based on given 1D meshes.

Parameters
mesh0mesh for the first coordinate
mesh1mesh for the second coordinate
mesh2mesh for the third coordinate
iterationOrderiteration order
vec0first axis vector
vec1second axis vector
vec2third axis vector

Definition at line 24 of file equilateral3d.cpp.

Member Function Documentation

◆ at()

Vec< 3, double > plask::EquilateralMesh3D::at ( std::size_t  index0,
std::size_t  index1,
std::size_t  index2 
) const
inlineoverridevirtual

Get point with given mesh indices.

Parameters
index0index of point in axis0
index1index of point in axis1
index2index of point in axis2
Returns
point with given index

Implements plask::RectilinearMesh3D.

Definition at line 199 of file equilateral3d.hpp.

◆ fromMeshCoords() [1/2]

Vec< 3, double > plask::EquilateralMesh3D::fromMeshCoords ( double  c0,
double  c1,
double  c2 
) const
inline

Transform point in mesh coordinates to the real coordinates.

Parameters
c0,c1,c2coordinates to transform
Returns
transformed coordinates

Definition at line 186 of file equilateral3d.hpp.

◆ fromMeshCoords() [2/2]

Vec< 3, double > plask::EquilateralMesh3D::fromMeshCoords ( Vec< 3, double coords) const
inline

Transform point in mesh coordinates to the real coordinates.

Parameters
coordscoordinates to transform
Returns
transformed coordinates

Definition at line 175 of file equilateral3d.hpp.

◆ getElementMesh()

shared_ptr< EquilateralMesh3D::ElementMesh > plask::EquilateralMesh3D::getElementMesh ( ) const

Return a mesh that enables iterating over middle points of the elements.

Returns
new equilateral mesh with points in the middles of original elements

Definition at line 31 of file equilateral3d.cpp.

◆ getElementMidpoint()

Vec< 3, double > plask::EquilateralMesh3D::getElementMidpoint ( std::size_t  index0,
std::size_t  index1,
std::size_t  index2 
) const
inlineoverridevirtual

Get point in center of Elements.

Parameters
index0,index1,index2index of Elements
Returns
point in center of element with given index

Implements plask::RectilinearMesh3D.

Definition at line 214 of file equilateral3d.hpp.

◆ getInvVec0()

Vec< 3, double > plask::EquilateralMesh3D::getInvVec0 ( ) const
inline

Return the first inverse vector.

Definition at line 107 of file equilateral3d.hpp.

◆ getInvVec1()

Vec< 3, double > plask::EquilateralMesh3D::getInvVec1 ( ) const
inline

Return the second inverse vector.

Definition at line 112 of file equilateral3d.hpp.

◆ getInvVec2()

Vec< 3, double > plask::EquilateralMesh3D::getInvVec2 ( ) const
inline

Return the third inverse vector.

Definition at line 117 of file equilateral3d.hpp.

◆ getVec0()

Vec< 3, double > plask::EquilateralMesh3D::getVec0 ( ) const
inline

Return the first mesh vector.

Definition at line 92 of file equilateral3d.hpp.

◆ getVec1()

Vec< 3, double > plask::EquilateralMesh3D::getVec1 ( ) const
inline

Return the second mesh vector.

Definition at line 97 of file equilateral3d.hpp.

◆ getVec2()

Vec< 3, double > plask::EquilateralMesh3D::getVec2 ( ) const
inline

Return the third mesh vector.

Definition at line 102 of file equilateral3d.hpp.

◆ setVec0()

void plask::EquilateralMesh3D::setVec0 ( Vec< 3, double vec0)
inline

Set the first mesh vector.

Definition at line 122 of file equilateral3d.hpp.

◆ setVec1()

void plask::EquilateralMesh3D::setVec1 ( Vec< 3, double vec1)
inline

Set the second mesh vector.

Definition at line 131 of file equilateral3d.hpp.

◆ setVec2()

void plask::EquilateralMesh3D::setVec2 ( Vec< 3, double vec2)
inline

Set the third mesh vector.

Definition at line 140 of file equilateral3d.hpp.

◆ toMeshCoords() [1/2]

Vec< 3, double > plask::EquilateralMesh3D::toMeshCoords ( double  c0,
double  c1,
double  c2 
) const
inline

Transform point in the real coordinates to mesh coordinates.

Parameters
c0,c1,c2point to transform
Returns
transformed coordinates

Definition at line 164 of file equilateral3d.hpp.

◆ toMeshCoords() [2/2]

Vec< 3, double > plask::EquilateralMesh3D::toMeshCoords ( Vec< 3, double point) const
inline

Transform point in the real coordinates to mesh coordinates.

Parameters
pointpoint to transform
Returns
transformed coordinates

Definition at line 153 of file equilateral3d.hpp.

Member Data Documentation

◆ trans

double plask::EquilateralMesh3D::trans[9]
protected

Transformation matrix.

Definition at line 28 of file equilateral3d.hpp.


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