1#ifndef WM_TEMPORALSOLVER_H
2#define WM_TEMPORALSOLVER_H
4#include "sync/synchronizer.h"
16class distributed_variable_t;
20namespace variable_adjuster
22class variable_adjuster_t;
26class spatial_solver_t;
36 std::vector<std::unique_ptr<WmHostAction>> processors_;
38 bool add_variables(
const WxCryptSet& wxc,
const std::string&
name);
41 std::vector<std::vector<std::unique_ptr<wxm::sync::patch_synchronizer_t>>>
46 typedef std::vector<std::pair<wxm::variable::distributed_variable_t*, size_t>>
66 const std::vector<wxm::dfem::variable_adjuster::variable_adjuster_t*>&
87 std::vector<wxm::dfem::variable_adjuster::variable_adjuster_t*>
adjusters_;
Opaque Pointer object that carries the referenced data type, but does not expose this payload type as...
Definition: wmopaqueptr.h:81
The WmHostAction class is a base class for sub-solvers in the WARPXM system.
Definition: wmhostaction.h:35
Definition: wmunstructuredpatch.h:22
WxCryptSet extends WxCrypt by providing, in addition to name-value pairs, an set of named WxCryptSets...
Definition: wxcryptset.h:35
virtual std::string name() const
Get name of object.
WxRange represents a hyper-rectangular domain of an n-dimensional space of integers.
Definition: wxrange.h:23
Base class for all temporal solvers.
Definition: wmtemporalsolver.h:34
int min_priority
Definition: wmtemporalsolver.h:92
void fill_local(size_t i, real val=0)
fill the temporal variables associated with stage i with the given value
std::vector< std::pair< wxm::variable::distributed_variable_t *, size_t > > variables_type
Definition: wmtemporalsolver.h:47
const std::vector< wxm::dfem::variable_adjuster::variable_adjuster_t * > & getVariableAdjusters() const
Definition: wmtemporalsolver.h:67
std::vector< wxm::dfem::solver::spatial_solver_t * > spatial_solvers_
Definition: wmtemporalsolver.h:97
void start_sync(size_t i)
Asynchronously start syncing ghost cell data on stage i.
void typeCheck() override
Check that the provided variables meet the expected variable types for this hostaction.
void setup(const WxCryptSet &wxc) override
Setup hostaction object using supplied cryptset.
void finish_sync(size_t i)
wait for syncing on stage i to finish
temporal_solver(const WmConstOpaquePtr &parent_solver)
Definition: wmtemporalsolver.h:106
std::vector< wxm::dfem::variable_adjuster::variable_adjuster_t * > adjusters_
Definition: wmtemporalsolver.h:87
std::vector< variables_type > variables_
Definition: wmtemporalsolver.h:100
std::vector< variables_type > & getVariables()
This function grabs the variables owned by this temporal solver.
Definition: wmtemporalsolver.h:80
std::vector< temporal_var > temporal_vars_
Definition: wmtemporalsolver.h:103
int max_priority
Definition: wmtemporalsolver.h:94
bool needsDomain() const override
Return true if this updater needs a domain to work on.
Definition: wmtemporalsolver.h:112
std::vector< int > va_priorities
Definition: wmtemporalsolver.h:90
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
Definition: wmtemporalsolver.h:50
size_t num_dof
Definition: wmtemporalsolver.h:55
const WxRange * range
Definition: wmtemporalsolver.h:54
size_t index
Definition: wmtemporalsolver.h:51
temporal_var(size_t index, const WmUnstructuredPatch *patch, const WxRange *full, size_t num_dof)
Definition: wmtemporalsolver.h:57
const WmUnstructuredPatch * patch
Definition: wmtemporalsolver.h:52
#define real
Definition: wmoclunstructuredreconstruction.h:11