WarpX
Toggle main menu visibility
Loading...
Searching...
No Matches
Source
BoundaryConditions
PML_RZ.H
Go to the documentation of this file.
1
/* Copyright 2021 David Grote
2
*
3
*
4
* This file is part of WarpX.
5
*
6
* License: BSD-3-Clause-LBNL
7
*/
8
#ifndef WARPX_PML_RZ_H_
9
#define WARPX_PML_RZ_H_
10
11
#include "
PML_RZ_fwd.H
"
12
13
#include "
Utils/WarpXAlgorithmSelection.H
"
14
15
#ifdef WARPX_USE_FFT
16
# include "
FieldSolver/SpectralSolver/SpectralSolverRZ.H
"
17
#endif
18
19
#include <
ablastr/fields/MultiFabRegister.H
>
20
21
#include <
AMReX_MultiFab.H
>
22
#include <
AMReX_BoxArray.H
>
23
#include <AMReX_Config.H>
24
#include <
AMReX_REAL.H
>
25
26
#include <
AMReX_BaseFwd.H
>
27
28
#include <array>
29
#include <optional>
30
#include <string>
31
32
class
PML_RZ
33
{
34
public
:
35
PML_RZ
(
int
lev,
amrex::BoxArray
const
& grid_ba,
amrex::DistributionMapping
const
& grid_dm,
36
amrex::Geometry
const
* geom,
ablastr::fields::MultiFabRegister
&
fields
,
37
int
ncell,
int
do_pml_in_domain);
38
39
void
ApplyDamping
(
amrex::MultiFab
* Et_fp,
amrex::MultiFab
* Ez_fp,
40
amrex::MultiFab
* Bt_fp,
amrex::MultiFab
* Bz_fp,
41
amrex::Real
dt,
ablastr::fields::MultiFabRegister
&
fields
);
42
43
#ifdef WARPX_USE_FFT
44
void
PushPSATD
(
int
lev,
ablastr::fields::MultiFabRegister
&
fields
,
SpectralSolverRZ
& spec_solver);
45
#endif
46
47
void
FillBoundaryE
(
ablastr::fields::MultiFabRegister
&
fields
,
PatchType
patch_type,
48
bool
do_single_precision_comms, std::optional<bool> nodal_sync=std::nullopt);
49
void
FillBoundaryB
(
ablastr::fields::MultiFabRegister
&
fields
,
PatchType
patch_type,
50
bool
do_single_precision_comms, std::optional<bool> nodal_sync=std::nullopt);
51
52
void
CheckPoint
(
ablastr::fields::MultiFabRegister
&
fields
, std::string
const
& dir)
const
;
53
void
Restart
(
ablastr::fields::MultiFabRegister
&
fields
, std::string
const
& dir);
54
55
private
:
56
57
int
m_ncell
;
58
int
m_do_pml_in_domain
;
59
const
amrex::Geometry
*
m_geom
;
60
};
61
62
#endif
AMReX_BaseFwd.H
AMReX_BoxArray.H
AMReX_MultiFab.H
AMReX_REAL.H
MultiFabRegister.H
PML_RZ_fwd.H
SpectralSolverRZ.H
WarpXAlgorithmSelection.H
PML_RZ::CheckPoint
void CheckPoint(ablastr::fields::MultiFabRegister &fields, std::string const &dir) const
Definition
PML_RZ.cpp:161
PML_RZ::Restart
void Restart(ablastr::fields::MultiFabRegister &fields, std::string const &dir)
Definition
PML_RZ.cpp:174
PML_RZ::ApplyDamping
void ApplyDamping(amrex::MultiFab *Et_fp, amrex::MultiFab *Ez_fp, amrex::MultiFab *Bt_fp, amrex::MultiFab *Bz_fp, amrex::Real dt, ablastr::fields::MultiFabRegister &fields)
Definition
PML_RZ.cpp:65
PML_RZ::FillBoundaryE
void FillBoundaryE(ablastr::fields::MultiFabRegister &fields, PatchType patch_type, bool do_single_precision_comms, std::optional< bool > nodal_sync=std::nullopt)
Definition
PML_RZ.cpp:127
PML_RZ::m_geom
const amrex::Geometry * m_geom
Definition
PML_RZ.H:59
PML_RZ::m_do_pml_in_domain
int m_do_pml_in_domain
Definition
PML_RZ.H:58
PML_RZ::PML_RZ
PML_RZ(int lev, amrex::BoxArray const &grid_ba, amrex::DistributionMapping const &grid_dm, amrex::Geometry const *geom, ablastr::fields::MultiFabRegister &fields, int ncell, int do_pml_in_domain)
Definition
PML_RZ.cpp:39
PML_RZ::m_ncell
int m_ncell
Definition
PML_RZ.H:57
PML_RZ::FillBoundaryB
void FillBoundaryB(ablastr::fields::MultiFabRegister &fields, PatchType patch_type, bool do_single_precision_comms, std::optional< bool > nodal_sync=std::nullopt)
Definition
PML_RZ.cpp:144
PML_RZ::PushPSATD
void PushPSATD(int lev, ablastr::fields::MultiFabRegister &fields, SpectralSolverRZ &spec_solver)
Definition
PML_RZ.cpp:188
SpectralSolverRZ
Definition
SpectralSolverRZ.H:26
amrex::BoxArray
amrex::DistributionMapping
amrex::Geometry
amrex::MultiFab
amrex::Real
amrex_real Real
ablastr::fields
Definition
EffectivePotentialPoissonSolver.H:63
ablastr::utils::enums::PatchType
PatchType
Definition
Enums.H:30
ablastr::fields::MultiFabRegister
Definition
MultiFabRegister.H:272
Generated by
1.17.0