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 234 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 242 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 259 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 287 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 294 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 301 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 348 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 323 of file Intrepid2_TensorBasis.hpp.

◆ numBasisComponents()

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

Definition at line 313 of file Intrepid2_TensorBasis.hpp.

◆ numVectorComponents()

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

Definition at line 308 of file Intrepid2_TensorBasis.hpp.

◆ op()

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

Definition at line 330 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 481 of file Intrepid2_TensorBasis.hpp.

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

◆ setRotateXYNinetyDegrees()

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

Definition at line 486 of file Intrepid2_TensorBasis.hpp.

◆ weight()

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

Definition at line 318 of file Intrepid2_TensorBasis.hpp.

Member Data Documentation

◆ numBasisComponents_

ordinal_type Intrepid2::OperatorTensorDecomposition::numBasisComponents_

Definition at line 239 of file Intrepid2_TensorBasis.hpp.

◆ ops

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

Definition at line 237 of file Intrepid2_TensorBasis.hpp.

◆ rotateXYNinetyDegrees_

bool Intrepid2::OperatorTensorDecomposition::rotateXYNinetyDegrees_ = false

Definition at line 240 of file Intrepid2_TensorBasis.hpp.

◆ weights

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

Definition at line 238 of file Intrepid2_TensorBasis.hpp.


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