WarpX
Loading...
Searching...
No Matches
FieldEnergy Class Reference

#include <FieldEnergy.H>

Inheritance diagram for FieldEnergy:
ReducedDiags

Public Member Functions

 FieldEnergy (const std::string &rd_name)
void ComputeDiags (int step) final
amrex::Real ComputeNorm2 (const amrex::MultiFab &field, int lev)
 Calculate the integral of the field squared, taking into account the fraction of the cell volume within the domain.
Public Member Functions inherited from ReducedDiags
 ReducedDiags (const std::string &rd_name)
virtual ~ReducedDiags ()=default
 ReducedDiags (const ReducedDiags &)=default
ReducedDiagsoperator= (const ReducedDiags &)=default
 ReducedDiags (ReducedDiags &&)=default
ReducedDiagsoperator= (ReducedDiags &&)=default
virtual void InitData ()
virtual void LoadBalance ()
virtual void ComputeDiagsMidStep (int step)
virtual void WriteToFile (int step) const
bool DoDiags (int step) const
virtual void WriteCheckpointData (std::string const &dir)
 Write out checkpoint related data.
virtual void ReadCheckpointData (std::string const &dir)
 Read in checkpoint related data.
void BackwardCompatibility () const

Additional Inherited Members

Public Attributes inherited from ReducedDiags
std::string m_path = "./diags/reducedfiles/"
 output path (default)
std::string m_extension = "txt"
 output extension (default)
std::string m_rd_name
 diags name
ablastr::utils::text::IntervalsParser m_intervals
 output intervals
bool m_write_header = false
 check if header should be written
std::string m_sep = " "
 separator in the output file
int m_precision = 14
 precision for data in the output file
std::vector< amrex::Realm_data
 output data

Detailed Description

This class mainly contains a function that computes the field energy.

Constructor & Destructor Documentation

◆ FieldEnergy()

FieldEnergy::FieldEnergy ( const std::string & rd_name)
explicit

constructor

Parameters
[in]rd_namereduced diags names

Member Function Documentation

◆ ComputeDiags()

void FieldEnergy::ComputeDiags ( int step)
finalvirtual

This function computes the field energy (EF): EF = sum( 1/2 * (|E|^2 * eps0 + |B|^2 / mu0) * dV ), where E is the electric field, B is the magnetic field, eps0 is the vacuum permittivity, mu0 is the vacuum permeability, dV is the cell volume (area, in 2D) and the sum is over all cells.

Parameters
[in]stepcurrent time step

Implements ReducedDiags.

◆ ComputeNorm2()

amrex::Real FieldEnergy::ComputeNorm2 ( const amrex::MultiFab & field,
int lev )

Calculate the integral of the field squared, taking into account the fraction of the cell volume within the domain.

Parameters
fieldThe MultiFab to be integrated
levThe refinement level
Returns
The integral

The documentation for this class was generated from the following files: