18
18
19
19
namespace warpx ::fields
20
20
{
21
+ /* * Unique identifiers for WarpX scalar and vector fields.
22
+ *
23
+ * These are implemented as amrex::MultiFab (one or one per component "direction",
24
+ * respectively) and stored in the ablastr::fields::MultiFabRegister .
25
+ */
21
26
AMREX_ENUM (FieldType,
22
27
None,
23
- Efield_aux, // ! < Field that the particles gather from. Obtained from Efield_fp (and Efield_cp when using MR); see UpdateAuxilaryData
24
- Bfield_aux, // ! < Field that the particles gather from. Obtained from Bfield_fp (and Bfield_cp when using MR); see UpdateAuxilaryData
25
- Efield_fp, // ! < The field that is updated by the field solver at each timestep
26
- Bfield_fp, // ! < The field that is updated by the field solver at each timestep
27
- Efield_fp_external, // ! < Stores grid particle fields provided by the user as through an openPMD file
28
- Bfield_fp_external, // ! < Stores grid particle fields provided by the user as through an openPMD file
29
- current_fp, // ! < The current that is used as a source for the field solver
30
- current_fp_nodal, // ! < Only used when using nodal current deposition
31
- current_fp_vay, // ! < Only used when using Vay current deposition
32
- current_buf, // ! < Particles that are close to the edge of the MR patch (i.e. in the deposition buffer) deposit to this field.
33
- current_store, // ! < Only used when doing subcycling with mesh refinement, for book-keeping of currents
34
- rho_buf, // ! < Particles that are close to the edge of the MR patch (i.e. in the deposition buffer) deposit to this field.
35
- rho_fp, // ! < The charge density that is used as a source for the field solver (mostly for labframe electrostatic and PSATD)
36
- F_fp, // ! < Used for divE cleaning
37
- G_fp, // ! < Used for divB cleaning
38
- phi_fp, // ! < Obtained by the Poisson solver, for labframe electrostatic
39
- vector_potential_fp, // ! < Obtained by the magnetostatic solver
28
+ Efield_aux, /* * < Field that the particles gather from. Obtained from Efield_fp (and Efield_cp when using MR); see UpdateAuxilaryData */
29
+ Bfield_aux, /* * < Field that the particles gather from. Obtained from Bfield_fp (and Bfield_cp when using MR); see UpdateAuxilaryData */
30
+ Efield_fp, /* * < The field that is updated by the field solver at each timestep */
31
+ Bfield_fp, /* * < The field that is updated by the field solver at each timestep */
32
+ Efield_fp_external, /* * < Stores grid particle fields provided by the user as through an openPMD file */
33
+ Bfield_fp_external, /* * < Stores grid particle fields provided by the user as through an openPMD file */
34
+ current_fp, /* * < The current that is used as a source for the field solver */
35
+ current_fp_nodal, /* * < Only used when using nodal current deposition */
36
+ current_fp_vay, /* * < Only used when using Vay current deposition */
37
+ current_buf, /* * < Particles that are close to the edge of the MR patch (i.e. in the deposition buffer) deposit to this field. */
38
+ current_store, /* * < Only used when doing subcycling with mesh refinement, for book-keeping of currents */
39
+ rho_buf, /* * < Particles that are close to the edge of the MR patch (i.e. in the deposition buffer) deposit to this field. */
40
+ rho_fp, /* * < The charge density that is used as a source for the field solver (mostly for labframe electrostatic and PSATD) */
41
+ F_fp, /* * < Used for divE cleaning */
42
+ G_fp, /* * < Used for divB cleaning */
43
+ phi_fp, /* * < Obtained by the Poisson solver, for labframe electrostatic */
44
+ vector_potential_fp, /* * < Obtained by the magnetostatic solver */
40
45
vector_potential_fp_nodal,
41
46
vector_potential_grad_buf_e_stag,
42
47
vector_potential_grad_buf_b_stag,
@@ -45,19 +50,19 @@ namespace warpx::fields
45
50
hybrid_current_fp_temp,
46
51
hybrid_current_fp_ampere,
47
52
hybrid_current_fp_external,
48
- Efield_cp, // ! < Only used with MR. The field that is updated by the field solver at each timestep, on the coarse patch of each level
49
- Bfield_cp, // ! < Only used with MR. The field that is updated by the field solver at each timestep, on the coarse patch of each level
50
- current_cp, // ! < Only used with MR. The current that is used as a source for the field solver, on the coarse patch of each level
51
- rho_cp, // ! < Only used with MR. The charge density that is used as a source for the field solver, on the coarse patch of each level
52
- F_cp, // ! < Only used with MR. Used for divE cleaning, on the coarse patch of each level
53
- G_cp, // ! < Only used with MR. Used for divB cleaning, on the coarse patch of each level
54
- Efield_cax, // ! < Only used with MR. Particles that are close to the edge of the MR patch (i.e. in the gather buffer) gather from this field
55
- Bfield_cax, // ! < Only used with MR. Particles that are close to the edge of the MR patch (i.e. in the gather buffer) gather from this field
56
- E_external_particle_field, // ! < Stores external particle fields provided by the user as through an openPMD file
57
- B_external_particle_field, // ! < Stores external particle fields provided by the user as through an openPMD file
58
- distance_to_eb, // ! < Only used with embedded boundaries (EB). Stores the distance to the nearest EB
59
- edge_lengths, // ! < Only used with embedded boundaries (EB). Indicates the length of the cell edge that is covered by the EB, in SI units
60
- face_areas, // ! < Only used with embedded boundaries (EB). Indicates the area of the cell face that is covered by the EB, in SI units
53
+ Efield_cp, /* * < Only used with MR. The field that is updated by the field solver at each timestep, on the coarse patch of each level */
54
+ Bfield_cp, /* * < Only used with MR. The field that is updated by the field solver at each timestep, on the coarse patch of each level */
55
+ current_cp, /* * < Only used with MR. The current that is used as a source for the field solver, on the coarse patch of each level */
56
+ rho_cp, /* * < Only used with MR. The charge density that is used as a source for the field solver, on the coarse patch of each level */
57
+ F_cp, /* * < Only used with MR. Used for divE cleaning, on the coarse patch of each level */
58
+ G_cp, /* * < Only used with MR. Used for divB cleaning, on the coarse patch of each level */
59
+ Efield_cax, /* * < Only used with MR. Particles that are close to the edge of the MR patch (i.e. in the gather buffer) gather from this field */
60
+ Bfield_cax, /* * < Only used with MR. Particles that are close to the edge of the MR patch (i.e. in the gather buffer) gather from this field */
61
+ E_external_particle_field, /* * < Stores external particle fields provided by the user as through an openPMD file */
62
+ B_external_particle_field, /* * < Stores external particle fields provided by the user as through an openPMD file */
63
+ distance_to_eb, /* * < Only used with embedded boundaries (EB). Stores the distance to the nearest EB */
64
+ edge_lengths, /* * < Only used with embedded boundaries (EB). Indicates the length of the cell edge that is covered by the EB, in SI units */
65
+ face_areas, /* * < Only used with embedded boundaries (EB). Indicates the area of the cell face that is covered by the EB, in SI units */
61
66
area_mod,
62
67
pml_E_fp,
63
68
pml_B_fp,
@@ -74,7 +79,7 @@ namespace warpx::fields
74
79
Bfield_avg_fp,
75
80
Efield_avg_cp,
76
81
Bfield_avg_cp,
77
- B_old, // ! < Stores the value of B at the beginning of the timestep, for the implicit solver
82
+ B_old, /* * < Stores the value of B at the beginning of the timestep, for the implicit solver */
78
83
ECTRhofield,
79
84
Venl
80
85
);
0 commit comments