PLaSK library
Loading...
Searching...
No Matches
plask::ExtrudedTriangularMesh3D Struct Reference

3D mesh that is a cartesian product of 2D triangular mesh at long-tran and 1D mesh at vert axis. More...

#include <plask/mesh/extruded_triangular3d.hpp>

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

Classes

struct  Element
 Represent FEM-like element (right triangular prism) in ExtrudedTriangularMesh3D. More...
 
class  ElementMesh
 
class  Elements
 Wrapper to ExtrudedTriangularMesh3D which allows for accessing FEM-like elements. More...
 

Public Types

typedef plask::Boundary< ExtrudedTriangularMesh3DBoundary
 
- 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

shared_ptr< ElementMeshgetElementMesh () const
 Return a mesh that enables iterating over middle points of the rectangles.
 
Elements elements () const
 Accessor to FEM-like elements.
 
Elements getElements () const
 
Element element (std::size_t elementIndex) const
 Get an element with a given index elementIndex.
 
Element getElement (std::size_t elementIndex) const
 
Vec< 3, doubleat (std::size_t index) const override
 Get point with given mesh index.
 
std::size_t size () const override
 
bool empty () const override
 
void writeXML (XMLElement &object) const override
 Write mesh to XML.
 
Vec< 3, doubleat (std::size_t longTranIndex, std::size_t vertIndex) const
 Get coordinates of node pointed by given indexes (longTranIndex and vertIndex).
 
std::size_t index (std::size_t longTranIndex, std::size_t vertIndex) const
 Calculate index of this mesh using indexes of embedded meshes.
 
std::pair< std::size_t, std::size_t > longTranAndVertIndices (std::size_t index) const
 Calculate indexes of embedded meshes from index of this mesh.
 
std::size_t vertIndex (std::size_t index) const
 Calculate index of vertAxis from index of this mesh.
 
std::size_t elementIndex (std::size_t longTranElementIndex, std::size_t vertElementIndex) const
 Calculate element index of this mesh using element indexes of embedded meshes.
 
std::size_t getElementsCount () const
 Get number of elements in this mesh.
 
bool operator== (const ExtrudedTriangularMesh3D &to_compare) const
 
bool operator!= (const ExtrudedTriangularMesh3D &to_compare) const
 
- 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 ()
 

Static Public Member Functions

static Boundary getBackBoundary ()
 
static Boundary getFrontBoundary ()
 
static Boundary getLeftBoundary ()
 
static Boundary getRightBoundary ()
 
static Boundary getBottomBoundary ()
 
static Boundary getTopBoundary ()
 
static Boundary getAllSidesBoundary ()
 
static Boundary getBackOfBoundary (const Box3D &box)
 
static Boundary getFrontOfBoundary (const Box3D &box)
 
static Boundary getLeftOfBoundary (const Box3D &box)
 
static Boundary getRightOfBoundary (const Box3D &box)
 
static Boundary getBottomOfBoundary (const Box3D &box)
 
static Boundary getTopOfBoundary (const Box3D &box)
 
static Boundary getAllSidesOfBoundary (const Box3D &box)
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getBackOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getFrontOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getLeftOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getRightOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getAllSidesBoundaryIn (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getAllSidesBoundaryIn (shared_ptr< const GeometryObject > object)
 
static Boundary getAllSidesBoundaryIn (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getTopOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object, const PathHints &path)
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object)
 
static Boundary getBottomOfBoundary (shared_ptr< const GeometryObject > object, const PathHints *path)
 

Public Attributes

TriangularMesh2D longTranMesh
 
shared_ptr< MeshAxisvertAxis
 
bool vertFastest
 Iteration order, if true vert axis is changed the fastest, else it is changed the slowest.
 
- 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.
 

Detailed Description

3D mesh that is a cartesian product of 2D triangular mesh at long-tran and 1D mesh at vert axis.

Definition at line 28 of file extruded_triangular3d.hpp.

Member Typedef Documentation

◆ Boundary

Member Function Documentation

◆ at() [1/2]

Vec< 3, double > plask::ExtrudedTriangularMesh3D::at ( std::size_t  index) const
overridevirtual

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 69 of file extruded_triangular3d.cpp.

◆ at() [2/2]

Vec< 3, double > plask::ExtrudedTriangularMesh3D::at ( std::size_t  longTranIndex,
std::size_t  vertIndex 
) const

Get coordinates of node pointed by given indexes (longTranIndex and vertIndex).

Parameters
longTranIndexindex of longTranMesh
vertIndexindex of vertAxis
Returns
the coordinates of node

