PLaSK library
Loading...
Searching...
No Matches
plask::RectilinearMesh3D Class Referenceabstract

Rectilinear mesh in 3D space. More...

#include <plask/mesh/rectilinear3d.hpp>

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

Classes

class  Element
 Represent FEM-like element in Rectilinear. More...
 
struct  ElementMesh
 Element mesh class. More...
 
struct  Elements
 Wrapper to Rectilinear which allow to access to FEM-like elements. More...
 

Public Types

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

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
 
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.
 
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.
 
virtual Vec< 3, doublegetElementMidpoint (std::size_t index0, std::size_t index1, std::size_t index2) const =0
 Get 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 ()
 

Public Attributes

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

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.
 

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)
 

Detailed Description

Rectilinear mesh in 3D space.

Includes three 1d rectilinear meshes:

  • axis0
  • axis1
  • axis2 Represent all points (c0, c1, c2) such that c0 is in axis0, c1 is in axis1, c2 is in axis2.

Definition at line 39 of file rectilinear3d.hpp.

Member Enumeration Documentation

◆ IterationOrder

Iteration orders: Every other order is proper permutation of indices.

They mean ORDER_major,medium,minor, i.e. the last index changes fastest

See also
setIterationOrder, getIterationOrder, setOptimalIterationOrder
Enumerator
ORDER_012 
ORDER_021 
ORDER_102 
ORDER_120 
ORDER_201 
ORDER_210 

Definition at line 349 of file rectilinear3d.hpp.

Constructor & Destructor Documentation

◆ RectilinearMesh3D() [1/3]

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

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

Parameters
iterationOrderiteration order

Definition at line 92 of file rectilinear3d.cpp.

◆ RectilinearMesh3D() [2/3]

plask::RectilinearMesh3D::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.

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

Definition at line 100 of file rectilinear3d.cpp.

◆ RectilinearMesh3D() [3/3]

plask::RectilinearMesh3D::RectilinearMesh3D ( const RectilinearMesh3D 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 116 of file rectilinear3d.cpp.

◆ ~RectilinearMesh3D()

plask::RectilinearMesh3D::~RectilinearMesh3D ( )

Definition at line 136 of file rectilinear3d.cpp.

Member Function Documentation

◆ at() [1/2]

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/2]

virtual Vec< 3, double > plask::RectilinearMesh3D::at ( std::size_t  index0,
std::size_t  index1,
std::size_t  index2 
) const
pure 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

Implemented in plask::EquilateralMesh3D, plask::RectangularMesh3D, and plask::RectangularMesh3D.

◆ createBackBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createBackBoundary ( ) const
overridevirtual

Create a node set which includes a whole back plane (face) of mesh.

Returns
node set which includes a whole back plane (face) of mesh.

Implements plask::RectangularMeshBase3D.

Definition at line 158 of file rectilinear3d.cpp.

◆ createBackOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createBackOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a back face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 205 of file rectilinear3d.cpp.

◆ createBottomBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createBottomBoundary ( ) const
overridevirtual

Create a node set which shows a whole bottom plane (face) of mesh.

Returns
node set which shows a whole bottom plane (face) of mesh

Implements plask::RectangularMeshBase3D.

Definition at line 188 of file rectilinear3d.cpp.

◆ createBottomOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createBottomOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a bottom face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 265 of file rectilinear3d.cpp.

◆ createFrontBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createFrontBoundary ( ) const
overridevirtual

Create a node set which includes a whole front plane (face) of mesh.

Returns
node set which includes a whole front plane (face) of mesh.

Implements plask::RectangularMeshBase3D.

Definition at line 162 of file rectilinear3d.cpp.

◆ createFrontOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createFrontOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a front face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 215 of file rectilinear3d.cpp.

