PLaSK library

Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
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< RectangularMesh3D > | ElementMesh
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< RectangularMeshBase3D > | Boundary
| 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 >, LocalCoords > | const_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, double > | at (std::size_t index0, std::size_t index1, std::size_t index2) const override
| Get point with given mesh indices.
shared_ptr< RectangularMesh3D::ElementMesh > | getElementMesh () 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, double > | getElementMidpoint (std::size_t index0, std::size_t index1, std::size_t index2) const override
| Get point in center of Elements.
Vec< 3, double > | getElementMidpoint (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, double > | at (std::size_t index0, std::size_t index1, std::size_t index2) const=0
| Get point with given mesh indices.
Vec< 3, double > | at (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 char * | getIterationOrderAsArray () const
| Get iteration order as an array, e.g.
const char * | getAxisToIterationOrder () 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`.
RectilinearMesh3D & | operator= (const RectilinearMesh3D &src)
RectilinearMesh3D & | operator= (RectilinearMesh3D &&src)
| ~RectilinearMesh3D ()
void | setAxis (std::size_t axis_nr, shared_ptr< MeshAxis > new_val, bool fireResized=true)
| Change axis.
const shared_ptr< MeshAxis > | getAxis0 () const
void | setAxis0 (shared_ptr< MeshAxis > a0)
const shared_ptr< MeshAxis > | getAxis1 () const
void | setAxis1 (shared_ptr< MeshAxis > a1)
const shared_ptr< MeshAxis > | getAxis2 () const
void | setAxis2 (shared_ptr< MeshAxis > a2)
const shared_ptr< MeshAxis > & | getAxis (size_t n) const
| Get numbered axis.
const shared_ptr< MeshAxis > | majorAxis () const
std::size_t | majorAxisIndex () const
const shared_ptr< MeshAxis > | mediumAxis () const
std::size_t | mediumAxisIndex () const
const shared_ptr< MeshAxis > | minorAxis () 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, double > | at (std::size_t index) const override
| Get point with given mesh index.
Vec< 3, double > | operator[] (std::size_t index) const
| Get point with given mesh index.
Vec< 3, double > | operator() (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 ()
MeshD & | operator= (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< MeshAxis > | axis [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:

- axis0 (alternative names: lon(), ee_z(), rad_r())
- axis1 (alternative names: tran(), ee_x(), rad_phi())
- axis2 (alternative names: vert(), ee_y(), rad_z()) Represent all points (x, y, z) such that x is in axis0, y is in axis1, z is in axis2.

Definition at line 36 of file rectangular3d.hpp.

## Member Typedef Documentation

## ◆ ElementMesh

typedef RectilinearMesh3D::ElementMesh<RectangularMesh3D> plask::RectangularMesh3D::ElementMesh

Definition at line 40 of file rectangular3d.hpp.

## 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

  iterationOrder | iteration 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

  mesh0 | mesh for the first coordinate
  mesh1 | mesh for the second coordinate
  mesh2 | mesh for the third coordinate
  iterationOrder | iteration 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

  src | mesh to copy
  clone_axes | whether 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
| inline override virtual

Get point with given mesh index.

Parameters

  index | index 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
| inline override virtual

Get point with given mesh indices.

Parameters

  index0 | index of point in axis0
  index1 | index of point in axis1
  index2 | index 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

  index0 | index of point in axis0
  index1 | index of point in axis1
  index2 | index 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_index | index 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,index2 | axis 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_index | index 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,index2 | index 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_index | index 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
| inline override virtual

Get point in center of Elements.

Parameters

  index0,index1,index2 | index 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
| override virtual

Write mesh to XML.

Parameters

  object | XML 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:

- plask/mesh/rectangular3d.hpp
- plask/mesh/rectangular3d.cpp