Intrepid2
Public Member Functions | Public Attributes | List of all members
Intrepid2::OperatorTensorDecomposition Struct Reference

For a multi-component tensor basis, specifies the operators to be applied to the components to produce the composite operator on the tensor basis. More...

#include <Intrepid2_TensorBasis.hpp>

Public Member Functions

 OperatorTensorDecomposition (const std::vector< EOperator > &opsBasis1, const std::vector< EOperator > &opsBasis2, const std::vector< double > vectorComponentWeights)
 
 OperatorTensorDecomposition (const std::vector< std::vector< EOperator > > &vectorEntryOps, const std::vector< double > &vectorComponentWeights)
 
 OperatorTensorDecomposition (const std::vector< EOperator > &basisOps, const double weight=1.0)
 
 OperatorTensorDecomposition (const EOperator &opBasis1, const EOperator &opBasis2, double weight=1.0)
 
 OperatorTensorDecomposition (const EOperator &opBasis1, const EOperator &opBasis2, const EOperator &opBasis3, double weight=1.0)
 
ordinal_type numVectorComponents () const
 
ordinal_type numBasisComponents () const
 
double weight (const ordinal_type &vectorComponentOrdinal) const
 
bool identicallyZeroComponent (const ordinal_type &vectorComponentOrdinal) const
 
EOperator op (const ordinal_type &vectorComponentOrdinal, const ordinal_type &basisOrdinal) const
 
template<typename DeviceType , typename OutputValueType , class PointValueType >
OperatorTensorDecomposition expandedDecomposition (std::vector< Teuchos::RCP< Basis< DeviceType, OutputValueType, PointValueType > > > &bases)
 takes as argument bases that are components in this decomposition, and decomposes them further if they are tensor bases. Returns a fully expanded decomposition.
 
bool rotateXYNinetyDegrees () const
 If true, this flag indicates that a vector component that spans the first two dimensions should be rotated by 90 degrees clockwise, mapping (x,y) to (-y,x). If there is no such vector component, the flag should be ignored. As of this writing, this is used only by the "derived" H(curl) basis on the wedge.
 
void setRotateXYNinetyDegrees (const bool &value)
 

Public Attributes

std::vector< std::vector< EOperator > > ops
 
std::vector< double > weights
 
ordinal_type numBasisComponents_
 
bool rotateXYNinetyDegrees_ = false
 

Detailed Description

For a multi-component tensor basis, specifies the operators to be applied to the components to produce the composite operator on the tensor basis.

Definition at line 200 of file Intrepid2_TensorBasis.hpp.

Constructor & Destructor Documentation

◆ OperatorTensorDecomposition() [1/5]

Intrepid2::OperatorTensorDecomposition::OperatorTensorDecomposition ( const std::vector< EOperator > &  opsBasis1,
const std::vector< EOperator > &  opsBasis2,
const std::vector< double >  vectorComponentWeights 
)
inline

Definition at line 208 of file Intrepid2_TensorBasis.hpp.

◆ OperatorTensorDecomposition() [2/5]

Intrepid2::OperatorTensorDecomposition::OperatorTensorDecomposition ( const std::vector< std::vector< EOperator > > &  vectorEntryOps,
const std::vector< double > &  vectorComponentWeights 
)
inline

Definition at line 225 of file Intrepid2_TensorBasis.hpp.

◆ OperatorTensorDecomposition() [3/5]

Intrepid2::OperatorTensorDecomposition::OperatorTensorDecomposition ( const std::vector< EOperator > &  basisOps,
const double  weight = 1.0 
)
inline

Definition at line 253 of file Intrepid2_TensorBasis.hpp.

◆ OperatorTensorDecomposition() [4/5]

Intrepid2::OperatorTensorDecomposition::OperatorTensorDecomposition ( const EOperator &  opBasis1,
const EOperator &  opBasis2,
double  weight = 1.0 
)
inline

Definition at line 260 of file Intrepid2_TensorBasis.hpp.

◆ OperatorTensorDecomposition() [5/5]

Intrepid2::OperatorTensorDecomposition::OperatorTensorDecomposition ( const EOperator &  opBasis1,
const EOperator &  opBasis2,
const EOperator &  opBasis3,
double  weight = 1.0 
)
inline

Definition at line 267 of file Intrepid2_TensorBasis.hpp.

Member Function Documentation

◆ expandedDecomposition()

template<typename DeviceType , typename OutputValueType , class PointValueType >
OperatorTensorDecomposition Intrepid2::OperatorTensorDecomposition::expandedDecomposition ( std::vector< Teuchos::RCP< Basis< DeviceType, OutputValueType, PointValueType > > > &  bases)
inline

takes as argument bases that are components in this decomposition, and decomposes them further if they are tensor bases. Returns a fully expanded decomposition.

Definition at line 314 of file Intrepid2_TensorBasis.hpp.

Referenced by Intrepid2::Basis_TensorBasis< BasisBaseClass >::getOperatorDecomposition(), and Intrepid2::Basis_TensorBasis3< BasisBaseClass >::getOperatorDecomposition().

◆ identicallyZeroComponent()

bool Intrepid2::OperatorTensorDecomposition::identicallyZeroComponent ( const ordinal_type &  vectorComponentOrdinal) const
inline

Definition at line 289 of file Intrepid2_TensorBasis.hpp.

◆ numBasisComponents()

ordinal_type Intrepid2::OperatorTensorDecomposition::numBasisComponents ( ) const
inline

Definition at line 279 of file Intrepid2_TensorBasis.hpp.

◆ numVectorComponents()

ordinal_type Intrepid2::OperatorTensorDecomposition::numVectorComponents ( ) const
inline

Definition at line 274 of file Intrepid2_TensorBasis.hpp.

◆ op()

EOperator Intrepid2::OperatorTensorDecomposition::op ( const ordinal_type &  vectorComponentOrdinal,
const ordinal_type &  basisOrdinal 
) const
inline

Definition at line 296 of file Intrepid2_TensorBasis.hpp.

◆ rotateXYNinetyDegrees()

bool Intrepid2::OperatorTensorDecomposition::rotateXYNinetyDegrees ( ) const
inline

If true, this flag indicates that a vector component that spans the first two dimensions should be rotated by 90 degrees clockwise, mapping (x,y) to (-y,x). If there is no such vector component, the flag should be ignored. As of this writing, this is used only by the "derived" H(curl) basis on the wedge.

Definition at line 447 of file Intrepid2_TensorBasis.hpp.

Referenced by Intrepid2::Basis_TensorBasis< BasisBaseClass >::getValues().

◆ setRotateXYNinetyDegrees()

void Intrepid2::OperatorTensorDecomposition::setRotateXYNinetyDegrees ( const bool &  value)
inline

Definition at line 452 of file Intrepid2_TensorBasis.hpp.

◆ weight()

double Intrepid2::OperatorTensorDecomposition::weight ( const ordinal_type &  vectorComponentOrdinal) const
inline

Definition at line 284 of file Intrepid2_TensorBasis.hpp.

Member Data Documentation

◆ numBasisComponents_

ordinal_type Intrepid2::OperatorTensorDecomposition::numBasisComponents_

Definition at line 205 of file Intrepid2_TensorBasis.hpp.

◆ ops

std::vector< std::vector<EOperator> > Intrepid2::OperatorTensorDecomposition::ops

Definition at line 203 of file Intrepid2_TensorBasis.hpp.

◆ rotateXYNinetyDegrees_

bool Intrepid2::OperatorTensorDecomposition::rotateXYNinetyDegrees_ = false

Definition at line 206 of file Intrepid2_TensorBasis.hpp.

◆ weights

std::vector<double> Intrepid2::OperatorTensorDecomposition::weights

Definition at line 204 of file Intrepid2_TensorBasis.hpp.


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