1#ifndef PEC_INSULATOR_H_
2#define PEC_INSULATOR_H_
47 bool split_pml_field =
false);
149 bool split_pml_field,
151 bool only_zero_parallel_field,
185 int IsESet(
int idim,
int iside,
int ifield)
const;
193 int IsBSet(
int idim,
int iside,
int ifield)
const;
amrex::Vector< int > m_set_Ey_hi
Definition PEC_Insulator.H:246
amrex::Vector< amrex::ParserExecutor< 3 > > m_Bz_parsers_hi
Definition PEC_Insulator.H:239
amrex::Vector< amrex::ParserExecutor< 3 > > m_Bz_parsers_lo
Definition PEC_Insulator.H:236
amrex::Vector< std::unique_ptr< amrex::Parser > > m_insulator_area_lo
Definition PEC_Insulator.H:199
amrex::Vector< int > m_set_Bz_lo
Definition PEC_Insulator.H:228
int IsBSet(int idim, int iside) const
Definition PEC_Insulator.H:177
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:507
int IsESet(int idim, int iside) const
Definition PEC_Insulator.H:170
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ex_parsers_hi
Definition PEC_Insulator.H:253
amrex::Vector< int > m_set_E_lo
Definition PEC_Insulator.H:216
amrex::Vector< int > m_set_Bz_hi
Definition PEC_Insulator.H:231
amrex::Vector< int > m_set_Bx_lo
Definition PEC_Insulator.H:226
amrex::Vector< amrex::ParserExecutor< 3 > > m_Bx_parsers_hi
Definition PEC_Insulator.H:237
amrex::Vector< amrex::ParserExecutor< 3 > > m_By_parsers_lo
Definition PEC_Insulator.H:235
amrex::Vector< amrex::ParserExecutor< 3 > > m_By_parsers_hi
Definition PEC_Insulator.H:238
amrex::Vector< int > m_set_Ez_hi
Definition PEC_Insulator.H:247
amrex::Vector< int > m_set_Ez_lo
Definition PEC_Insulator.H:244
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_E1_lo
Definition PEC_Insulator.H:220
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:486
amrex::Vector< std::unique_ptr< amrex::Parser > > m_insulator_area_hi
Definition PEC_Insulator.H:200
amrex::Vector< int > m_set_Ex_lo
Definition PEC_Insulator.H:242
PEC_Insulator()
Definition PEC_Insulator.cpp:357
amrex::Vector< int > m_set_By_hi
Definition PEC_Insulator.H:230
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ey_parsers_lo
Definition PEC_Insulator.H:251
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_E1_hi
Definition PEC_Insulator.H:222
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_B2_lo
Definition PEC_Insulator.H:211
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_B1_lo
Definition PEC_Insulator.H:210
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 only_zero_parallel_field, amrex::Vector< int > const &set_Fx_lo, amrex::Vector< int > const &set_Fy_lo, amrex::Vector< int > const &set_Fz_lo, amrex::Vector< int > const &set_Fx_hi, amrex::Vector< int > const &set_Fy_hi, amrex::Vector< int > const &set_Fz_hi, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fx_parsers_lo, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fy_parsers_lo, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fz_parsers_lo, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fx_parsers_hi, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fy_parsers_hi, amrex::Vector< amrex::ParserExecutor< 3 > > const &Fz_parsers_hi)
The work routine applying the boundary condition.
Definition PEC_Insulator.cpp:553
amrex::Vector< amrex::ParserExecutor< 2 > > m_area_parsers_hi
Definition PEC_Insulator.H:203
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ex_parsers_lo
Definition PEC_Insulator.H:250
amrex::Vector< int > m_set_B_lo
Definition PEC_Insulator.H:206
amrex::Vector< int > m_set_Ex_hi
Definition PEC_Insulator.H:245
amrex::Vector< int > m_set_E_hi
Definition PEC_Insulator.H:217
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ez_parsers_hi
Definition PEC_Insulator.H:255
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ey_parsers_hi
Definition PEC_Insulator.H:254
amrex::Vector< int > m_set_Ey_lo
Definition PEC_Insulator.H:243
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_E2_hi
Definition PEC_Insulator.H:223
void ZeroParallelScalarInConductor(amrex::MultiFab *scalar, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_lo, amrex::Array< FieldBoundaryType, 3 > const &field_boundary_hi, amrex::Geometry const &geom, int lev, PatchType patch_type, amrex::Vector< amrex::IntVect > const &ref_ratios)
Zeros the scalar on the boundary When the E field is being set, the scalar is zeroed everywhere,...
Definition PEC_Insulator.cpp:749
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_B2_hi
Definition PEC_Insulator.H:213
amrex::Vector< amrex::ParserExecutor< 2 > > m_area_parsers_lo
Definition PEC_Insulator.H:202
amrex::Vector< int > m_set_Bx_hi
Definition PEC_Insulator.H:229
amrex::Vector< amrex::ParserExecutor< 3 > > m_Bx_parsers_lo
Definition PEC_Insulator.H:234
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_E2_lo
Definition PEC_Insulator.H:221
amrex::Vector< int > m_set_B_hi
Definition PEC_Insulator.H:207
amrex::Vector< int > m_set_By_lo
Definition PEC_Insulator.H:227
void ZeroParallelFieldInConductor(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)
Zeros the parallel fields on the boundary When the E field is being set, the field is zeroed everywhe...
Definition PEC_Insulator.cpp:528
amrex::Vector< std::unique_ptr< amrex::Parser > > m_parsers_B1_hi
Definition PEC_Insulator.H:212
amrex::Vector< amrex::ParserExecutor< 3 > > m_Ez_parsers_lo
Definition PEC_Insulator.H:252
PatchType
Definition Enums.H:30