|
WarpX
|
#include "FlushFormatPlotfile.H"#include "Fields.H"#include "Diagnostics/MultiDiagnostics.H"#include "Diagnostics/ParticleDiag/ParticleDiag.H"#include "Particles/Filter/FilterFunctors.H"#include "Particles/WarpXParticleContainer.H"#include "Particles/ParticleIO.H"#include "Particles/PinnedMemoryParticleContainer.H"#include "Utils/Interpolate.H"#include "Utils/Parser/ParserUtils.H"#include "Utils/TextMsg.H"#include "Utils/WarpXProfilerWrapper.H"#include "WarpX.H"#include <ablastr/fields/MultiFabRegister.H>#include <AMReX.H>#include <AMReX_Box.H>#include <AMReX_BoxArray.H>#include <AMReX_Config.H>#include <AMReX_GpuAllocators.H>#include <AMReX_GpuQualifiers.H>#include <AMReX_IntVect.H>#include <AMReX_MakeType.H>#include <AMReX_MultiFab.H>#include <AMReX_PODVector.H>#include <AMReX_ParallelDescriptor.H>#include <AMReX_ParmParse.H>#include <AMReX_ParticleIO.H>#include <AMReX_Particles.H>#include <AMReX_PlotFileUtil.H>#include <AMReX_Print.H>#include <AMReX_REAL.H>#include <AMReX_Utility.H>#include <AMReX_VisMF.H>#include <AMReX_buildInfo.H>#include <omp.h>#include <algorithm>#include <array>#include <cstring>#include <fstream>#include <map>#include <memory>#include <utility>#include <vector>Namespaces | |
| namespace | WARPX_UNITY_ID |
Macros | |
| #define | WARPX_UNITY_ID |
Enumerations | |
| enum class | FieldType |
Functions | |
| void | WriteRawMF (const MultiFab &F, const DistributionMapping &dm, const std::string &filename, const std::string &level_prefix, const std::string &field_name, const int lev, const bool plot_guards) |
Write the data from MultiFab F into the file filename as a raw field (i.e. no interpolation to cell centers). Write guard cells if plot_guards is True. | |
| void | WriteZeroRawMF (const MultiFab &F, const DistributionMapping &dm, const std::string &filename, const std::string &level_prefix, const std::string &field_name, const int lev, const IntVect ng) |
Write a multifab of the same shape as F but filled with 0. (The shape includes guard cells if plot_guards is True.) This is mainly needed because the yt reader requires all levels of the coarse/fine patch to be written, but WarpX does not have data for the coarse patch of level 0 (meaningless). | |
| void | WriteCoarseVector (const std::string &field_name, const MultiFab *Fx_cp, const MultiFab *Fy_cp, const MultiFab *Fz_cp, const MultiFab *Fx_fp, const MultiFab *Fy_fp, const MultiFab *Fz_fp, const DistributionMapping &dm, const std::string &filename, const std::string &level_prefix, const int lev, const bool plot_guards) |
Write the coarse vector multifab F*_cp to the file filename after sampling/interpolating its value on the fine grid corresponding to F*_fp. This is mainly needed because the yt reader requires the coarse and fine patch to have the same shape. | |
| void | WriteCoarseScalar (const std::string &field_name, const MultiFab *F_cp, const MultiFab *F_fp, const DistributionMapping &dm, const std::string &filename, const std::string &level_prefix, const int lev, const bool plot_guards, const int icomp) |
Write the coarse scalar multifab F_cp to the file filename after sampling/interpolating its value on the fine grid corresponding to F_fp. This is mainly needed because the yt reader requires the coarse and fine patch to have the same shape. | |
| #define WARPX_UNITY_ID |
|
strong |
Unique identifiers for WarpX scalar and vector fields.
These are implemented as amrex::MultiFab (one or one per component "direction", respectively) and stored in the ablastr::fields::MultiFabRegister .
| void WriteCoarseScalar | ( | const std::string & | field_name, |
| const MultiFab * | F_cp, | ||
| const MultiFab * | F_fp, | ||
| const DistributionMapping & | dm, | ||
| const std::string & | filename, | ||
| const std::string & | level_prefix, | ||
| const int | lev, | ||
| const bool | plot_guards, | ||
| const int | icomp ) |
Write the coarse scalar multifab F_cp to the file filename after sampling/interpolating its value on the fine grid corresponding to F_fp. This is mainly needed because the yt reader requires the coarse and fine patch to have the same shape.
| void WriteCoarseVector | ( | const std::string & | field_name, |
| const MultiFab * | Fx_cp, | ||
| const MultiFab * | Fy_cp, | ||
| const MultiFab * | Fz_cp, | ||
| const MultiFab * | Fx_fp, | ||
| const MultiFab * | Fy_fp, | ||
| const MultiFab * | Fz_fp, | ||
| const DistributionMapping & | dm, | ||
| const std::string & | filename, | ||
| const std::string & | level_prefix, | ||
| const int | lev, | ||
| const bool | plot_guards ) |
Write the coarse vector multifab F*_cp to the file filename after sampling/interpolating its value on the fine grid corresponding to F*_fp. This is mainly needed because the yt reader requires the coarse and fine patch to have the same shape.
| void WriteRawMF | ( | const MultiFab & | F, |
| const DistributionMapping & | dm, | ||
| const std::string & | filename, | ||
| const std::string & | level_prefix, | ||
| const std::string & | field_name, | ||
| const int | lev, | ||
| const bool | plot_guards ) |
Write the data from MultiFab F into the file filename as a raw field (i.e. no interpolation to cell centers). Write guard cells if plot_guards is True.
| void WriteZeroRawMF | ( | const MultiFab & | F, |
| const DistributionMapping & | dm, | ||
| const std::string & | filename, | ||
| const std::string & | level_prefix, | ||
| const std::string & | field_name, | ||
| const int | lev, | ||
| const IntVect | ng ) |
Write a multifab of the same shape as F but filled with 0. (The shape includes guard cells if plot_guards is True.) This is mainly needed because the yt reader requires all levels of the coarse/fine patch to be written, but WarpX does not have data for the coarse patch of level 0 (meaningless).