Panzer Version of the Day
Loading...
Searching...
No Matches
Panzer_Workset_Builder_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Panzer: A partial differential equation assembly
4// engine for strongly coupled complex multiphysics systems
5//
6// Copyright 2011 NTESS and the Panzer contributors.
7// SPDX-License-Identifier: BSD-3-Clause
8// *****************************************************************************
9// @HEADER
10
11#ifndef __Panzer_Workset_Builder_hpp__
12#define __Panzer_Workset_Builder_hpp__
13
14#include <vector>
15#include <map>
16
17#include "Teuchos_RCP.hpp"
18
19#include "PanzerDiscFE_config.hpp"
21
22namespace panzer {
23
24 class Workset;
25 class WorksetDetails;
26
27 template<typename ArrayT>
28 Teuchos::RCP<std::vector<Workset> >
30 const std::string & elementBlock,
31 const std::vector<std::size_t>& local_cell_ids,
32 const ArrayT& node_coordinates);
33
34 template<typename ArrayT>
35 Teuchos::RCP<std::map<unsigned,Workset> >
37 const std::string & elementBlock,
38 const std::vector<std::size_t>& local_cell_ids,
39 const std::vector<std::size_t>& local_side_ids,
40 const ArrayT& node_coordinates,
41 const bool populate_value_arrays = true);
42
43 template<typename ArrayT>
44 Teuchos::RCP<std::map<unsigned,panzer::Workset> >
45 buildBCWorkset(const WorksetNeeds & needs_a,
46 const std::string & blockid_a,
47 const std::vector<std::size_t>& local_cell_ids_a,
48 const std::vector<std::size_t>& local_side_ids_a,
49 const ArrayT& node_coordinates_a,
50 const panzer::WorksetNeeds & needs_b,
51 const std::string & blockid_b,
52 const std::vector<std::size_t>& local_cell_ids_b,
53 const std::vector<std::size_t>& local_side_ids_b,
54 const ArrayT& node_coordinates_b);
55
62 template<typename ArrayT>
63 Teuchos::RCP<std::vector<Workset> >
65 const std::string & eblock_a,
66 const std::vector<std::size_t>& local_cell_ids_a,
67 const std::vector<std::size_t>& local_side_ids_a,
68 const ArrayT& node_coordinates_a,
69 const WorksetNeeds & needs_b,
70 const std::string & eblock_b,
71 const std::vector<std::size_t>& local_cell_ids_b,
72 const std::vector<std::size_t>& local_side_ids_b,
73 const ArrayT& node_coordinates_b);
74
75 template<typename ArrayT>
76 std::vector<Workset>::iterator
77 buildEdgeWorksets(const std::vector<std::size_t> & cell_indices,
78 const WorksetNeeds & needs_a,
79 const std::string & eblock_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& node_coordinates_a,
83 const WorksetNeeds & needs_b,
84 const std::string & eblock_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& node_coordinates_b,
88 std::vector<Workset>::iterator beg);
89
106 void populateValueArrays(std::size_t num_cells,
107 bool isSide,
108 const WorksetNeeds & pb,
110 const Teuchos::RCP<WorksetDetails> other_details = Teuchos::null);
111}
112
113#endif
void populateValueArrays(std::size_t num_cells, bool isSide, const WorksetNeeds &needs, WorksetDetails &details, const Teuchos::RCP< WorksetDetails > other_details)
Teuchos::RCP< std::vector< Workset > > buildWorksets(const WorksetNeeds &needs, const std::string &elementBlock, const std::vector< std::size_t > &local_cell_ids, const ArrayT &node_coordinates)
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 &node_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 &node_coordinates_b)
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 &node_coordinates, const bool populate_value_arrays=true)