Definition at line 114 of file extruded_triangular3d.cpp.

◆ element()

Element plask::ExtrudedTriangularMesh3D::element ( std::size_t  elementIndex) const
inline

Get an element with a given index elementIndex.

Parameters
elementIndexindex of the element
Returns
the element

Definition at line 190 of file extruded_triangular3d.hpp.

◆ elementIndex()

std::size_t plask::ExtrudedTriangularMesh3D::elementIndex ( std::size_t  longTranElementIndex,
std::size_t  vertElementIndex 
) const
inline

Calculate element index of this mesh using element indexes of embedded meshes.

Parameters
longTranIndexindex of longTranMesh element
vertIndexindex of vertAxis element
Returns
the element index of this mesh

Definition at line 242 of file extruded_triangular3d.hpp.

◆ elements()

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

Accessor to FEM-like elements.

Definition at line 181 of file extruded_triangular3d.hpp.

◆ empty()

bool plask::ExtrudedTriangularMesh3D::empty ( ) const
overridevirtual
Returns
true only if mesh is empty (there are no points in mesh)

Reimplemented from plask::Mesh.

Definition at line 83 of file extruded_triangular3d.cpp.

◆ getAllSidesBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getAllSidesBoundary ( )
static

Definition at line 306 of file extruded_triangular3d.cpp.

◆ getAllSidesBoundaryIn() [1/3]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getAllSidesBoundaryIn ( shared_ptr< const GeometryObject object)
static

Definition at line 374 of file extruded_triangular3d.cpp.

◆ getAllSidesBoundaryIn() [2/3]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getAllSidesBoundaryIn ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 371 of file extruded_triangular3d.cpp.

◆ getAllSidesBoundaryIn() [3/3]

static Boundary plask::ExtrudedTriangularMesh3D::getAllSidesBoundaryIn ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 541 of file extruded_triangular3d.hpp.

◆ getAllSidesOfBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getAllSidesOfBoundary ( const Box3D box)
static

Definition at line 338 of file extruded_triangular3d.cpp.

◆ getBackBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBackBoundary ( )
static

Definition at line 276 of file extruded_triangular3d.cpp.

◆ getBackOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBackOfBoundary ( const Box3D box)
static

Definition at line 310 of file extruded_triangular3d.cpp.

◆ getBackOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBackOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 346 of file extruded_triangular3d.cpp.

◆ getBackOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBackOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 343 of file extruded_triangular3d.cpp.

◆ getBackOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getBackOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 517 of file extruded_triangular3d.hpp.

◆ getBottomBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBottomBoundary ( )
static

Definition at line 292 of file extruded_triangular3d.cpp.

◆ getBottomOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBottomOfBoundary ( const Box3D box)
static

Definition at line 326 of file extruded_triangular3d.cpp.

◆ getBottomOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBottomOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 396 of file extruded_triangular3d.cpp.

◆ getBottomOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getBottomOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 390 of file extruded_triangular3d.cpp.

◆ getBottomOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getBottomOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 553 of file extruded_triangular3d.hpp.

◆ getElement()

Element plask::ExtrudedTriangularMesh3D::getElement ( std::size_t  elementIndex) const
inline

Definition at line 191 of file extruded_triangular3d.hpp.

◆ getElementMesh()

shared_ptr< ElementMesh > plask::ExtrudedTriangularMesh3D::getElementMesh ( ) const
inline

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

Returns
the mesh

Definition at line 178 of file extruded_triangular3d.hpp.

◆ getElements()

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

Definition at line 182 of file extruded_triangular3d.hpp.

◆ getElementsCount()

std::size_t plask::ExtrudedTriangularMesh3D::getElementsCount ( ) const
inline

Get number of elements in this mesh.

Returns
number of elements

Definition at line 252 of file extruded_triangular3d.hpp.

◆ getFrontBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getFrontBoundary ( )
static

Definition at line 280 of file extruded_triangular3d.cpp.

◆ getFrontOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getFrontOfBoundary ( const Box3D box)
static

Definition at line 314 of file extruded_triangular3d.cpp.

◆ getFrontOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getFrontOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 353 of file extruded_triangular3d.cpp.

◆ getFrontOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getFrontOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 350 of file extruded_triangular3d.cpp.

◆ getFrontOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getFrontOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 523 of file extruded_triangular3d.hpp.

◆ getLeftBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getLeftBoundary ( )
static

Definition at line 284 of file extruded_triangular3d.cpp.

◆ getLeftOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getLeftOfBoundary ( const Box3D box)
static

