#include <FEBasisOperations.h>


Public Types | |
| using | ValueTypeUnion = typename BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::ValueTypeUnion |
| using | StorageUnion = typename BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::StorageUnion |
| using | StorageBasis = typename BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >::StorageBasis |
Public Types inherited from dftefe::basis::BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace > | |
| using | ValueTypeUnion = linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData > |
| using | StorageBasis = dftefe::utils::MemoryStorage< ValueTypeBasisData, memorySpace > |
| using | StorageUnion = dftefe::utils::MemoryStorage< ValueTypeUnion, memorySpace > |
Public Member Functions | |
| FEBasisOperations (std::shared_ptr< const BasisDataStorage< ValueTypeBasisData, memorySpace > > basisDataStorage, const size_type maxCellBlockSize, const size_type maxFieldBlockSize=0) | |
| void | reinit (const size_type maxCellBlockSize, const size_type maxFieldBlockSize=0) |
| ~FEBasisOperations ()=default | |
| void | interpolate (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &quadValuesContainer) const override |
| void | interpolateWithBasisGradient (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &quadValuesContainer) const override |
| void | interpolateWithBasisGradient (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, const std::pair< size_type, size_type > cellRange, linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData > *quadValuesInCellRangePtr) const |
| void | integrateWithBasisValues (const quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &inp, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData) const override |
| void | interpolate (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, const std::pair< size_type, size_type > cellRange, linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData > *quadValuesInCellRangePtr) const |
| void | computeFEMatrices (realspace::LinearLocalOp L1, realspace::VectorMathOp Op1, const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > &f, realspace::VectorMathOp L2, realspace::LinearLocalOp Op2, StorageUnion &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
| void | computeFEMatrices (const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > &f, realspace::VectorMathOp Op12, realspace::LinearLocalOp L12, StorageUnion &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
| void | computeFEMatrices (realspace::LinearLocalOp L1, realspace::VectorMathOp Op1, realspace::LinearLocalOp L2, StorageBasis &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
Public Member Functions inherited from dftefe::basis::BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace > | |
| virtual | ~BasisOperations ()=default |
| virtual void | interpolate (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &quadValuesContainer) const =0 |
| virtual void | interpolateWithBasisGradient (const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &quadValuesContainer) const =0 |
| virtual void | integrateWithBasisValues (const quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData >, memorySpace > &inp, const BasisManager< ValueTypeBasisCoeff, memorySpace > &basisManager, linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData) const =0 |
Private Member Functions | |
| void | deleteScratch () const |
| void | BasisWeakFormKernelWithField (realspace::LinearLocalOp L1, realspace::VectorMathOp Op1, const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > &f, realspace::VectorMathOp Op2, realspace::LinearLocalOp L2, std::shared_ptr< const FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, const size_type cellBlockSize, StorageUnion &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
| void | BasisWeakFormKernelWithField (const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > &f, realspace::VectorMathOp Op12, realspace::LinearLocalOp L12, std::shared_ptr< const FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, const size_type cellBlockSize, StorageUnion &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
| void | BasisWeakFormKernel (realspace::LinearLocalOp L1, realspace::VectorMathOp Op1, realspace::LinearLocalOp L2, std::shared_ptr< const FEBasisDataStorage< ValueTypeBasisData, memorySpace > > feBasisDataStorage, const size_type cellBlockSize, StorageBasis &cellWiseFEData, linearAlgebra::LinAlgOpContext< memorySpace > &linAlgOpContext) const |
Private Attributes | |
| std::shared_ptr< const FEBasisDataStorage< ValueTypeBasisData, memorySpace > > | d_feBasisDataStorage |
| size_type | d_maxCellBlock |
| size_type | d_maxFieldBlock |
| StorageBasis | d_basisDataInCellRange |
| StorageBasis | d_basisGradientDataInCellRange |
| StorageBasis | d_JxWxNBlock |
| StorageBasis | d_JxWxGradNBlock |
| StorageUnion | d_fieldCellValues |
| StorageUnion | d_fxJxWxNBlock |
| std::pair< size_type, size_type > | d_cellRangeForBasisDataCache |
| bool | d_isBasisDataCellRangeCached |
| std::pair< size_type, size_type > | d_cellRangeForBasisGradientDataCache |
| bool | d_isBasisGradientDataCellRangeCached |
| std::vector< size_type > | d_numCellDofs |
| std::vector< size_type > | d_numCellQuad |
| const FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim > * | d_feBasisDofHandler |
| size_type | d_maxDofInCell |
| size_type | d_maxQuadInCell |
| size_type | d_numLocallyOwnedCells |
| bool | d_variableDofsPerCell |
| bool | d_sameQuadRuleInAllCells |
| std::shared_ptr< const quadrature::QuadratureRuleContainer > | d_quadratureRuleContainer |
An abstract class to handle interactions between a basis and a field (e.g., integration of field with basis).
| using dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::StorageBasis = typename BasisOperations<ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace>::StorageBasis |
| using dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::StorageUnion = typename BasisOperations<ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace>::StorageUnion |
| using dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::ValueTypeUnion = typename BasisOperations<ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace>::ValueTypeUnion |
| dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::FEBasisOperations | ( | std::shared_ptr< const BasisDataStorage< ValueTypeBasisData, memorySpace > > | basisDataStorage, |
| const size_type | maxCellBlockSize, | ||
| const size_type | maxFieldBlockSize = 0 |
||
| ) |

|
default |
|
private |
— Storages ------—
— Storages ------—

|
private |
— Storages ------—
— Storages ------—

|
private |
— Storages ------—
— Storages ------—

| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::computeFEMatrices | ( | const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > & | f, |
| realspace::VectorMathOp | Op12, | ||
| realspace::LinearLocalOp | L12, | ||
| StorageUnion & | cellWiseFEData, | ||
| linearAlgebra::LinAlgOpContext< memorySpace > & | linAlgOpContext | ||
| ) | const |

| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::computeFEMatrices | ( | realspace::LinearLocalOp | L1, |
| realspace::VectorMathOp | Op1, | ||
| const quadrature::QuadratureValuesContainer< ValueTypeUnion, memorySpace > & | f, | ||
| realspace::VectorMathOp | L2, | ||
| realspace::LinearLocalOp | Op2, | ||
| StorageUnion & | cellWiseFEData, | ||
| linearAlgebra::LinAlgOpContext< memorySpace > & | linAlgOpContext | ||
| ) | const |


| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::computeFEMatrices | ( | realspace::LinearLocalOp | L1, |
| realspace::VectorMathOp | Op1, | ||
| realspace::LinearLocalOp | L2, | ||
| StorageBasis & | cellWiseFEData, | ||
| linearAlgebra::LinAlgOpContext< memorySpace > & | linAlgOpContext | ||
| ) | const |
|
private |
|
overridevirtual |
— Storages ------—
— Storages ------—
Implements dftefe::basis::BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >.


| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::interpolate | ( | const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & | vectorData, |
| const BasisManager< ValueTypeBasisCoeff, memorySpace > & | basisManager, | ||
| const std::pair< size_type, size_type > | cellRange, | ||
| linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData > * | quadValuesInCellRangePtr | ||
| ) | const |
— Storages ------—
— Storages ------—

|
overridevirtual |
— Storages ------—
— Storages ------—
Implements dftefe::basis::BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >.

| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::interpolateWithBasisGradient | ( | const linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > & | vectorData, |
| const BasisManager< ValueTypeBasisCoeff, memorySpace > & | basisManager, | ||
| const std::pair< size_type, size_type > | cellRange, | ||
| linearAlgebra::blasLapack::scalar_type< ValueTypeBasisCoeff, ValueTypeBasisData > * | quadValuesInCellRangePtr | ||
| ) | const |
— Storages ------—
— Storages ------—

|
overridevirtual |
— Storages ------—
— Storages ------—
Implements dftefe::basis::BasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace >.

| void dftefe::basis::FEBasisOperations< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim >::reinit | ( | const size_type | maxCellBlockSize, |
| const size_type | maxFieldBlockSize = 0 |
||
| ) |

|
mutableprivate |
—temporary scratch spaces--—
|
private |
|
mutableprivate |
|
mutableprivate |
|
private |
|
private |
|
mutableprivate |
|
private |
|
mutableprivate |
|
mutableprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
—temporary scratch spaces--—
|
private |
|
private |
|
private |
|
private |
|
private |