WARPXM v1.10.0
Loading...
Searching...
No Matches
boundary_line_integral.h
Go to the documentation of this file.
1#pragma once
2
3// Wm includes
5
6// STL includes
7#include <map>
8#include <tuple>
9
10namespace wxm
11{
12namespace dfem
13{
14namespace variable_adjuster
15{
16namespace unique_variable_adjuster
17{
51{
52public:
54
59 virtual void setup(const WxCryptSet& wxc) override;
60
64 void solve(real time, variables_type& input, real dt) override;
65
70 void solve2d(real time, variables_type& input);
71
76 void solve3d(real time, variables_type& input);
77
78 void Barrier(const WxMsgBase& msg, const real time, variables_type& input) override;
79
80protected:
81 std::vector<std::string> _boundary_names;
82
83 // Spatial basis set
84 std::unique_ptr<WmBasisArraySet> _basis_set;
85 std::unique_ptr<WmBasisArraySet> _surface_basis_set;
86
87 // WmUDGGeometry
88 std::unique_ptr<WmUDGGeometry> _dg_geometry;
89
90 // Spatial basis set name
91 std::string _basis_set_name;
92
93 /* indexes used in apps definitions */
94 std::vector<size_t> _out_idcs;
95
96 std::map<std::string,
97 std::tuple<std::vector<int>,
98 std::vector<int>,
99 std::vector<int>,
100 std::vector<real>,
101 std::vector<real>,
102 std::vector<real>,
103 std::vector<real>,
104 std::vector<real>>>
106
107private:
109 BoundaryLineIntegral& operator=(const BoundaryLineIntegral& var) = delete;
110
112 BoundaryLineIntegral(const BoundaryLineIntegral& var) = delete;
113};
114
115} // namespace unique_variable_adjuster
116} // namespace variable_adjuster
117} // namespace dfem
118} // namespace wxm
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
Provides an abstract interface for message based communication between different processes.
Definition: wxmsgbase.h:22
The BoundaryLineIntegral class calculates a line integral along a boundary and applies it to a unique...
Definition: boundary_line_integral.h:51
The WmVariableAdjuster class is a base class for variable adjusters.
Definition: variable_adjuster.h:31
wxm::temporal_solver::variables_type variables_type
Definition: variable_adjuster.h:41
std::unique_ptr< WmBasisArraySet > _basis_set
Definition: boundary_line_integral.h:84
std::string _basis_set_name
Definition: boundary_line_integral.h:91
std::unique_ptr< WmBasisArraySet > _surface_basis_set
Definition: boundary_line_integral.h:85
virtual void setup(const WxCryptSet &wxc) override
Setup the spatial solver using the cryptset.
std::unique_ptr< WmUDGGeometry > _dg_geometry
Definition: boundary_line_integral.h:88
void Barrier(const WxMsgBase &msg, const real time, variables_type &input) override
An opportunity for the variable adjuster to perform any MPI operations it needs to after solve is cal...
void solve3d(real time, variables_type &input)
Solves the spatial system and puts result in _rhs for 3d cases where the boundary is a 2d surface.
std::vector< std::string > _boundary_names
Definition: boundary_line_integral.h:81
void solve2d(real time, variables_type &input)
Solves the spatial system and puts result in _rhs for 2d cases where the boundary is a 1d line.
std::map< std::string, std::tuple< std::vector< int >, std::vector< int >, std::vector< int >, std::vector< real >, std::vector< real >, std::vector< real >, std::vector< real >, std::vector< real > > > _boundary_line_map
Definition: boundary_line_integral.h:105
std::vector< size_t > _out_idcs
Definition: boundary_line_integral.h:94
void solve(real time, variables_type &input, real dt) override
Solves the spatial system and puts result in _rhs.
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
#define real
Definition: wmoclunstructuredreconstruction.h:11