44 #ifndef __Panzer_Workset_Builder_hpp__
45 #define __Panzer_Workset_Builder_hpp__
52 #include "PanzerDiscFE_config.hpp"
60 template<
typename ArrayT>
63 const std::string & elementBlock,
64 const std::vector<std::size_t>& local_cell_ids,
65 const ArrayT& vertex_coordinates);
67 template<
typename ArrayT>
70 const std::string & elementBlock,
71 const std::vector<std::size_t>& local_cell_ids,
72 const std::vector<std::size_t>& local_side_ids,
73 const ArrayT& vertex_coordinates,
74 const bool populate_value_arrays =
true);
76 template<
typename ArrayT>
79 const std::string & blockid_a,
80 const std::vector<std::size_t>& local_cell_ids_a,
81 const std::vector<std::size_t>& local_side_ids_a,
82 const ArrayT& vertex_coordinates_a,
84 const std::string & blockid_b,
85 const std::vector<std::size_t>& local_cell_ids_b,
86 const std::vector<std::size_t>& local_side_ids_b,
87 const ArrayT& vertex_coordinates_b);
95 template<
typename ArrayT>
98 const std::string & eblock_a,
99 const std::vector<std::size_t>& local_cell_ids_a,
100 const std::vector<std::size_t>& local_side_ids_a,
101 const ArrayT& vertex_coordinates_a,
102 const WorksetNeeds & needs_b,
103 const std::string & eblock_b,
104 const std::vector<std::size_t>& local_cell_ids_b,
105 const std::vector<std::size_t>& local_side_ids_b,
106 const ArrayT& vertex_coordinates_b);
108 template<
typename ArrayT>
109 std::vector<Workset>::iterator
111 const WorksetNeeds & needs_a,
112 const std::string & eblock_a,
113 const std::vector<std::size_t>& local_cell_ids_a,
114 const std::vector<std::size_t>& local_side_ids_a,
115 const ArrayT& vertex_coordinates_a,
116 const WorksetNeeds & needs_b,
117 const std::string & eblock_b,
118 const std::vector<std::size_t>& local_cell_ids_b,
119 const std::vector<std::size_t>& local_side_ids_b,
120 const ArrayT& vertex_coordinates_b,
121 std::vector<Workset>::iterator beg);
141 const WorksetNeeds & pb,
142 WorksetDetails & details,
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)
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< 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)
void populateValueArrays(std::size_t num_cells, bool isSide, const WorksetNeeds &needs, WorksetDetails &details, const Teuchos::RCP< WorksetDetails > other_details)