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

Rectangular mesh in 3D space. More...

#include <plask/mesh/rectangular3d.hpp>

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

Public Types

typedef RectilinearMesh3D::ElementMesh< RectangularMesh3DElementMesh
 
- 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

 RectangularMesh3D (IterationOrder iterationOrder=ORDER_012)
 Construct mesh which has all axes of type OrderedAxis and all are empty.
 
 RectangularMesh3D (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.
 
 RectangularMesh3D (const RectangularMesh3D &src, bool clone_axes=false)
 Copy constructor.
 
const shared_ptr< MeshAxis > & lon () const
 Get first coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & tran () const
 Get second coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & vert () const
 Get third coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & ee_z () const
 Get first coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & ee_x () const
 Get second coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & ee_y () const
 Get third coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & rad_r () const
 Get first coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & rad_phi () const
 Get second coordinate of points in this mesh.
 
const shared_ptr< MeshAxis > & rad_z () const
 Get third coordinate of points in this mesh.
 
void writeXML (XMLElement &object) const override
 Write mesh to XML.
 
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< RectangularMesh3D::ElementMeshgetElementMesh () const
 Return a mesh that enables iterating over middle points of the cuboids.
 
double getElementArea (std::size_t index0, std::size_t index1, std::size_t index2) const
 Get area of given element.
 
double getElementArea (std::size_t element_index) const
 Get area of given element.
 
Vec< 3, doublegetElementMidpoint (std::size_t index0, std::size_t index1, std::size_t index2) const override
 Get point in center of Elements.
 
Vec< 3, doublegetElementMidpoint (std::size_t element_index) const
 Get point in center of Elements.
 
Box3D getElementBox (std::size_t index0, std::size_t index1, std::size_t index2) const
 Get element as cuboid.
 
Box3D getElementBox (std::size_t element_index) const
 Get element as cuboid.
 
virtual Vec< 3, doubleat (std::size_t index0, std::size_t index1, std::size_t index2) const=0
 Get point with given mesh indices.
 
Vec< 3, doubleat (std::size_t index) const override
 Get point with given mesh index.
 
- 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 ~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 ()
 

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

Rectangular mesh in 3D space.

Includes three 1d rectilinear meshes:

Definition at line 36 of file rectangular3d.hpp.

Member Typedef Documentation

◆ ElementMesh

Constructor & Destructor Documentation

◆ RectangularMesh3D() [1/3]

plask::RectangularMesh3D::RectangularMesh3D ( IterationOrder  iterationOrder = ORDER_012)
explicit

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

Parameters
iterationOrderiteration order

Definition at line 26 of file rectangular3d.cpp.

◆ RectangularMesh3D() [2/3]

plask::RectangularMesh3D::RectangularMesh3D ( 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.

Parameters
mesh0mesh for the first coordinate
mesh1mesh for the second coordinate
mesh2mesh for the third coordinate
iterationOrderiteration order

Definition at line 28 of file rectangular3d.cpp.

◆ RectangularMesh3D() [3/3]

plask::RectangularMesh3D::RectangularMesh3D ( const RectangularMesh3D src,
bool  clone_axes = false 
)

Copy constructor.

Parameters
srcmesh to copy
clone_axeswhether axes of the src should be cloned (if true) or shared (if false; default)

Definition at line 31 of file rectangular3d.cpp.

Member Function Documentation

◆ at() [1/3]

Vec< 3, double > plask::RectilinearMesh3D::at ( std::size_t  index) const
inlineoverridevirtual

Get point with given mesh index.

Parameters
indexindex of point, from 0 to size()-1
Returns
point with given index

Implements plask::MeshD< 3 >.

Definition at line 550 of file rectilinear3d.hpp.

◆ at() [2/3]

Vec< 3, double > plask::RectangularMesh3D::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 134 of file rectangular3d.hpp.

◆ at() [3/3]

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

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.

◆ ee_x()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::ee_x ( ) const
inline

Get second coordinate of points in this mesh.

Returns
axis1

Definition at line 93 of file rectangular3d.hpp.

◆ ee_y()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::ee_y ( ) const
inline

Get third coordinate of points in this mesh.

Returns
axis2

Definition at line 99 of file rectangular3d.hpp.

◆ ee_z()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::ee_z ( ) const
inline

Get first coordinate of points in this mesh.

Returns
axis0

Definition at line 87 of file rectangular3d.hpp.

◆ getElementArea() [1/2]

double plask::RectangularMesh3D::getElementArea ( std::size_t  element_index) const
inline

Get area of given element.

Parameters
element_indexindex of element
Returns
area of elements with given index

Definition at line 158 of file rectangular3d.hpp.

◆ getElementArea() [2/2]

double plask::RectangularMesh3D::getElementArea ( std::size_t  index0,
std::size_t  index1,
std::size_t  index2 
) const
inline

Get area of given element.

Parameters
index0,index1,index2axis 0, 1 and 2 indexes of element
Returns
area of elements with given index

Definition at line 149 of file rectangular3d.hpp.

◆ getElementBox() [1/2]

Box3D plask::RectangularMesh3D::getElementBox ( std::size_t  element_index) const
inline

Get element as cuboid.

Parameters
element_indexindex of element
Returns
box of elements with given index

Definition at line 196 of file rectangular3d.hpp.

◆ getElementBox() [2/2]

Box3D plask::RectangularMesh3D::getElementBox ( std::size_t  index0,
std::size_t  index1,
std::size_t  index2 
) const
inline

Get element as cuboid.

Parameters
index0,index1,index2index of Elements
Returns
box of elements with given index

Definition at line 187 of file rectangular3d.hpp.

◆ getElementMesh()

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

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

Returns
new rectangular mesh with points in the middles of original cuboids

Definition at line 22 of file rectangular3d.cpp.

◆ getElementMidpoint() [1/2]

Vec< 3, double > plask::RectangularMesh3D::getElementMidpoint ( std::size_t  element_index) const
inline

Get point in center of Elements.

Parameters
element_indexindex of Elements
Returns
point in center of element with given index

Definition at line 177 of file rectangular3d.hpp.

◆ getElementMidpoint() [2/2]

Vec< 3, double > plask::RectangularMesh3D::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 168 of file rectangular3d.hpp.

◆ lon()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::lon ( ) const
inline

Get first coordinate of points in this mesh.

Returns
axis0

Definition at line 69 of file rectangular3d.hpp.

◆ rad_phi()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::rad_phi ( ) const
inline

Get second coordinate of points in this mesh.

Returns
axis1

Definition at line 111 of file rectangular3d.hpp.

◆ rad_r()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::rad_r ( ) const
inline

Get first coordinate of points in this mesh.

Returns
axis0

Definition at line 105 of file rectangular3d.hpp.

◆ rad_z()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::rad_z ( ) const
inline

Get third coordinate of points in this mesh.

Returns
axis2

Definition at line 117 of file rectangular3d.hpp.

◆ tran()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::tran ( ) const
inline

Get second coordinate of points in this mesh.

Returns
axis1

Definition at line 75 of file rectangular3d.hpp.

◆ vert()

const shared_ptr< MeshAxis > & plask::RectangularMesh3D::vert ( ) const
inline

Get third coordinate of points in this mesh.

Returns
axis2

Definition at line 81 of file rectangular3d.hpp.

◆ writeXML()

void plask::RectangularMesh3D::writeXML ( XMLElement object) const
overridevirtual

Write mesh to XML.

Parameters
objectXML object to write to

Reimplemented from plask::Mesh.

Definition at line 33 of file rectangular3d.cpp.


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