43 #include "PanzerDiscFE_config.hpp" 
   53                       const std::string & elementBlock,
 
   54                       const std::vector<std::size_t>& local_cell_ids,
 
   55                       const Kokkos::DynRankView<double,PHX::Device>& vertex_coordinates);
 
   60                        const std::string& elementBlock,
 
   61                        const std::vector<std::size_t>& local_cell_ids,
 
   62                        const std::vector<std::size_t>& local_side_ids,
 
   63                        const Kokkos::DynRankView<double,PHX::Device>& vertex_coordinates,
 
   64                        const bool populate_value_arrays);
 
   69                        const std::string & blockid_a,
 
   70                        const std::vector<std::size_t>& local_cell_ids_a,
 
   71                        const std::vector<std::size_t>& local_side_ids_a,
 
   72                        const Kokkos::DynRankView<double,PHX::Device> & vertex_coordinates_a,
 
   74                        const std::string & blockid_b,
 
   75                        const std::vector<std::size_t>& local_cell_ids_b,
 
   76                        const std::vector<std::size_t>& local_side_ids_b,
 
   77                        const Kokkos::DynRankView<double,PHX::Device> & vertex_coordinates_b);
 
   82                           const std::string & eblock_a,
 
   83                           const std::vector<std::size_t>& local_cell_ids_a,
 
   84                           const std::vector<std::size_t>& local_side_ids_a,
 
   85                           const Kokkos::DynRankView<double,PHX::Device> & vertex_coordinates_a,
 
   87                           const std::string & eblock_b,
 
   88                           const std::vector<std::size_t>& local_cell_ids_b,
 
   89                           const std::vector<std::size_t>& local_side_ids_b,
 
   90                           const Kokkos::DynRankView<double,PHX::Device> & vertex_coordinates_b);
 
  105   if(other_details!=Teuchos::null and other_details->
numOwnedCells()==-1)
 
  112   std::vector<RCP<const panzer::PureBasis> > bases;
 
  113   std::vector<RCP<const panzer::IntegrationRule> > int_rules;
 
  119     for(std::size_t i=0;i<needs.
int_rules.size();i++) 
 
  122     for(std::size_t i=0;i<needs.
bases.size();i++) 
 
  133   for(std::size_t i=0;i<int_rules.size();i++) {
 
  135     details.
ir_degrees->push_back(int_rules[i]->cubature_degree);
 
  139     iv2->setupArrays(int_rules[i]);
 
  148     for(std::size_t b=0;b<bases.size();b++) {
 
  152       std::size_t int_degree_index = std::distance(details.
ir_degrees->begin(), 
 
  155                                                              int_rules[i]->order()));
 
  158       bv2->setupArrays(b_layout);
 
  159       bv2->evaluateValues(details.
int_rules[int_degree_index]->cub_points,
 
  160                           details.
int_rules[int_degree_index]->jac,
 
  161                           details.
int_rules[int_degree_index]->jac_det,
 
  162                           details.
int_rules[int_degree_index]->jac_inv,
 
  163                           details.
int_rules[int_degree_index]->weighted_measure,
 
  168       details.
bases.push_back(bv2);
 
std::vector< Teuchos::RCP< const PureBasis > > bases
 
Teuchos::RCP< std::vector< Workset > > buildEdgeWorksets(const WorksetNeeds &needs_a, const std::string &eblock_a, const std::vector< std::size_t > &local_cell_ids_a, const std::vector< std::size_t > &local_side_ids_a, const ArrayT &vertex_coordinates_a, const WorksetNeeds &needs_b, const std::string &eblock_b, const std::vector< std::size_t > &local_cell_ids_b, const std::vector< std::size_t > &local_side_ids_b, const ArrayT &vertex_coordinates_b)
 
bool nonnull(const std::shared_ptr< T > &p)
 
Teuchos::RCP< std::vector< int > > ir_degrees
If workset corresponds to a sub cell, what is the index? 
 
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. 
 
Teuchos::RCP< std::vector< Workset > > buildWorksets(const WorksetNeeds &needs, const std::string &elementBlock, const std::vector< std::size_t > &local_cell_ids, const ArrayT &vertex_coordinates)
 
Teuchos::RCP< const shards::CellTopology > getCellTopology() const 
Get CellTopology for the base cell. 
 
std::vector< Teuchos::RCP< const IntegrationRule > > int_rules
 
CellCoordArray cell_vertex_coordinates
 
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
 
Teuchos::RCP< std::map< unsigned, Workset > > buildBCWorkset(const WorksetNeeds &needs, const std::string &elementBlock, const std::vector< std::size_t > &local_cell_ids, const std::vector< std::size_t > &local_side_ids, const ArrayT &vertex_coordinates, const bool populate_value_arrays=true)
 
Data for determining cell topology and dimensionality. 
 
void setNumberOfCells(int o_cells, int g_cells, int v_cells)
Provides access to set numbers of cells (required for backwards compatibility) 
 
std::vector< Teuchos::RCP< panzer::IntegrationValues2< double > > > int_rules
 
std::string name() const 
Unique key for workset indexing composed of basis name and point rule name. 
 
Description and data layouts associated with a particular basis. 
 
void populateValueArrays(std::size_t num_cells, bool isSide, const WorksetNeeds &needs, WorksetDetails &details, const Teuchos::RCP< WorksetDetails > other_details)