Definition at line 318 of file extruded_triangular3d.cpp.

◆ getLeftOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getLeftOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 360 of file extruded_triangular3d.cpp.

◆ getLeftOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getLeftOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 357 of file extruded_triangular3d.cpp.

◆ getLeftOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getLeftOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 529 of file extruded_triangular3d.hpp.

◆ getRightBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getRightBoundary ( )
static

Definition at line 288 of file extruded_triangular3d.cpp.

◆ getRightOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getRightOfBoundary ( const Box3D box)
static

Definition at line 322 of file extruded_triangular3d.cpp.

◆ getRightOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getRightOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 367 of file extruded_triangular3d.cpp.

◆ getRightOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getRightOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 364 of file extruded_triangular3d.cpp.

◆ getRightOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getRightOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 535 of file extruded_triangular3d.hpp.

◆ getTopBoundary()

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getTopBoundary ( )
static

Definition at line 299 of file extruded_triangular3d.cpp.

◆ getTopOfBoundary() [1/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getTopOfBoundary ( const Box3D box)
static

Definition at line 332 of file extruded_triangular3d.cpp.

◆ getTopOfBoundary() [2/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getTopOfBoundary ( shared_ptr< const GeometryObject object)
static

Definition at line 384 of file extruded_triangular3d.cpp.

◆ getTopOfBoundary() [3/4]

ExtrudedTriangularMesh3D::Boundary plask::ExtrudedTriangularMesh3D::getTopOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
static

Definition at line 378 of file extruded_triangular3d.cpp.

◆ getTopOfBoundary() [4/4]

static Boundary plask::ExtrudedTriangularMesh3D::getTopOfBoundary ( shared_ptr< const GeometryObject object,
const PathHints path 
)
inlinestatic

Definition at line 547 of file extruded_triangular3d.hpp.

◆ hasSameNodes()

bool plask::ExtrudedTriangularMesh3D::hasSameNodes ( const MeshD< 3 > &  to_compare) const
overrideprotected

Definition at line 140 of file extruded_triangular3d.cpp.

◆ index()

std::size_t plask::ExtrudedTriangularMesh3D::index ( std::size_t  longTranIndex,
std::size_t  vertIndex 
) const
inline

Calculate index of this mesh using indexes of embedded meshes.

Parameters
longTranIndexindex of longTranMesh
vertIndexindex of vertAxis
Returns
the index of this mesh

Definition at line 216 of file extruded_triangular3d.hpp.

◆ longTranAndVertIndices()

std::pair< std::size_t, std::size_t > plask::ExtrudedTriangularMesh3D::longTranAndVertIndices ( std::size_t  index) const

Calculate indexes of embedded meshes from index of this mesh.

Parameters
indexindex of this mesh
Returns
a pair: (index of longTranMesh, index of vertAxis)

Definition at line 118 of file extruded_triangular3d.cpp.

◆ operator!=()

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

Definition at line 259 of file extruded_triangular3d.hpp.

◆ operator==()

bool plask::ExtrudedTriangularMesh3D::operator== ( const ExtrudedTriangularMesh3D to_compare) const

Definition at line 132 of file extruded_triangular3d.cpp.

◆ size()

std::size_t plask::ExtrudedTriangularMesh3D::size ( ) const
overridevirtual
Returns
number of points in mesh

Implements plask::Mesh.

Definition at line 79 of file extruded_triangular3d.cpp.

◆ vertIndex()

std::size_t plask::ExtrudedTriangularMesh3D::vertIndex ( std::size_t  index) const

Calculate index of vertAxis from index of this mesh.

Parameters
indexindex of this mesh
Returns
the index of vertAxis

Definition at line 128 of file extruded_triangular3d.cpp.

◆ writeXML()

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

Write mesh to XML.

Parameters
objectXML object to write to

Reimplemented from plask::Mesh.

Definition at line 87 of file extruded_triangular3d.cpp.

Member Data Documentation

◆ longTranMesh

TriangularMesh2D plask::ExtrudedTriangularMesh3D::longTranMesh

Definition at line 32 of file extruded_triangular3d.hpp.

◆ vertAxis

shared_ptr<MeshAxis> plask::ExtrudedTriangularMesh3D::vertAxis

Definition at line 34 of file extruded_triangular3d.hpp.

◆ vertFastest

bool plask::ExtrudedTriangularMesh3D::vertFastest

Iteration order, if true vert axis is changed the fastest, else it is changed the slowest.

Definition at line 37 of file extruded_triangular3d.hpp.


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