WarpX
BackTransformFunctor.H
Go to the documentation of this file.
1 /* Copyright 2021 Revathi Jambunathan
2  *
3  * This file is part of WarpX.
4  *
5  * License: BSD-3-Clause-LBNL
6  */
7 #ifndef WARPX_BACKTRANSFORMFUNCTOR_H_
8 #define WARPX_BACKTRANSFORMFUNCTOR_H_
9 
10 #include "ComputeDiagFunctor.H"
11 
12 #include <AMReX_Box.H>
13 #include <AMReX_IntVect.H>
14 #include <AMReX_REAL.H>
15 #include <AMReX_Vector.H>
16 
17 #include <AMReX_BaseFwd.H>
18 
19 #include <string>
20 
33 {
34 public:
47  BackTransformFunctor ( const amrex::MultiFab * mf_src, int lev,
48  int ncomp, int num_buffers,
50  amrex::Vector< std::string > varnames_fields,
51  amrex::IntVect crse_ratio= amrex::IntVect(1));
52 
66  void operator ()(amrex::MultiFab& mf_dst, int dcomp, int i_buffer) const override;
67 
82  void PrepareFunctorData ( int i_buffer, bool z_slice_in_domain,
83  amrex::Real current_z_boost,
84  amrex::Box buffer_box, int k_index_zlab,
85  int snapshot_full ) override;
89  void InitData () override;
100  amrex::Real beta_boost) const;
101 private:
103  amrex::MultiFab const * const m_mf_src = nullptr;
105  int const m_lev;
107  int const m_num_buffers;
123 
129 };
130 
131 #endif
Functor to back-transform cell-centered data and store result in mf_out.
Definition: BackTransformFunctor.H:33
amrex::Vector< amrex::Box > m_buffer_box
Definition: BackTransformFunctor.H:109
void InitData() override
Definition: BackTransformFunctor.cpp:177
amrex::MultiFab const *const m_mf_src
Definition: BackTransformFunctor.H:103
amrex::Vector< std::string > m_varnames_fields
Definition: BackTransformFunctor.H:122
amrex::Vector< int > m_perform_backtransform
Definition: BackTransformFunctor.H:116
amrex::Vector< int > m_k_index_zlab
Definition: BackTransformFunctor.H:118
void PrepareFunctorData(int i_buffer, bool z_slice_in_domain, amrex::Real current_z_boost, amrex::Box buffer_box, int k_index_zlab, int snapshot_full) override
Prepare data required to back-transform fields for lab-frame snapshot, i_buffer.
Definition: BackTransformFunctor.cpp:164
amrex::Vector< std::string > m_varnames
Definition: BackTransformFunctor.H:120
void LorentzTransformZ(amrex::MultiFab &data, amrex::Real gamma_boost, amrex::Real beta_boost) const
In-place Lorentz-transform of MultiFab, data, from boosted-frame to the lab-frame for all fields,...
Definition: BackTransformFunctor.cpp:227
BackTransformFunctor(const amrex::MultiFab *mf_src, int lev, int ncomp, int num_buffers, amrex::Vector< std::string > varnames, amrex::Vector< std::string > varnames_fields, amrex::IntVect crse_ratio=amrex::IntVect(1))
Definition: BackTransformFunctor.cpp:35
amrex::Vector< amrex::Real > m_current_z_boost
Definition: BackTransformFunctor.H:111
void operator()(amrex::MultiFab &mf_dst, int dcomp, int i_buffer) const override
Lorentz-transform mf_src for the ith buffer and write the result in mf_dst.
Definition: BackTransformFunctor.cpp:49
int const m_num_buffers
Definition: BackTransformFunctor.H:107
amrex::Vector< int > m_map_varnames
Definition: BackTransformFunctor.H:128
int const m_lev
Definition: BackTransformFunctor.H:105
Functor to compute a diagnostic and store the result in existing MultiFab.
Definition: ComputeDiagFunctor.H:17
int gamma_boost
Definition: compute_domain.py:41
data
Definition: run_alltests_1node.py:325