|
Panzer
Version of the Day
|
Go to the documentation of this file.
4 #ifndef PANZER_L2_PROJECTION_HPP
5 #define PANZER_L2_PROJECTION_HPP
8 #include "Phalanx_KokkosDeviceTypes.hpp"
11 #include "Tpetra_Map.hpp"
12 #include "Tpetra_CrsMatrix_fwd.hpp"
13 #include "Tpetra_MultiVector_fwd.hpp"
23 class BasisDescriptor;
24 class IntegrationDescriptor;
35 template<
typename LO,
typename GO>
66 const std::vector<std::string>& elementBlockNames,
112 const Teuchos::RCP<
const Tpetra::Map<LO,GO,Kokkos::Compat::KokkosDeviceWrapperNode<PHX::Device>>>& ownedSourceMap,
113 const std::string& sourceFieldName,
115 const int vectorOrGradientDirectionIndex = -1);
Teuchos::RCP< panzer::WorksetContainer > worksetContainer_
panzer::BasisDescriptor targetBasisDescriptor_
L2Projection()
Constructor.
Teuchos::RCP< const Teuchos::MpiComm< int > > comm_
Teuchos::RCP< panzer::UniqueGlobalIndexer< LO, GO > > getTargetGlobalIndexer() const
Returns the target global indexer. Will be null if setup() has not been called.
void setup(const panzer::BasisDescriptor &targetBasis, const panzer::IntegrationDescriptor &integrationDescriptor, const Teuchos::RCP< const Teuchos::MpiComm< int >> &comm, const Teuchos::RCP< const panzer::ConnManager< LO, GO >> &connManager, const std::vector< std::string > &elementBlockNames, const Teuchos::RCP< panzer::WorksetContainer > worksetContainer=Teuchos::null)
Setup base objects for L2 Projections - requires target scalar basis and creates worksets if not supp...
Teuchos::RCP< Tpetra::CrsMatrix< double, LO, GO, Kokkos::Compat::KokkosDeviceWrapperNode< PHX::Device > > > buildRHSMatrix(const panzer::UniqueGlobalIndexer< LO, GO > &sourceDOFManager, const Teuchos::RCP< const Tpetra::Map< LO, GO, Kokkos::Compat::KokkosDeviceWrapperNode< PHX::Device >>> &ownedSourceMap, const std::string &sourceFieldName, const panzer::BasisDescriptor &sourceBasisDescriptor, const int vectorOrGradientDirectionIndex=-1)
Allocates, fills and returns a rectangular matrix for L2 projection of a scalar field,...
Teuchos::RCP< panzer::DOFManager< LO, GO > > targetGlobalIndexer_
Teuchos::RCP< Tpetra::CrsMatrix< double, LO, GO, Kokkos::Compat::KokkosDeviceWrapperNode< PHX::Device > > > buildMassMatrix()
Allocates, fills and returns a mass matrix for L2 projection onto a target basis.
Teuchos::RCP< Tpetra::MultiVector< double, LO, GO, Kokkos::Compat::KokkosDeviceWrapperNode< PHX::Device > > > buildInverseLumpedMassMatrix()
Allocates, fills and returns a Tpetra::MultiVector containing the inverse lumped mass matrix values....
std::vector< std::string > elementBlockNames_
panzer::IntegrationDescriptor integrationDescriptor_
Teuchos::RCP< const panzer::ConnManager< LO, GO > > connManager_
Unified set of tools for building objects for lumped and consistent L2 projects between bases....
Class that provides access to worksets on each element block and side set.