44 #ifndef PANZER_WORKSET_HPP 
   45 #define PANZER_WORKSET_HPP 
   61 #include "Phalanx_KokkosDeviceTypes.hpp" 
   67   struct LocalMeshPartition;
 
   69   class SubcellConnectivity;
 
   79     typedef std::size_t 
GO;
 
   93                     const Kokkos::View<double***,PHX::Device> & cell_vertices,
 
  108     std::vector<Teuchos::RCP<panzer::IntegrationValues2<double> > > 
int_rules;
 
  116     std::vector<Teuchos::RCP< panzer::BasisValues2<double> > > 
bases;
 
  169     std::map<size_t,Teuchos::RCP<const panzer::IntegrationValues2<double> > > 
_integrator_map;
 
  172     std::map<size_t,std::map<size_t,Teuchos::RCP<panzer::BasisValues2<double> > > > 
_basis_map;
 
  175     std::map<size_t,Teuchos::RCP<const panzer::PointValues2<double> > > 
_point_map;
 
std::map< size_t, std::map< size_t, Teuchos::RCP< panzer::BasisValues2< double > > > > _basis_map
 
std::map< size_t, Teuchos::RCP< const panzer::IntegrationRule > > _integration_rule_map
 
std::size_t getIdentifier() const 
Get the unique identifier for this workset, this is not an index! 
 
void setDetailsIndex(const int di)
An evaluator builder sets the details index. 
 
bool nonnull(const std::shared_ptr< T > &p)
 
void setIdentifier(std::size_t identifier)
Set the unique identifier for this workset, this is not an index! 
 
bool evaluate_transient_terms
 
Teuchos::RCP< std::vector< int > > ir_degrees
If workset corresponds to a sub cell, what is the index? 
 
panzer::BasisValues2< double > & getBasisValues(const panzer::BasisDescriptor &basis_description, const panzer::IntegrationDescriptor &integration_description)
Grab the basis values for a given basis description and integration description (throws error if it d...
 
std::vector< Teuchos::RCP< panzer::BasisValues2< double > > > bases
Static basis function data, key is basis name, value is index in the static_bases vector...
 
Teuchos::RCP< std::vector< std::string > > basis_names
Value corresponds to basis type. Use the offest for indexing. 
 
int numOwnedCells() const 
Number of cells owned by this workset. 
 
void setup(const panzer::LocalMeshPartition &partition, const panzer::WorksetNeeds &needs)
Constructs the workset details from a given chunk of the mesh. 
 
std::map< size_t, Teuchos::RCP< const panzer::PureBasis > > _pure_basis_map
 
int numGhostCells() const 
Number of cells owned by a different workset. 
 
CellCoordArray cell_vertex_coordinates
 
double alpha
If workset corresponds to a sub cell, what is the dimension? 
 
Workset(std::size_t identifier)
Constructor that that requires a unique identifier. 
 
const panzer::IntegrationValues2< double > & getIntegrationValues(const panzer::IntegrationDescriptor &description) const 
Grab the integration values for a given integration description (throws error if integration doesn't ...
 
std::map< size_t, Teuchos::RCP< const panzer::PointRule > > _point_rule_map
 
void setupNeeds(Teuchos::RCP< const shards::CellTopology > cell_topology, const Kokkos::View< double ***, PHX::Device > &cell_vertices, const panzer::WorksetNeeds &needs)
 
const panzer::PureBasis & getBasis(const panzer::BasisDescriptor &description) const 
Grab the pure basis (contains data layouts) for a given basis description (throws error if integratio...
 
Teuchos::RCP< panzer::SubcellConnectivity > _face_connectivity
 
Teuchos::RCP< WorksetDetails > other
 
PHX::MDField< double, Cell, NODE, Dim > CellCoordArray
 
std::map< size_t, Teuchos::RCP< const panzer::IntegrationValues2< double > > > _integrator_map
 
void setNumberOfCells(int o_cells, int g_cells, int v_cells)
Provides access to set numbers of cells (required for backwards compatibility) 
 
WorksetDetailsAccessor()
Default value is 0, which is backwards compatible. 
 
std::vector< Teuchos::RCP< panzer::IntegrationValues2< double > > > int_rules
 
std::vector< double > gather_seeds
 
size_t numDetails() const 
Return the number of WorksetDetails this Workset holds. 
 
const WorksetDetails & operator()(const Workset &workset) const 
const accessor. 
 
WorksetDetails & operator()(const int i)
op(0) return *this; op(1) returns *other. 
 
const WorksetDetails & details(const int i) const 
 
WorksetDetails()
Default constructor. 
 
const panzer::IntegrationRule & getIntegrationRule(const panzer::IntegrationDescriptor &description) const 
Grab the integration rule (contains data layouts) for a given integration description (throws error i...
 
int getDetailsIndex() const 
 
Kokkos::View< const int *, PHX::Device > cell_local_ids_k
 
std::ostream & operator<<(std::ostream &os, const AssemblyEngineInArgs &in)
 
WorksetDetails & details(const int i)
Convenience wrapper to operator() for pointer access. 
 
std::map< size_t, Teuchos::RCP< const panzer::PointValues2< double > > > _point_map
 
int numVirtualCells() const 
Number of cells not owned by any workset - these are used for boundary conditions. 
 
Description and data layouts associated with a particular basis. 
 
#define TEUCHOS_ASSERT(assertion_test)
 
WorksetDetails & operator()(Workset &workset) const 
Workset wrapper to extract the correct details. Example: wda(workset).bases[i]. 
 
const panzer::SubcellConnectivity & getFaceConnectivity() const 
Grab the face connectivity for this workset. 
 
const panzer::PointValues2< double > & getPointValues(const panzer::PointDescriptor &point_description) const 
Grab the basis values for a given basis description and integration description (throws error if it d...
 
Workset()
Default constructor, identifier is a useless 0 by default. 
 
std::vector< GO > cell_local_ids
 
const WorksetDetails & operator()(const int i) const 
const accessor.