3D element map for an edge as part of a Hexahedron. More...

#include <mappingEdge3D.hh>

Inheritance diagram for concepts::MappingHexahedronEdge3d:
concepts::MappingEdge3d concepts::Map1d concepts::OutputOperator

Public Member Functions

MappingHexahedronEdge3dclone () const override
 Virtual constructor. More...
 
Real3d derivative (const Real t, const uint n=1) const override
 Evaluates the n-th derivative of the edge mapping at the coordinate t. More...
 
MappingHexahedronEdge3dinverse () const override
 Create a heap-allocated copy of this edge with reversed parametrization. More...
 
 MappingHexahedronEdge3d (const MappingHexahedron3d &map, const Real3d xi, const Real3d diff)
 Constructor for an locally straight edge inside the hexahedron. More...
 
 MappingHexahedronEdge3d (const MappingHexahedron3d &map, const uint edge)
 Constructor for an edge as a part of a parent hexahedron. More...
 
 MappingHexahedronEdge3d (const MappingHexahedronEdge3d &other)
 Copy Constructor. More...
 
Real3d operator() (const Real t) const override
 Evaluates the edge mapping at the coordinate t. More...
 
const Real3dvtx (uint i) const
 Returns i-th physical vertex of the edge. More...
 
 ~MappingHexahedronEdge3d () override
 

Protected Member Functions

std::ostream & info (std::ostream &os) const override
 Returns information in an output stream. More...
 

Protected Attributes

std::array< Real3d, 2 > vtx_
 Physical vertices $ \{ F_K(0), F_K(1) \} $. More...
 

Private Member Functions

const Real3d lcoord_ (const Real t) const
 Embedding of local coordinates to parent hexahedron reference domain. More...
 
const Real3d lderiv_ (const Real t) const
 Derivative of the local embedding. More...
 

Private Attributes

Real3d diff_
 
std::unique_ptr< MappingHexahedron3dmap_
 Mapping of the parent hexahedron. More...
 
Real3d xi_
 Vertex and edge vector in hexahedral coordinates. More...
 

Detailed Description

3D element map for an edge as part of a Hexahedron.

Let $ F^p_K $ be the parent hexahedron. Then this element mapping is defined by

\[ F_K(s) = F^p_K(\text{xi} + \text{diff}_ s). \]

If constructed by an edge index, this map chooses xi and diff according to that index as defined by the "standard" orientation in the topology

Todo:
Possibly avoid copying the parent element (switch from unique_ptr to shared_ptr internally)
Author
, Lukas Drescher, 2014

Definition at line 161 of file mappingEdge3D.hh.

Constructor & Destructor Documentation

◆ MappingHexahedronEdge3d() [1/3]

concepts::MappingHexahedronEdge3d::MappingHexahedronEdge3d ( const MappingHexahedron3d map,
const uint  edge 
)

Constructor for an edge as a part of a parent hexahedron.

Possible modification: Reference-count the parent hexahedron mapping

Parameters
mapof the parent hexahedron
edgenumber of edge,

◆ MappingHexahedronEdge3d() [2/3]

concepts::MappingHexahedronEdge3d::MappingHexahedronEdge3d ( const MappingHexahedron3d map,
const Real3d  xi,
const Real3d  diff 
)

Constructor for an locally straight edge inside the hexahedron.

Parameters
mapof the parent hexahedorn
xilocal coordinates of first vertex
diffvector from first to second vertex

◆ MappingHexahedronEdge3d() [3/3]

concepts::MappingHexahedronEdge3d::MappingHexahedronEdge3d ( const MappingHexahedronEdge3d other)

Copy Constructor.

◆ ~MappingHexahedronEdge3d()

concepts::MappingHexahedronEdge3d::~MappingHexahedronEdge3d ( )
inlineoverride

Definition at line 182 of file mappingEdge3D.hh.

Member Function Documentation

◆ clone()

MappingHexahedronEdge3d* concepts::MappingHexahedronEdge3d::clone ( ) const
overridevirtual

Virtual constructor.

Create a heap-allocated copy of this edge.

Returns
Pointer to heap-allocated edge copy. To be deleted by the user.

Implements concepts::MappingEdge3d.

◆ derivative()

Real3d concepts::MappingHexahedronEdge3d::derivative ( const Real  t,
const uint  n = 1 
) const
overridevirtual

Evaluates the n-th derivative of the edge mapping at the coordinate t.

Parameters
norder of the derivative (<= 1 for most concrete types)
Returns
$ F^{(n)}_K(t)$

Implements concepts::MappingEdge3d.

◆ info()

std::ostream& concepts::MappingHexahedronEdge3d::info ( std::ostream &  os) const
overrideprotectedvirtual

Returns information in an output stream.

Reimplemented from concepts::MappingEdge3d.

◆ inverse()

MappingHexahedronEdge3d* concepts::MappingHexahedronEdge3d::inverse ( ) const
overridevirtual

Create a heap-allocated copy of this edge with reversed parametrization.

Returns
Pointer to heap-allocated edge copy. Has to be deleted by the user.

Implements concepts::MappingEdge3d.

◆ lcoord_()

const Real3d concepts::MappingHexahedronEdge3d::lcoord_ ( const Real  t) const
inlineprivate

Embedding of local coordinates to parent hexahedron reference domain.

Definition at line 195 of file mappingEdge3D.hh.

◆ lderiv_()

const Real3d concepts::MappingHexahedronEdge3d::lderiv_ ( const Real  t) const
inlineprivate

Derivative of the local embedding.

Definition at line 199 of file mappingEdge3D.hh.

◆ operator()()

Real3d concepts::MappingHexahedronEdge3d::operator() ( const Real  t) const
overridevirtual

Evaluates the edge mapping at the coordinate t.

Returns
$ F_K(t) $

Implements concepts::MappingEdge3d.

◆ vtx()

const Real3d& concepts::MappingEdge3d::vtx ( uint  i) const
inlineinherited

Returns i-th physical vertex of the edge.

Returns
$ F_K( i ) $

Definition at line 64 of file mappingEdge3D.hh.

Member Data Documentation

◆ diff_

Real3d concepts::MappingHexahedronEdge3d::diff_
private

Definition at line 192 of file mappingEdge3D.hh.

◆ map_

std::unique_ptr<MappingHexahedron3d> concepts::MappingHexahedronEdge3d::map_
private

Mapping of the parent hexahedron.

Definition at line 190 of file mappingEdge3D.hh.

◆ vtx_

std::array<Real3d,2> concepts::MappingEdge3d::vtx_
protectedinherited

Physical vertices $ \{ F_K(0), F_K(1) \} $.

Definition at line 68 of file mappingEdge3D.hh.

◆ xi_

Real3d concepts::MappingHexahedronEdge3d::xi_
private

Vertex and edge vector in hexahedral coordinates.

Definition at line 192 of file mappingEdge3D.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich