WarpX
ExternalField.H
Go to the documentation of this file.
1 /* Copyright 2023 Luca Fedeli
2  *
3  *
4  * This file is part of WarpX.
5  *
6  * License: BSD-3-Clause-LBNL
7  */
8 #ifndef WARPX_EXTERNAL_FIELD_H_
9 #define WARPX_EXTERNAL_FIELD_H_
10 
11 #include "ExternalField_fwd.H"
12 
13 #include <AMReX_Array.H>
14 #include <AMReX_ParmParse.H>
15 #include <AMReX_Parser.H>
16 #include <AMReX_REAL.H>
17 
18 #include <memory>
19 #include <string>
20 
22 {
24  constant,
27 };
28 
34 {
35 
40  ExternalFieldParams(const amrex::ParmParse& pp_warpx);
41 
46 
51 
53  std::unique_ptr<amrex::Parser> Bxfield_parser;
55  std::unique_ptr<amrex::Parser> Byfield_parser;
57  std::unique_ptr<amrex::Parser> Bzfield_parser;
59  std::unique_ptr<amrex::Parser> Exfield_parser;
61  std::unique_ptr<amrex::Parser> Eyfield_parser;
63  std::unique_ptr<amrex::Parser> Ezfield_parser;
64 
66  std::string external_fields_path;
67 };
68 
69 #endif //WARPX_EXTERNAL_FIELD_H_
ExternalFieldType
Definition: ExternalField.H:22
Struct to store data related to external electromagnetic fields (flags, field values,...
Definition: ExternalField.H:34
ExternalFieldType E_ext_grid_type
Initialization type for external electric field on the grid.
Definition: ExternalField.H:50
std::unique_ptr< amrex::Parser > Eyfield_parser
User-defined parser to initialize y-component of the electric field on the grid.
Definition: ExternalField.H:61
ExternalFieldParams(const amrex::ParmParse &pp_warpx)
The constructor reads and stores the parameters related to the external fields. "pp_warpx" must point...
Definition: ExternalField.cpp:59
std::unique_ptr< amrex::Parser > Bzfield_parser
User-defined parser to initialize z-component of the magnetic field on the grid.
Definition: ExternalField.H:57
std::unique_ptr< amrex::Parser > Bxfield_parser
User-defined parser to initialize x-component of the magnetic field on the grid.
Definition: ExternalField.H:53
amrex::GpuArray< amrex::Real, 3 > E_external_grid
Initial electric field on the grid.
Definition: ExternalField.H:43
ExternalFieldType B_ext_grid_type
Initialization type for external magnetic field on the grid.
Definition: ExternalField.H:48
std::unique_ptr< amrex::Parser > Byfield_parser
User-defined parser to initialize y-component of the magnetic field on the grid.
Definition: ExternalField.H:55
std::string external_fields_path
Path of the file where external fields are stored.
Definition: ExternalField.H:66
std::unique_ptr< amrex::Parser > Ezfield_parser
User-defined parser to initialize z-component of the electric field on the grid.
Definition: ExternalField.H:63
amrex::GpuArray< amrex::Real, 3 > B_external_grid
Initial magnetic field on the grid.
Definition: ExternalField.H:45
std::unique_ptr< amrex::Parser > Exfield_parser
User-defined parser to initialize x-component of the electric field on the grid.
Definition: ExternalField.H:59