WarpX
ParticleBoundaries.H
Go to the documentation of this file.
1 /* Copyright 2021 David Grote
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_PARTICLEBOUNDARIES_H_
8 #define WARPX_PARTICLEBOUNDARIES_H_
9 
11 
12 #include <AMReX_AmrCore.H>
13 #include <AMReX_Parser.H>
14 
19 {
20 
21  ParticleBoundaries () noexcept;
22 
23  void Set_reflect_all_velocities (bool flag);
24  void SetAll (ParticleBoundaryType bc);
26  void SetThermalVelocity (amrex::Real u_th);
27 
31 
32  [[nodiscard]] bool CheckAll (ParticleBoundaryType bc) const;
33 
35 
36  // reflection models for absorbing boundaries
37  std::string reflection_model_xlo_str = "0.0";
38  std::string reflection_model_xhi_str = "0.0";
39  std::string reflection_model_ylo_str = "0.0";
40  std::string reflection_model_yhi_str = "0.0";
41  std::string reflection_model_zlo_str = "0.0";
42  std::string reflection_model_zhi_str = "0.0";
43 
44  std::unique_ptr<amrex::Parser> reflection_model_xlo_parser;
45  std::unique_ptr<amrex::Parser> reflection_model_xhi_parser;
46  std::unique_ptr<amrex::Parser> reflection_model_ylo_parser;
47  std::unique_ptr<amrex::Parser> reflection_model_yhi_parser;
48  std::unique_ptr<amrex::Parser> reflection_model_zlo_parser;
49  std::unique_ptr<amrex::Parser> reflection_model_zhi_parser;
50 
52 
59  amrex::Real m_uth = 0.;
60 
67 
69  };
71 
72 };
73 #endif /*WARPX_PARTICLEBOUNDARIES_H_*/
ParticleBoundaryType
Definition: WarpXAlgorithmSelection.H:173
Definition: ParticleBoundaries.H:51
bool reflect_all_velocities
Definition: ParticleBoundaries.H:68
amrex::ParserExecutor< 1 > reflection_model_ylo
Definition: ParticleBoundaries.H:63
ParticleBoundaryType ymax_bc
Definition: ParticleBoundaries.H:56
amrex::Real m_uth
Definition: ParticleBoundaries.H:59
ParticleBoundaryType xmin_bc
Definition: ParticleBoundaries.H:53
amrex::ParserExecutor< 1 > reflection_model_zhi
Definition: ParticleBoundaries.H:66
ParticleBoundaryType xmax_bc
Definition: ParticleBoundaries.H:54
amrex::ParserExecutor< 1 > reflection_model_xhi
Definition: ParticleBoundaries.H:62
ParticleBoundaryType zmax_bc
Definition: ParticleBoundaries.H:58
amrex::ParserExecutor< 1 > reflection_model_zlo
Definition: ParticleBoundaries.H:65
ParticleBoundaryType ymin_bc
Definition: ParticleBoundaries.H:55
amrex::ParserExecutor< 1 > reflection_model_xlo
Definition: ParticleBoundaries.H:61
ParticleBoundaryType zmin_bc
Definition: ParticleBoundaries.H:57
amrex::ParserExecutor< 1 > reflection_model_yhi
Definition: ParticleBoundaries.H:64
Definition: ParticleBoundaries.H:19
std::string reflection_model_zlo_str
Definition: ParticleBoundaries.H:41
void SetBoundsX(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:43
std::unique_ptr< amrex::Parser > reflection_model_ylo_parser
Definition: ParticleBoundaries.H:46
std::unique_ptr< amrex::Parser > reflection_model_xhi_parser
Definition: ParticleBoundaries.H:45
std::string reflection_model_zhi_str
Definition: ParticleBoundaries.H:42
void SetBoundsZ(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:57
ParticleBoundaries() noexcept
Definition: ParticleBoundaries.cpp:13
std::unique_ptr< amrex::Parser > reflection_model_zlo_parser
Definition: ParticleBoundaries.H:48
std::unique_ptr< amrex::Parser > reflection_model_yhi_parser
Definition: ParticleBoundaries.H:47
void SetBoundsY(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:50
bool CheckAll(ParticleBoundaryType bc) const
Definition: ParticleBoundaries.cpp:64
ParticleBoundariesData data
Definition: ParticleBoundaries.H:70
void SetThermalVelocity(amrex::Real u_th)
Definition: ParticleBoundaries.cpp:37
std::string reflection_model_yhi_str
Definition: ParticleBoundaries.H:40
std::string reflection_model_ylo_str
Definition: ParticleBoundaries.H:39
std::unique_ptr< amrex::Parser > reflection_model_zhi_parser
Definition: ParticleBoundaries.H:49
std::string reflection_model_xlo_str
Definition: ParticleBoundaries.H:37
void Set_reflect_all_velocities(bool flag)
Definition: ParticleBoundaries.cpp:20
std::unique_ptr< amrex::Parser > reflection_model_xlo_parser
Definition: ParticleBoundaries.H:44
std::string reflection_model_xhi_str
Definition: ParticleBoundaries.H:38
void SetAll(ParticleBoundaryType bc)
Definition: ParticleBoundaries.cpp:26
void BuildReflectionModelParsers()
Definition: ParticleBoundaries.cpp:74