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 PARTICLEBOUNDARIES_H_
8 #define PARTICLEBOUNDARIES_H_
9 
11 #include "Utils/WarpXUtil.H"
12 
13 #include <AMReX_AmrCore.H>
14 #include <AMReX_Parser.H>
15 
20 {
21 
22  ParticleBoundaries () noexcept;
23 
24  void Set_reflect_all_velocities (bool flag);
25  void SetAll (ParticleBoundaryType bc);
26 
30 
32 
34 
35  // reflection models for absorbing boundaries
36  std::string reflection_model_xlo_str = "0.0";
37  std::string reflection_model_xhi_str = "0.0";
38  std::string reflection_model_ylo_str = "0.0";
39  std::string reflection_model_yhi_str = "0.0";
40  std::string reflection_model_zlo_str = "0.0";
41  std::string reflection_model_zhi_str = "0.0";
42 
43  std::unique_ptr<amrex::Parser> reflection_model_xlo_parser;
44  std::unique_ptr<amrex::Parser> reflection_model_xhi_parser;
45  std::unique_ptr<amrex::Parser> reflection_model_ylo_parser;
46  std::unique_ptr<amrex::Parser> reflection_model_yhi_parser;
47  std::unique_ptr<amrex::Parser> reflection_model_zlo_parser;
48  std::unique_ptr<amrex::Parser> reflection_model_zhi_parser;
49 
51 
58 
59  amrex::ParserExecutor<1> reflection_model_xlo;
60  amrex::ParserExecutor<1> reflection_model_xhi;
61  amrex::ParserExecutor<1> reflection_model_ylo;
62  amrex::ParserExecutor<1> reflection_model_yhi;
63  amrex::ParserExecutor<1> reflection_model_zlo;
64  amrex::ParserExecutor<1> reflection_model_zhi;
65 
67  };
69 
70 };
71 #endif /*PARTICLEBOUNDARIES_H_*/
std::unique_ptr< amrex::Parser > reflection_model_zlo_parser
Definition: ParticleBoundaries.H:47
ParticleBoundaryType zmax_bc
Definition: ParticleBoundaries.H:57
std::unique_ptr< amrex::Parser > reflection_model_yhi_parser
Definition: ParticleBoundaries.H:46
ParticleBoundaryType xmax_bc
Definition: ParticleBoundaries.H:53
bool CheckAll(ParticleBoundaryType bc)
Definition: ParticleBoundaries.cpp:55
std::unique_ptr< amrex::Parser > reflection_model_xhi_parser
Definition: ParticleBoundaries.H:44
Definition: ParticleBoundaries.H:19
amrex::ParserExecutor< 1 > reflection_model_yhi
Definition: ParticleBoundaries.H:62
void SetBoundsZ(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:48
std::unique_ptr< amrex::Parser > reflection_model_ylo_parser
Definition: ParticleBoundaries.H:45
bool reflect_all_velocities
Definition: ParticleBoundaries.H:66
ParticleBoundariesData data
Definition: ParticleBoundaries.H:68
void SetBoundsX(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:34
amrex::ParserExecutor< 1 > reflection_model_xlo
Definition: ParticleBoundaries.H:59
ParticleBoundaryType ymin_bc
Definition: ParticleBoundaries.H:54
std::unique_ptr< amrex::Parser > reflection_model_zhi_parser
Definition: ParticleBoundaries.H:48
ParticleBoundaries() noexcept
Definition: ParticleBoundaries.cpp:10
Definition: ParticleBoundaries.H:50
std::string reflection_model_zlo_str
Definition: ParticleBoundaries.H:40
flag
Definition: run_libensemble_on_warpx.py:218
ParticleBoundaryType xmin_bc
Definition: ParticleBoundaries.H:52
std::string reflection_model_xhi_str
Definition: ParticleBoundaries.H:37
std::string reflection_model_xlo_str
Definition: ParticleBoundaries.H:36
std::string reflection_model_zhi_str
Definition: ParticleBoundaries.H:41
amrex::ParserExecutor< 1 > reflection_model_zhi
Definition: ParticleBoundaries.H:64
std::string reflection_model_yhi_str
Definition: ParticleBoundaries.H:39
amrex::ParserExecutor< 1 > reflection_model_ylo
Definition: ParticleBoundaries.H:61
amrex::ParserExecutor< 1 > reflection_model_xhi
Definition: ParticleBoundaries.H:60
void SetAll(ParticleBoundaryType bc)
Definition: ParticleBoundaries.cpp:23
ParticleBoundaryType ymax_bc
Definition: ParticleBoundaries.H:55
amrex::ParserExecutor< 1 > reflection_model_zlo
Definition: ParticleBoundaries.H:63
void Set_reflect_all_velocities(bool flag)
Definition: ParticleBoundaries.cpp:17
void BuildReflectionModelParsers()
Definition: ParticleBoundaries.cpp:65
ParticleBoundaryType zmin_bc
Definition: ParticleBoundaries.H:56
std::unique_ptr< amrex::Parser > reflection_model_xlo_parser
Definition: ParticleBoundaries.H:43
void SetBoundsY(ParticleBoundaryType bc_lo, ParticleBoundaryType bc_hi)
Definition: ParticleBoundaries.cpp:41
ParticleBoundaryType
Definition: WarpXAlgorithmSelection.H:115
std::string reflection_model_ylo_str
Definition: ParticleBoundaries.H:38