Proto  3.2
Proto_LevelBCLib.H
Go to the documentation of this file.
1 #pragma once
2 #ifndef __PROTO_LEVEL_BC_LIB__
3 #define __PROTO_LEVEL_BC_LIB__
4 
5 #include "Proto_LevelBC.H"
6 namespace Proto {
7 
8  /// Periodic Boundary Condition
9  /** This is the default boundary condition for most of Proto.
10  * All this does is call a_data.exchange()
11  */
12  template<typename T, unsigned int C, MemType MEM, Centering CTR>
13  class PeriodicBC : public LevelBC<T,C,MEM,CTR>
14  {
15  public:
17  inline void apply(LevelBoxData<T,C,MEM,CTR>& a_data) const;
18  };
19 
20  /// Not Really Dirichlet BC
21  /** Test Boundary Condition that fills ghost cells with a constant
22  */
23  template<typename T, unsigned int C, MemType MEM, Centering CTR>
24  class ConstDirichletBC : public LevelBC<T,C,MEM,CTR>
25  {
26  public:
28  inline void setVal(T a_value, int a_comp = -1);
29  inline void apply(LevelBoxData<T,C,MEM,CTR>& a_data) const;
30  private:
31  std::vector<std::pair<int, T>> m_compValues;
32  T m_globalValue = 0;
33  };
34  #include "implem/Proto_LevelBCLibImplem.H"
35 } // end namespace Proto
36 #endif //end include guard
void apply(LevelBoxData< T, C, MEM, CTR > &a_data) const
Definition: Proto_LevelBCLib.H:3
void setVal(T a_value, int a_comp=-1)
Definition: Proto_LevelBCLib.H:25
Level Box Data.
Definition: Proto_HDF5.H:17
Not Really Dirichlet BC.
Definition: Proto_LevelBCLib.H:24
Storage for the LevelBCOps on each face.
Definition: Proto_LevelBC.H:10
Periodic Boundary Condition.
Definition: Proto_LevelBCLib.H:13
Definition: Proto_Array.H:17
std::vector< std::pair< int, T > > m_compValues
Definition: Proto_LevelBCLib.H:31