1#ifndef PEC_INSULATOR_H_
2#define PEC_INSULATOR_H_
47 bool split_pml_field =
false);
108 bool split_pml_field,
110#ifndef WARPX_DIM_1D_Z
111 ,
bool set_F_x_lo,
bool set_F_x_hi,
112 std::unique_ptr<amrex::Parser>
const & a_Fy_x_lo, std::unique_ptr<amrex::Parser>
const & a_Fz_x_lo,
113 std::unique_ptr<amrex::Parser>
const & a_Fy_x_hi, std::unique_ptr<amrex::Parser>
const & a_Fz_x_hi
115#
if defined(WARPX_DIM_3D)
116 ,
bool set_F_y_lo,
bool set_F_y_hi,
117 std::unique_ptr<amrex::Parser>
const & a_Fx_y_lo, std::unique_ptr<amrex::Parser>
const & a_Fz_y_lo,
118 std::unique_ptr<amrex::Parser>
const & a_Fx_y_hi, std::unique_ptr<amrex::Parser>
const & a_Fz_y_hi
120#
if defined(WARPX_ZINDEX)
121 ,
bool set_F_z_lo,
bool set_F_z_hi,
122 std::unique_ptr<amrex::Parser>
const & a_Fx_z_lo, std::unique_ptr<amrex::Parser>
const & a_Fy_z_lo,
123 std::unique_ptr<amrex::Parser>
const & a_Fx_z_hi, std::unique_ptr<amrex::Parser>
const & a_Fy_z_hi
138 std::unique_ptr<amrex::Parser> & parser,
139 std::string
const & input_name,
140 std::string
const & coord1,
141 std::string
const & coord2);
146#ifndef WARPX_DIM_1D_Z
151#if defined(WARPX_DIM_3D)
152 bool m_set_B_y_lo =
false, m_set_B_y_hi =
false;
153 std::unique_ptr<amrex::Parser> m_Bx_y_lo, m_Bz_y_lo;
154 std::unique_ptr<amrex::Parser> m_Bx_y_hi, m_Bz_y_hi;
161#ifndef WARPX_DIM_1D_Z
166#if defined(WARPX_DIM_3D)
167 bool m_set_E_y_lo =
false, m_set_E_y_hi =
false;
168 std::unique_ptr<amrex::Parser> m_Ex_y_lo, m_Ez_y_lo;
169 std::unique_ptr<amrex::Parser> m_Ex_y_hi, m_Ez_y_hi;
std::unique_ptr< amrex::Parser > m_Bz_x_hi
Definition PEC_Insulator.H:149
std::unique_ptr< amrex::Parser > m_Ey_z_lo
Definition PEC_Insulator.H:172
bool m_set_B_x_hi
Definition PEC_Insulator.H:147
void ApplyPEC_InsulatortoBfield(std::array< amrex::MultiFab *, 3 > Bfield, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_lo, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_hi, amrex::IntVect const &ng_fieldgather, amrex::Geometry const &geom, int lev, PatchType patch_type, amrex::Vector< amrex::IntVect > const &ref_ratios, amrex::Real time)
Apply either the PEC or insulator boundary condition on the boundary and in the guard cells....
Definition PEC_Insulator.cpp:276
bool m_set_B_z_lo
Definition PEC_Insulator.H:156
std::unique_ptr< amrex::Parser > m_By_z_hi
Definition PEC_Insulator.H:158
std::unique_ptr< amrex::Parser > m_Bz_x_lo
Definition PEC_Insulator.H:148
bool m_set_E_x_lo
Definition PEC_Insulator.H:162
std::unique_ptr< amrex::Parser > m_Ex_z_hi
Definition PEC_Insulator.H:173
bool m_set_B_z_hi
Definition PEC_Insulator.H:156
bool ReadTangentialFieldParser(amrex::ParmParse const &pp_insulator, std::unique_ptr< amrex::Parser > &parser, std::string const &input_name, std::string const &coord1, std::string const &coord2)
Definition PEC_Insulator.cpp:166
std::unique_ptr< amrex::Parser > m_Bx_z_hi
Definition PEC_Insulator.H:158
void ApplyPEC_InsulatortoEfield(std::array< amrex::MultiFab *, 3 > Efield, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_lo, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_hi, amrex::IntVect const &ng_fieldgather, amrex::Geometry const &geom, int lev, PatchType patch_type, amrex::Vector< amrex::IntVect > const &ref_ratios, amrex::Real time, bool split_pml_field=false)
Apply either the PEC or insulator boundary condition on the boundary and in the guard cells....
Definition PEC_Insulator.cpp:246
std::unique_ptr< amrex::Parser > m_Ey_z_hi
Definition PEC_Insulator.H:173
std::unique_ptr< amrex::Parser > m_Ex_z_lo
Definition PEC_Insulator.H:172
std::vector< std::unique_ptr< amrex::Parser > > m_insulator_area_hi
Definition PEC_Insulator.H:144
PEC_Insulator()
Definition PEC_Insulator.cpp:178
void ApplyPEC_InsulatortoField(std::array< amrex::MultiFab *, 3 > field, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_lo, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_hi, amrex::IntVect const &ng_fieldgather, amrex::Geometry const &geom, int lev, PatchType patch_type, amrex::Vector< amrex::IntVect > const &ref_ratios, amrex::Real time, bool split_pml_field, bool E_like, bool set_F_x_lo, bool set_F_x_hi, std::unique_ptr< amrex::Parser > const &a_Fy_x_lo, std::unique_ptr< amrex::Parser > const &a_Fz_x_lo, std::unique_ptr< amrex::Parser > const &a_Fy_x_hi, std::unique_ptr< amrex::Parser > const &a_Fz_x_hi)
The work routine applying the boundary condition.
Definition PEC_Insulator.cpp:306
std::unique_ptr< amrex::Parser > m_By_x_hi
Definition PEC_Insulator.H:149
std::unique_ptr< amrex::Parser > m_Ey_x_lo
Definition PEC_Insulator.H:163
std::vector< std::unique_ptr< amrex::Parser > > m_insulator_area_lo
Definition PEC_Insulator.H:143
bool m_set_B_x_lo
Definition PEC_Insulator.H:147
std::unique_ptr< amrex::Parser > m_By_x_lo
Definition PEC_Insulator.H:148
std::unique_ptr< amrex::Parser > m_Ez_x_hi
Definition PEC_Insulator.H:164
std::unique_ptr< amrex::Parser > m_Bx_z_lo
Definition PEC_Insulator.H:157
bool m_set_E_x_hi
Definition PEC_Insulator.H:162
std::unique_ptr< amrex::Parser > m_Ey_x_hi
Definition PEC_Insulator.H:164
bool m_set_E_z_lo
Definition PEC_Insulator.H:171
std::unique_ptr< amrex::Parser > m_Ez_x_lo
Definition PEC_Insulator.H:163
std::unique_ptr< amrex::Parser > m_By_z_lo
Definition PEC_Insulator.H:157
bool m_set_E_z_hi
Definition PEC_Insulator.H:171
PatchType
Definition Enums.H:30