◆ createIndex0BoundaryAtLine() [1/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex0BoundaryAtLine ( std::size_t  line_nr_axis0) const
overridevirtual

Create a node set which includes one plane in mesh, which has 0 coordinate equals to line_nr_axis0.

Parameters
line_nr_axis0index of axis[0] mesh
Returns
node set which includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 151 of file rectilinear3d.cpp.

◆ createIndex0BoundaryAtLine() [2/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex0BoundaryAtLine ( std::size_t  line_nr_axis0,
std::size_t  index1Begin,
std::size_t  index1End,
std::size_t  index2Begin,
std::size_t  index2End 
) const
overridevirtual

Create a node set which includes a rectangle in plane of mesh, which has 0 coordinate equals to line_nr_axis0.

Parameters
line_nr_axis0index of axis[0] mesh
index1Begin,index1End,index2Begin,index2Endindexes which showes rectangle [index1Begin, index1End) x [index2Begin, index2End)
Returns
node set which includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 196 of file rectilinear3d.cpp.

◆ createIndex1BoundaryAtLine() [1/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex1BoundaryAtLine ( std::size_t  line_nr_axis1) const
overridevirtual

Create a node set which includes one plane in mesh, which has 1 coordinate equals to line_nr_axis1.

Parameters
line_nr_axis0index of axis[1] mesh
Returns
node set which includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 166 of file rectilinear3d.cpp.

◆ createIndex1BoundaryAtLine() [2/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex1BoundaryAtLine ( std::size_t  line_nr_axis1,
std::size_t  index0Begin,
std::size_t  index0End,
std::size_t  index2Begin,
std::size_t  index2End 
) const
overridevirtual

Create a node set which includes a rectangle in plane of mesh, which has 0 coordinate equals to line_nr_axis1.

Parameters
line_nr_axis1index of axis[1] mesh
index0Begin,index0End,index2Begin,index2Endindexes which showes rectangle [index0Begin, index0End) x [index2Begin, index2End)
Returns
node set which includes includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 225 of file rectilinear3d.cpp.

◆ createIndex2BoundaryAtLine() [1/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex2BoundaryAtLine ( std::size_t  line_nr_axis2) const
overridevirtual

Create a node set which includes one plane in mesh, which has 2 coordinate equals to line_nr_axis2.

Parameters
line_nr_axis2index of axis[2] mesh
Returns
node set which includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 181 of file rectilinear3d.cpp.

◆ createIndex2BoundaryAtLine() [2/2]

BoundaryNodeSet plask::RectilinearMesh3D::createIndex2BoundaryAtLine ( std::size_t  line_nr_axis2,
std::size_t  index0Begin,
std::size_t  index0End,
std::size_t  index1Begin,
std::size_t  index1End 
) const
overridevirtual

Create a node set which includes a rectangle in plane of mesh, which has 2 coordinate equals to line_nr_axis2.

Parameters
line_nr_axis2index of axis[2] mesh
index0Begin,index0End,index1Begin,index1Endindexes which showes rectangle [index0Begin, index0End) x [index1Begin, index1End)
Returns
node set which includes includes the plane in mesh

Implements plask::RectangularMeshBase3D.

Definition at line 255 of file rectilinear3d.cpp.

◆ createLeftBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createLeftBoundary ( ) const
overridevirtual

Create a node set which includes a whole left plane (face) of mesh.

Returns
node set which includes a whole left plane (face) of mesh.

Implements plask::RectangularMeshBase3D.

Definition at line 173 of file rectilinear3d.cpp.

◆ createLeftOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createLeftOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a left face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 235 of file rectilinear3d.cpp.

◆ createRightBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createRightBoundary ( ) const
overridevirtual

Create a node set which includes a whole right plane (face) of mesh.

Returns
node set which includes a whole right plane (face) of mesh.

Implements plask::RectangularMeshBase3D.

Definition at line 177 of file rectilinear3d.cpp.

◆ createRightOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createRightOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a right face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 245 of file rectilinear3d.cpp.

◆ createTopBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createTopBoundary ( ) const
overridevirtual

Create a node set which shows a whole top plane (face) of mesh.

Returns
node set which shows a whole top plane (face) of mesh

Implements plask::RectangularMeshBase3D.

Definition at line 192 of file rectilinear3d.cpp.

◆ createTopOfBoundary()

BoundaryNodeSet plask::RectilinearMesh3D::createTopOfBoundary ( const Box3D box) const
overridevirtual

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).

Parameters
boxbox in which boundary should lie
Returns
node set which includes a top face of the box

Implements plask::RectangularMeshBase3D.

Definition at line 275 of file rectilinear3d.cpp.

◆ element() [1/2]

Element plask::RectilinearMesh3D::element ( std::size_t  i) const
inline

Get an element with a given index i.

Parameters
iindex of the element
Returns
the element

Definition at line 324 of file rectilinear3d.hpp.

◆ element() [2/2]

Element plask::RectilinearMesh3D::element ( std::size_t  i0,
std::size_t  i1,
std::size_t  i2 
) const
inline

Definition at line 316 of file rectilinear3d.hpp.

◆ elements()

Elements plask::RectilinearMesh3D::elements ( ) const
inline

Accessor to FEM-like elements.

Definition at line 313 of file rectilinear3d.hpp.

◆ empty()

bool plask::RectilinearMesh3D::empty ( ) const
inlineoverridevirtual
Returns
true only if there are no points in mesh

Reimplemented from plask::Mesh.

Definition at line 534 of file rectilinear3d.hpp.

◆ getAxis()

const shared_ptr< MeshAxis > & plask::RectilinearMesh3D::getAxis ( size_t  n) const
inline

Get numbered axis.

Parameters
nnumber of axis

Definition at line 468 of file rectilinear3d.hpp.

◆ getAxis0()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::getAxis0 ( ) const
inline

Definition at line 452 of file rectilinear3d.hpp.

◆ getAxis1()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::getAxis1 ( ) const
inline

Definition at line 456 of file rectilinear3d.hpp.

◆ getAxis2()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::getAxis2 ( ) const
inline

Definition at line 460 of file rectilinear3d.hpp.

◆ getAxisToIterationOrder()

const char * plask::RectilinearMesh3D::getAxisToIterationOrder ( ) const
inline

Similar to getIterationOrderAsArray but the resulted array has exchanged indexes with values.

Resulted array is indexed by axis number (0, 1, 2) and the bigger value means that the index of the axis changes faster when index of the mesh is changed by 1.

Returns
the array which maps axis number to position in iteration order

Definition at line 381 of file rectilinear3d.hpp.

◆ getElement() [1/2]

Element plask::RectilinearMesh3D::getElement ( std::size_t  i) const
inline

Get an element with a given index i.

Parameters
iindex of the element
Returns
the element

Definition at line 331 of file rectilinear3d.hpp.

◆ getElement() [2/2]

Element plask::RectilinearMesh3D::getElement ( std::size_t  i0,
std::size_t  i1,
std::size_t  i2 
) const
inline

Definition at line 317 of file rectilinear3d.hpp.

◆ getElementBox()

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

Get element as box.

Parameters
index0,index1,index2index of element
Returns
box of elements with given indexes

Definition at line 338 of file rectilinear3d.hpp.

◆ getElementIndexFromLowIndex() [1/2]

std::size_t plask::RectilinearMesh3D::getElementIndexFromLowIndex ( std::size_t  axis0_index,
std::size_t  axis1_index,
std::size_t  axis2_index 
) const
inline

Convert indexes of mesh axes of lower (along all axes) element corner to index of this element.

Parameters
axis0_index,axis1_index,axis2_indexindexes of corner
Returns
index of element, from 0 to getElementsCount()-1

Definition at line 780 of file rectilinear3d.hpp.

◆ getElementIndexFromLowIndex() [2/2]

std::size_t plask::RectilinearMesh3D::getElementIndexFromLowIndex ( std::size_t  mesh_index_of_el_bottom_left) const
inline

Convert mesh index of bottom, left, front element corner to this element index.

Parameters
mesh_index_of_el_bottom_leftmesh index
Returns
index of the element, from 0 to getElementsCount()-1

Definition at line 769 of file rectilinear3d.hpp.

◆ getElementIndexFromLowIndexes()

std::size_t plask::RectilinearMesh3D::getElementIndexFromLowIndexes ( std::size_t  axis0_index,
std::size_t  axis1_index,
std::size_t  axis2_index 
) const
inline

Convert mesh indexes of a bottom-left corner of an element to the index of this element.

Parameters
axis0_index,axis1_index,axis2_indexindexs of the lower corner along the axis[0, 1 and 2]
Returns
index of the element, from 0 to getElementsCount()-1

Definition at line 751 of file rectilinear3d.hpp.

◆ getElementMeshLowIndex()

std::size_t plask::RectilinearMesh3D::getElementMeshLowIndex ( std::size_t  element_index) const
inline

Convert element index to mesh index of bottom, left, front element corner.

Parameters
element_indexindex of element, from 0 to getElementsCount()-1
Returns
mesh index

Definition at line 739 of file rectilinear3d.hpp.

◆ getElementMeshLowIndexes()

Vec< 3, std::size_t > plask::RectilinearMesh3D::getElementMeshLowIndexes ( std::size_t  element_index) const
inline

Convert element index to mesh indexes of bottom left element corner.

Parameters
element_indexindex of element, from 0 to getElementsCount()-1
Returns
axis 0, axis 1 and axis 2 indexes of mesh, you can easy calculate rest indexes of element corner adding 1 to returned coordinates

Definition at line 790 of file rectilinear3d.hpp.

◆ getElementMidpoint()

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

Get point in center of Elements.

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

Implemented in plask::EquilateralMesh3D, and plask::RectangularMesh3D.

◆ getElementMidpoint0()

double plask::RectilinearMesh3D::getElementMidpoint0 ( std::size_t  index0) const
inline

Get first coordinate of point in center of Elements.

Parameters
index0index of Elements (axis0 index)
Returns
first coordinate of point point in center of Elements with given index

Definition at line 580 of file rectilinear3d.hpp.

◆ getElementMidpoint1()

double plask::RectilinearMesh3D::getElementMidpoint1 ( std::size_t  index1) const
inline

Get second coordinate of point in center of Elements.

Parameters
index1index of Elements (axis1 index)
Returns
second coordinate of point point in center of Elements with given index

Definition at line 587 of file rectilinear3d.hpp.

◆ getElementMidpoint2()

double plask::RectilinearMesh3D::getElementMidpoint2 ( std::size_t  index2) const
inline

Get second coordinate of point in center of Elements.

Parameters
index2index of Elements (axis2 index)
Returns
second coordinate of point point in center of Elements with given index

Definition at line 594 of file rectilinear3d.hpp.

◆ getElements()

Elements plask::RectilinearMesh3D::getElements ( ) const
inline

Definition at line 314 of file rectilinear3d.hpp.

◆ getElementsCount()

size_t plask::RectilinearMesh3D::getElementsCount ( ) const
inline

Get number of elements (for FEM method).

Returns
number of elements in this mesh

Definition at line 730 of file rectilinear3d.hpp.

◆ getElementsCount0()

std::size_t plask::RectilinearMesh3D::getElementsCount0 ( ) const
inline

Get number of elements (for FEM method) in the first direction.

Returns
number of elements in this mesh in the first direction (axis0 direction).

Definition at line 703 of file rectilinear3d.hpp.

◆ getElementsCount1()

std::size_t plask::RectilinearMesh3D::getElementsCount1 ( ) const
inline

Get number of elements (for FEM method) in the second direction.

Returns
number of elements in this mesh in the second direction (axis1 direction).

Definition at line 712 of file rectilinear3d.hpp.

◆ getElementsCount2()

size_t plask::RectilinearMesh3D::getElementsCount2 ( ) const
inline

Get number of elements (for FEM method) in the third direction.

Returns
number of elements in this mesh in the third direction (axis2 direction).

Definition at line 721 of file rectilinear3d.hpp.

◆ getIterationOrder()

RectilinearMesh3D::IterationOrder plask::RectilinearMesh3D::getIterationOrder ( ) const

Get iteration order.

Returns
iteration order used by this mesh
See also
IterationOrder

Definition at line 65 of file rectilinear3d.cpp.

◆ getIterationOrderAsArray()

const char * plask::RectilinearMesh3D::getIterationOrderAsArray ( ) const
inline

Get iteration order as an array, e.g.

[1, 0, 2] is returned for ORDER_102.

Returns
the array of length 3, pointer to static memory

Definition at line 369 of file rectilinear3d.hpp.

◆ hasSameNodes()

bool plask::RectilinearMesh3D::hasSameNodes ( const MeshD< 3 > &  to_compare) const
inlineoverrideprotected

Definition at line 863 of file rectilinear3d.hpp.

◆ index() [1/2]

std::size_t plask::RectilinearMesh3D::index ( const Vec< 3, std::size_t > &  indexes) const
inline

Calculate this mesh index using indexes of axis[0], axis[1] and axis[2].

Parameters
indexesindex of axis[0], axis[1] and axis[2]
Returns
this mesh index, from 0 to size()-1

Definition at line 619 of file rectilinear3d.hpp.

◆ index() [2/2]

std::size_t plask::RectilinearMesh3D::index ( std::size_t  c0_index,
std::size_t  c1_index,
std::size_t  c2_index 
) const
inline

Calculate this mesh index using indexes of c0, c1 and c2.

Parameters
c0_indexindex of c0, from 0 to c0.size()-1
c1_indexindex of c1, from 0 to c1.size()-1
c2_indexindex of c2, from 0 to c2.size()-1
Returns
this mesh index, from 0 to size()-1

Definition at line 610 of file rectilinear3d.hpp.

◆ index0()

std::size_t plask::RectilinearMesh3D::index0 ( std::size_t  mesh_index) const
inline

Calculate index of c0 using this mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of c0, from 0 to c0.size()-1

Definition at line 628 of file rectilinear3d.hpp.

◆ index1()

std::size_t plask::RectilinearMesh3D::index1 ( std::size_t  mesh_index) const
inline

Calculate index of c1 using this mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of c1, from 0 to c1.size()-1

Definition at line 637 of file rectilinear3d.hpp.

◆ index2()

std::size_t plask::RectilinearMesh3D::index2 ( std::size_t  mesh_index) const
inline

Calculate index of c2 using this mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of c2, from 0 to c2.size()-1

Definition at line 646 of file rectilinear3d.hpp.

◆ index_axis()

template<std::size_t axis_nr>
std::size_t plask::RectilinearMesh3D::index_axis ( std::size_t  mesh_index) const
inline

Calculate index of c<axis_nr> using this mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of c<axis_nr>, from 0 to c<axis_nr>.size()-1

Definition at line 656 of file rectilinear3d.hpp.

◆ indexes()

Vec< 3, std::size_t > plask::RectilinearMesh3D::indexes ( std::size_t  mesh_index) const
inline

Calculate indexes of axes.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of axis[0], axis[1], and axis[2]

Definition at line 668 of file rectilinear3d.hpp.

◆ interpolateLinear()

auto plask::RectilinearMesh3D::interpolateLinear ( const RandomAccessContainer data,
const Vec< 3 > &  point,
const InterpolationFlags flags 
) const -> typename std::remove_reference<decltype(data[0])>::type
inline

Calculate (using linear interpolation) value of data in point using data in points describe by this mesh.

Parameters
datavalues of data in points describe by this mesh
pointpoint in which value should be calculate
Returns
interpolated value in point point

Definition at line 802 of file rectilinear3d.hpp.

◆ interpolateNearestNeighbor()

auto plask::RectilinearMesh3D::interpolateNearestNeighbor ( const RandomAccessContainer data,
Vec< 3 >  point,
const InterpolationFlags flags 
) const -> typename std::remove_reference<decltype(data[0])>::type
inline

Calculate (using nearest neighbor interpolation) value of data in point using data in points describe by this mesh.

Parameters
datavalues of data in points describe by this mesh
pointpoint in which value should be calculate
Returns
interpolated value in point point

Definition at line 853 of file rectilinear3d.hpp.

◆ isChangeSlower()

bool plask::RectilinearMesh3D::isChangeSlower ( std::size_t  axis_index1,
std::size_t  axis_index2 
) const
inline

Check if axis with index axis_index1 changes slower than one with index axis_index2 when the mesh is changed by 1.

Parameters
array_index1,array_index2indexes of axes, 0, 1, or 2
Returns
whether axis with index axis_index1 changes slower than one with index axis_index2

Definition at line 391 of file rectilinear3d.hpp.

◆ isLowIndexOfElement()

bool plask::RectilinearMesh3D::isLowIndexOfElement ( std::size_t  meshIndex) const
inline

Check if mesh index is at the bottom, left, front corner of an element.

Parameters
meshIndexmesh index
Returns
true only if meshIndex is at the bottom, left, front corner of an element

Definition at line 760 of file rectilinear3d.hpp.

◆ majorAxis()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::majorAxis ( ) const
inline
Returns
major (changing slowest) axis

Definition at line 474 of file rectilinear3d.hpp.

◆ majorAxisIndex()

std::size_t plask::RectilinearMesh3D::majorAxisIndex ( ) const
inline
Returns
index of major axis

Definition at line 479 of file rectilinear3d.hpp.

◆ majorIndex()

std::size_t plask::RectilinearMesh3D::majorIndex ( std::size_t  mesh_index) const
inline

Calculate index of major axis using given mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of major axis, from 0 to majorAxis.size()-1

Definition at line 677 of file rectilinear3d.hpp.

◆ mediumAxis()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::mediumAxis ( ) const
inline
Returns
middle (between major and minor) axis

Definition at line 486 of file rectilinear3d.hpp.

◆ mediumAxisIndex()

std::size_t plask::RectilinearMesh3D::mediumAxisIndex ( ) const
inline
Returns
index of middle axis

Definition at line 491 of file rectilinear3d.hpp.

◆ middleIndex()

std::size_t plask::RectilinearMesh3D::middleIndex ( std::size_t  mesh_index) const
inline

Calculate index of middle axis using given mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of middle axis, from 0 to mediumAxis.size()-1

Definition at line 686 of file rectilinear3d.hpp.

◆ minorAxis()

const shared_ptr< MeshAxis > plask::RectilinearMesh3D::minorAxis ( ) const
inline
Returns
minor (changing fastes) axis

Definition at line 498 of file rectilinear3d.hpp.

◆ minorAxisIndex()

std::size_t plask::RectilinearMesh3D::minorAxisIndex ( ) const
inline
Returns
index of minor (changing fastes) axis

Definition at line 503 of file rectilinear3d.hpp.

◆ minorIndex()

std::size_t plask::RectilinearMesh3D::minorIndex ( std::size_t  mesh_index) const
inline

Calculate index of minor axis using given mesh index.

Parameters
mesh_indexthis mesh index, from 0 to size()-1
Returns
index of minor axis, from 0 to minorAxis.size()-1

Definition at line 695 of file rectilinear3d.hpp.

◆ operator!=()

bool plask::RectilinearMesh3D::operator!= ( const RectilinearMesh3D to_compare) const
inline

Definition at line 523 of file rectilinear3d.hpp.

◆ operator()()

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

Get point with given x and y indexes.

Parameters
index0index of point in axis0
index1index of point in axis1
index2index of point in axis2
Returns
point with given c0, c1 and c2 indexes

Definition at line 571 of file rectilinear3d.hpp.

◆ operator=() [1/2]

RectilinearMesh3D & plask::RectilinearMesh3D::operator= ( const RectilinearMesh3D src)
inline

Definition at line 438 of file rectilinear3d.hpp.

◆ operator=() [2/2]

RectilinearMesh3D & plask::RectilinearMesh3D::operator= ( RectilinearMesh3D &&  src)
inline

Definition at line 440 of file rectilinear3d.hpp.

◆ operator==()

bool plask::RectilinearMesh3D::operator== ( const RectilinearMesh3D to_compare) const
inline

Compare meshes.

Parameters
to_comparemesh to compare
Returns
true only if this mesh and to_compare represents the same sequence of points

Definition at line 514 of file rectilinear3d.hpp.

◆ operator[]()

Vec< 3, double > plask::RectilinearMesh3D::operator[] ( std::size_t  index) const
inline

Get point with given mesh index.

Points are in order: (c0[0], c1[0], c2[0]), (c0[1], c1[0], c2[0]), ..., (c0[c0.size-1], c1[0], c2[0]), (c0[0], c1[1], c2[0]), ..., (c0[c0.size()-1], c1[c1.size()-1], c2[c2.size()-1])

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

Definition at line 560 of file rectilinear3d.hpp.

◆ reset() [1/2]

void plask::RectilinearMesh3D::reset ( const RectilinearMesh3D src,
bool  clone_axes = false 
)

Change axes and iteration order of this mesh to the ones from src.

Parameters
srcmesh to copy

Definition at line 128 of file rectilinear3d.cpp.

◆ reset() [2/2]

void plask::RectilinearMesh3D::reset ( shared_ptr< MeshAxis mesh0,
shared_ptr< MeshAxis mesh1,
shared_ptr< MeshAxis mesh2,
RectilinearMesh3D::IterationOrder  iterationOrder = ORDER_012 
)

Change axes and iteration order of this mesh.

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

Definition at line 109 of file rectilinear3d.cpp.

◆ setAxis()

void plask::RectilinearMesh3D::setAxis ( std::size_t  axis_nr,
shared_ptr< MeshAxis new_val,
bool  fireResized = true 
)

Change axis.

Parameters
axis_nrnumber of axis to change
new_valnew value for axis
fireResizedwhether to call fireResized()

Definition at line 142 of file rectilinear3d.cpp.

◆ setAxis0()

void plask::RectilinearMesh3D::setAxis0 ( shared_ptr< MeshAxis a0)
inline

Definition at line 454 of file rectilinear3d.hpp.

◆ setAxis1()

void plask::RectilinearMesh3D::setAxis1 ( shared_ptr< MeshAxis a1)
inline

Definition at line 458 of file rectilinear3d.hpp.

◆ setAxis2()

void plask::RectilinearMesh3D::setAxis2 ( shared_ptr< MeshAxis a2)
inline

Definition at line 462 of file rectilinear3d.hpp.

◆ setIterationOrder()

void plask::RectilinearMesh3D::setIterationOrder ( IterationOrder  order)

Choose iteration order.

Parameters
orderiteration order to use
See also
IterationOrder

Definition at line 43 of file rectilinear3d.cpp.

◆ setOptimalIterationOrder()

void plask::RectilinearMesh3D::setOptimalIterationOrder ( )

Set iteration order to the shortest axis changes fastest.

Definition at line 74 of file rectilinear3d.cpp.

◆ size()

std::size_t plask::RectilinearMesh3D::size ( ) const
inlineoverridevirtual

Get number of points in the mesh.

Returns
number of points in the mesh

Implements plask::Mesh.

Definition at line 531 of file rectilinear3d.hpp.

Member Data Documentation

◆ axis

const shared_ptr<MeshAxis> plask::RectilinearMesh3D::axis[3]

First, second and third coordinates of points in this mesh.

Definition at line 310 of file rectilinear3d.hpp.


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