|
dune-geometry 2.10
|
Loading...
Searching...
No Matches
multilineargeometry.hh
Go to the documentation of this file.
3// SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
222 static const bool hasSingleGeometryType = Traits::template hasSingleGeometryType< mydimension >::v;
226 typedef typename std::conditional< hasSingleGeometryType, std::integral_constant< unsigned int, Traits::template hasSingleGeometryType< mydimension >::topologyId >, unsigned int >::type TopologyId;
269 Dune::GeometryType type () const { return GeometryType( toUnsignedInt(topologyId()), mydimension ); }
296 global< false >( topologyId(), std::integral_constant< int, mydimension >(), cit, ctype( 1 ), local, ctype( 1 ), y );
323 MatrixHelper::template xTRightInvA< mydimension, coorddimension >( jacobianTransposed( x ), dglobal, dx );
352 return MatrixHelper::template sqrtDetAAT< mydimension, coorddimension >( jacobianTransposed( local ) );
383 jacobianTransposed< false >( topologyId(), std::integral_constant< int, mydimension >(), cit, ctype( 1 ), local, ctype( 1 ), jt );
454 static bool affine ( TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, JacobianTransposed &jt );
456 static bool affine ( TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, JacobianTransposed &jt );
474 unsigned int topologyId ( std::integral_constant< bool, false > ) const { return refElement().type().id(); }
494 detInv_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jt, static_cast< Base & >( *this ) );
551 CachedMultiLinearGeometry ( const ReferenceElement &referenceElement, const CornerStorage &cornerStorage )
612 MatrixHelper::template xTRightInvA< mydimension, coorddimension >( jacobianTransposed_, global - corner( 0 ), local );
807 jacobianTransposed< add >( topologyId, std::integral_constant< int, dim-1 >(), cit2, df, x, rf*cxn, jt );
809 jacobianTransposed< true >( topologyId, std::integral_constant< int, dim-1 >(), cit2, df, x, rf*xn, jt );
811 global< add >( topologyId, std::integral_constant< int, dim-1 >(), cit, df, x, -rf, jt[ dim-1 ] );
812 global< true >( topologyId, std::integral_constant< int, dim-1 >(), cit, df, x, rf, jt[ dim-1 ] );
858 ctype dfcxn = (cxn > Traits::tolerance() || cxn < -Traits::tolerance()) ? ctype(df / cxn) : ctype(0);
863 global< add >( topologyId, std::integral_constant< int, dim-1 >(), cit, dfcxn, x, -rf, jt[ dim-1 ] );
872 jacobianTransposed< false >( topologyId, std::integral_constant< int, dim-1 >(), cit2, dfcxn, x, rf, jt2 );
885 jacobianTransposed< false >( topologyId, std::integral_constant< int, dim-1 >(), cit2, dfcxn, x, rf, jt );
908 ::affine ( TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, JacobianTransposed &jt )
A unique label for each type of element that can occur in a grid.
An implementation of the Geometry interface for affine geometries.
iterator begin()
size_type dim() const
const GlobalIndex & global() const
LocalIndex & local()
constexpr auto get(std::integer_sequence< T, II... >, std::integral_constant< std::size_t, pos >={})
derived_type & axpy(const field_type &a, const DenseMatrix< Other > &x)
void mtv(const X &x, Y &y) const
size_type size() const
void umtv(const X &x, Y &y) const
constexpr FieldMatrix()=default
static constexpr int rows
FieldMatrix< K, COLS, ROWS > transposed() const
typename Container::ReferenceElement ReferenceElement
The reference element type.
Definition referenceelements.hh:146
default traits class for MultiLinearGeometry
Definition multilineargeometry.hh:39
Impl::FieldMatrixHelper< ct > MatrixHelper
helper structure containing some matrix routines
Definition multilineargeometry.hh:58
static ct tolerance()
tolerance to numerical algorithms
Definition multilineargeometry.hh:61
template specifying the storage for the corners
Definition multilineargeometry.hh:129
std::vector< FieldVector< ct, cdim > > Type
Definition multilineargeometry.hh:130
will there be only one geometry type for a dimension?
Definition multilineargeometry.hh:148
static const unsigned int topologyId
Definition multilineargeometry.hh:150
static const bool v
Definition multilineargeometry.hh:149
generic geometry implementation based on corner coordinates
Definition multilineargeometry.hh:181
static void global(TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, GlobalCoordinate &y)
Definition multilineargeometry.hh:749
static const int mydimension
geometry dimension
Definition multilineargeometry.hh:189
Dune::GeometryType type() const
obtain the name of the reference element
Definition multilineargeometry.hh:269
Traits::MatrixHelper MatrixHelper
Definition multilineargeometry.hh:225
FieldVector< ctype, coorddimension > GlobalCoordinate
type of global coordinates
Definition multilineargeometry.hh:196
static void jacobianTransposed(TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, FieldMatrix< ctype, rows, cdim > &jt)
Definition multilineargeometry.hh:896
JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const
obtain the transposed of the Jacobian
Definition multilineargeometry.hh:377
ReferenceElement refElement() const
Definition multilineargeometry.hh:425
GlobalCoordinate global(const LocalCoordinate &local) const
evaluate the mapping
Definition multilineargeometry.hh:290
GlobalCoordinate center() const
obtain the centroid of the mapping's image
Definition multilineargeometry.hh:282
GlobalCoordinate corner(int i) const
obtain coordinates of the i-th corner
Definition multilineargeometry.hh:275
Dune::ReferenceElements< ctype, mydimension > ReferenceElements
Definition multilineargeometry.hh:214
static void jacobianTransposed(TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, FieldMatrix< ctype, rows, cdim > &jt)
Definition multilineargeometry.hh:794
static const int coorddimension
coordinate dimension
Definition multilineargeometry.hh:191
int corners() const
obtain number of corners of the corresponding reference element
Definition multilineargeometry.hh:272
TopologyId topologyId() const
Definition multilineargeometry.hh:430
friend ReferenceElement referenceElement(const MultiLinearGeometry &geometry)
Definition multilineargeometry.hh:395
LocalCoordinate local(const GlobalCoordinate &globalCoord) const
evaluate the inverse mapping
Definition multilineargeometry.hh:312
static void global(TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, GlobalCoordinate &y)
Definition multilineargeometry.hh:780
Volume volume() const
obtain the volume of the mapping's image
Definition multilineargeometry.hh:363
FieldVector< ctype, mydimension > LocalCoordinate
type of local coordinates
Definition multilineargeometry.hh:194
MultiLinearGeometry(const ReferenceElement &refElement, const Corners &corners)
constructor
Definition multilineargeometry.hh:239
static bool affine(TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, JacobianTransposed &jt)
Definition multilineargeometry.hh:937
std::conditional< hasSingleGeometryType, std::integral_constant< unsignedint, Traits::templatehasSingleGeometryType< mydimension >::topologyId >, unsignedint >::type TopologyId
Definition multilineargeometry.hh:226
static bool affine(TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, JacobianTransposed &jt)
Definition multilineargeometry.hh:908
JacobianInverse jacobianInverse(const LocalCoordinate &local) const
Obtain the Jacobian's inverse.
Definition multilineargeometry.hh:418
MultiLinearGeometry(Dune::GeometryType gt, const Corners &corners)
constructor
Definition multilineargeometry.hh:255
FieldMatrix< ctype, mydimension, coorddimension > JacobianTransposed
type of jacobian transposed
Definition multilineargeometry.hh:201
ReferenceElements::ReferenceElement ReferenceElement
type of reference element
Definition multilineargeometry.hh:219
JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const
obtain the transposed of the Jacobian's inverse
Definition multilineargeometry.hh:738
FieldMatrix< ctype, coorddimension, mydimension > Jacobian
Type for the Jacobian matrix.
Definition multilineargeometry.hh:207
bool affine() const
is this mapping affine?
Definition multilineargeometry.hh:262
FieldMatrix< ctype, mydimension, coorddimension > JacobianInverse
Type for the inverse Jacobian matrix.
Definition multilineargeometry.hh:210
bool affine(JacobianTransposed &jacobianT) const
Definition multilineargeometry.hh:458
Volume integrationElement(const LocalCoordinate &local) const
obtain the integration element
Definition multilineargeometry.hh:350
Jacobian jacobian(const LocalCoordinate &local) const
Obtain the Jacobian.
Definition multilineargeometry.hh:407
Definition multilineargeometry.hh:488
void setup(const JacobianTransposed &jt)
Definition multilineargeometry.hh:492
ctype det() const
Definition multilineargeometry.hh:502
ctype detInv() const
Definition multilineargeometry.hh:503
void setupDeterminant(const JacobianTransposed &jt)
Definition multilineargeometry.hh:497
Implement a MultiLinearGeometry with additional caching.
Definition multilineargeometry.hh:526
GlobalCoordinate global(const LocalCoordinate &local) const
evaluate the mapping
Definition multilineargeometry.hh:580
Base::ReferenceElement ReferenceElement
Definition multilineargeometry.hh:534
bool affine() const
is this mapping affine?
Definition multilineargeometry.hh:567
CachedMultiLinearGeometry(const ReferenceElement &referenceElement, const CornerStorage &cornerStorage)
Definition multilineargeometry.hh:551
ReferenceElement refElement() const
Definition multilineargeometry.hh:425
LocalCoordinate local(const GlobalCoordinate &global) const
evaluate the inverse mapping
Definition multilineargeometry.hh:604
Base::MatrixHelper MatrixHelper
Definition multilineargeometry.hh:531
Base::LocalCoordinate LocalCoordinate
Definition multilineargeometry.hh:541
JacobianInverse jacobianInverse(const LocalCoordinate &local) const
Obtain the Jacobian's inverse.
Definition multilineargeometry.hh:713
JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const
obtain the transposed of the Jacobian
Definition multilineargeometry.hh:666
GlobalCoordinate corner(int i) const
obtain coordinates of the i-th corner
Definition multilineargeometry.hh:275
Volume volume() const
obtain the volume of the mapping's image
Definition multilineargeometry.hh:649
CachedMultiLinearGeometry(Dune::GeometryType gt, const CornerStorage &cornerStorage)
Definition multilineargeometry.hh:559
ctype integrationElement(const LocalCoordinate &local) const
obtain the integration element
Definition multilineargeometry.hh:633
Jacobian jacobian(const LocalCoordinate &local) const
Obtain the Jacobian.
Definition multilineargeometry.hh:702
Base::JacobianInverseTransposed JacobianInverseTransposed
Definition multilineargeometry.hh:546
Base::JacobianTransposed JacobianTransposed
Definition multilineargeometry.hh:545
Base::JacobianInverse JacobianInverse
Definition multilineargeometry.hh:548
Base::Jacobian Jacobian
Definition multilineargeometry.hh:547
Base::GlobalCoordinate GlobalCoordinate
Definition multilineargeometry.hh:542
GlobalCoordinate center() const
obtain the centroid of the mapping's image
Definition multilineargeometry.hh:572
JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const
obtain the transposed of the Jacobian's inverse
Definition multilineargeometry.hh:680
Unique label for each type of entities that can occur in DUNE grids.
Definition type.hh:114
T begin(T... args)
T epsilon(T... args)
T cref(T... args)
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8