WarpX
Loading...
Searching...
No Matches
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
31
33{
34public:
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;
99 void LorentzTransformZ (amrex::MultiFab& data, amrex::Real gamma_boost,
100 amrex::Real beta_boost) const;
101private:
103 const amrex::MultiFab* m_mf_src = nullptr;
105 int m_lev;
123
129};
130
131#endif
amrex::Vector< amrex::Box > m_buffer_box
Definition BackTransformFunctor.H:109
void InitData() override
Definition BackTransformFunctor.cpp:177
amrex::Vector< std::string > m_varnames_fields
Definition BackTransformFunctor.H:122
amrex::Vector< int > m_perform_backtransform
Definition BackTransformFunctor.H:116
int m_num_buffers
Definition BackTransformFunctor.H:107
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
const amrex::MultiFab * m_mf_src
Definition BackTransformFunctor.H:103
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
int m_lev
Definition BackTransformFunctor.H:105
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
amrex::Vector< int > m_map_varnames
Definition BackTransformFunctor.H:128
ComputeDiagFunctor(int ncomp, amrex::IntVect crse_ratio)
Definition ComputeDiagFunctor.H:19
BoxND< 3 > Box
IntVectND< 3 > IntVect