WARPXM v1.10.0
Loading...
Searching...
No Matches
wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker Class Reference

The velocity space moment taker class takes moments in velocity space to calculate variables such as: n(x) = \int f(x,v) dv nv(x) = \int f(x,v)v dv etc. More...

#include <velocity_space_moment_taker.h>

Inheritance diagram for wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker:
wxm::dfem::variable_adjuster::variable_adjuster_t WmPatchProcess

Detailed Description

The velocity space moment taker class takes moments in velocity space to calculate variables such as: n(x) = \int f(x,v) dv nv(x) = \int f(x,v)v dv etc.

Public Member Functions

 VelocitySpaceMomentTaker ()=default
 Constructor.
 
void setup (const WxCryptSet &wxc) override
 Setup the spatial solver using the cryptset.
 
void solve (real time, variables_type &input) override
 Solves the velocity space moment and puts solution back into input We are calculating a velocity space moment given by equation 62 in Frontiers paper: \iiint F(v_{x},v_{y},v_{z}) dv_{x} dv_{y} dv_{z} \approx& \sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\sum\limits_{k=1}^{N}w_{i}w_{j}w_{k}F\left(v_{x}, v_{y}, v_{z}\right)\left|\mat{J}(\xi_{i},\xi_{j},\xi_{k})\right|.
 
void solve_old (real time, variables_type &input)
 
void solve_new (real time, variables_type &input)
 
std::vector< size_t > convertToOutputIndexes (const std::vector< int > &indexes) const
 Converts output indexes of the patch array into indexes of _out_idcs e.g.
 
- Public Member Functions inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
 variable_adjuster_t ()
 Constructor.
 
void setup (const WxCryptSet &wxc) override
 Setup the spatial solver using the cryptset.
 
virtual void solve (real time, variables_type &input)=0
 applies the variable adjuster to input
 
std::vector< wxm::array::patch_array_t * > get_patch_arrays (const variables_type &in)
 
void process () override
 
virtual const std::vector< size_t > & get_input_indices () const
 
int priority () const
 Getter function for priority.
 
virtual void Barrier (const WxMsgBase &msg, const real time, variables_type &input)
 An opportunity for the variable adjuster to perform any MPI operations it needs to after solve is called.
 
- Public Member Functions inherited from WmPatchProcess
 WmPatchProcess ()
 
virtual ~WmPatchProcess ()=default
 
void step ()
 
virtual void process ()=0
 
void setPatch (const WmUnstructuredPatch *patch)
 
void setParentTaskProcessor (WmPatchProcessor *taskProcessor)
 
virtual std::string name (std::string prefix="patchedProcessor.") const
 
virtual void setup (const WxCryptSet &wxc)
 
void setParentSolver (const WmSolverBase *solver)
 
void setDt (WxStepper::time_t dt)
 
void setTime (WxStepper::time_t time)
 
WxStepper::time_t getSuggestedDt () const
 
const WmUnstructuredPatchget_patch () const
 
const WmSolverget_solver () const
 

Additional Inherited Members

- Public Types inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
typedef wxm::temporal_solver::variables_type variables_type
 
- Protected Attributes inherited from wxm::dfem::variable_adjuster::variable_adjuster_t
std::vector< size_t > _var_idcs
 
std::vector< std::unique_ptr< WmApplication > > _apps
 
bool _grab_all = false
 
int _priority
 
- Protected Attributes inherited from WmPatchProcess
std::string _ppName
 
WmPatchProcessor_parentTaskProcessor
 
const WmUnstructuredPatch_patch
 
std::vector< std::string > _onSubdomains
 
WxStepper::time_t _time
 
WxStepper::time_t _dt
 
WxStepper::time_t _suggested_dt
 
WxLogStream _debStrm = WxLogger::get("warpx-root.console")->getDebugStream()
 
const WmSolverBase_parentSolver = nullptr
 

Constructor & Destructor Documentation

◆ VelocitySpaceMomentTaker()

wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::VelocitySpaceMomentTaker ( )
default

Constructor.

Member Function Documentation

◆ convertToOutputIndexes()

std::vector< size_t > wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::convertToOutputIndexes ( const std::vector< int > &  indexes) const

Converts output indexes of the patch array into indexes of _out_idcs e.g.

if nV patch array indexes are 11, 12, 13 and _out_idcs = [10, 11, 12, 13, 14], this returns [1, 2, 3] since 11, 12, 13 are the 1, 2, 3 indexes of _out_idcs

Parameters
indexesthe patch array indexes
Returns
converted_indexes

◆ setup()

void wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::setup ( const WxCryptSet wxc)
overridevirtual

Setup the spatial solver using the cryptset.

Parameters
wxcThe cryptset

Reimplemented from WmPatchProcess.

◆ solve()

void wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::solve ( real  time,
variables_type input 
)
overridevirtual

Solves the velocity space moment and puts solution back into input We are calculating a velocity space moment given by equation 62 in Frontiers paper: \iiint F(v_{x},v_{y},v_{z}) dv_{x} dv_{y} dv_{z} \approx& \sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\sum\limits_{k=1}^{N}w_{i}w_{j}w_{k}F\left(v_{x}, v_{y}, v_{z}\right)\left|\mat{J}(\xi_{i},\xi_{j},\xi_{k})\right|.

Parameters
time
inputq variables, some of which are also written into

Implements wxm::dfem::variable_adjuster::variable_adjuster_t.

◆ solve_new()

void wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::solve_new ( real  time,
variables_type input 
)

◆ solve_old()

void wxm::dfem::variable_adjuster::moment_taker::VelocitySpaceMomentTaker::solve_old ( real  time,
variables_type input 
)

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