Definition at line 43 of file RK4Advancer.H.
#include <RK4Advancer.H>
Public Types | |
enum | { ZAXPYKERNEL =0, RKSUMKERNEL, NUMTIMERS } |
typedef simulation::advancer::base< DomainType > | DomainAdvancerType |
typedef DomainType::GridType | GridType |
typedef DomainType::StateType | StateType |
typedef DomainType::HaloType | HaloType |
typedef DomainType::OperatorType | OperatorType |
typedef DomainType::RHSType | RHSType |
![]() | |
typedef DomainType::GridType | GridType |
typedef DomainType::StateType | StateType |
Public Member Functions | |
rk4advancer () | |
rk4advancer (DomainType &inDomain) | |
rk4advancer (fixtures::ConfigurationType &inConfig, DomainType &inDomain) | |
void | SetCommunication (bool onoff) |
void | SetTimers (bool onoff) |
virtual int | Configure (fixtures::ConfigurationType &inConfig) |
virtual int | InitializeAdvance () |
Initialize advance called every time step. More... | |
virtual void | SetRHS (RHSType &inRHS) |
void | SetMessageStream (std::ostream &inStream) |
virtual int | InitializeAdvancer (DomainType &inDomain, pcpp::ParallelGlobalType &inGlobal, std::ostream &inStream) |
Initializes the advancer object. More... | |
int | SetupStateMessage (StateType &inState, HaloType &inHalo) |
int | PackStateMessage (StateType &inState, HaloType &inHalo, int messageId, int threadId) |
int | UnpackStateMessage (StateType &inState, HaloType &inHalo, int messageId, int threadId) |
int | SyncStates () |
virtual int | FinalizeAdvance () |
Last call after 1 advance step. More... | |
virtual int | GetStateUpdate (GridType &inGrid, StateType &inState, StateType &stateUpdate) |
virtual int | InterGridExchange () |
virtual void | SetError (const std::string &errorMessage, fixtures::CommunicatorType &inComm) |
virtual int | ErrorCheck (fixtures::CommunicatorType &inComm) |
virtual int | AdvanceDomain () |
Advances domain, grid, and state by one step. More... | |
int | GetRHS (GridType ¤tGrid, HaloType &gridHalo, StateType &inState, StateType &stateRHS, int myThreadId) |
int | AXPY (double a, StateType &xState, StateType &yState, StateType &outState, int localGridIndex, int myThreadId) |
int | RKSum (int localGridIndex, int myThreadId) |
void | GetTimers (double **timersPtr, const char ***namesPtr, unsigned int *numTimers) |
void | GetCounters (long long ***countersPtr) |
void | SetGlobal (pcpp::ParallelGlobalType &inGlobal) |
void | SyncIntervals () |
![]() | |
base () | |
base (DomainType &inDomain) | |
virtual int | InitializeAdvancer (DomainType &inDomain, std::ostream &messageStream) |
Public Attributes | |
bool | errCheck |
![]() | |
bool | errCheck |
Protected Attributes | |
pcpp::ParallelGlobalType * | myGlobalPtr |
bool | timersOn |
bool | communicateState |
double | advancerTimers [NUMTIMERS] |
long long * | advancerCounters [NUMTIMERS] |
int | numStateFields |
int | myErrorCode |
std::vector< int > | threadStage |
std::vector< int > | threadGrid |
int | numGrids |
int | numStages |
double | rkH |
double * | timePtr |
double * | timeStepPtr |
std::vector< RHSType * > | rhsHandlers |
RHSType * | rhsHandlerPtr |
std::vector< std::string > | advancerFields |
std::vector< double > | stageWeights |
std::vector< double > | updateWeights |
std::vector< std::vector< StateType > > | stageStates |
std::vector< std::vector< StateType > > | stageKs |
std::vector< size_t > | numPointsGrids |
std::vector< std::vector< size_t > > | gridSizes |
std::vector< int > | stateMessageIds |
std::vector< double * > | gridTimes |
std::vector< std::vector< std::vector< size_t > > > | gridFortranIntervals |
std::vector< std::vector< int > > | gridNeighbors |
double | myTime |
double | myTimeStep |
![]() | |
fixtures::ConfigurationType | advancerConfig |
DomainType * | domainPtr |
std::ostream * | messageStreamPtr |
typedef simulation::advancer::base<DomainType> DomainAdvancerType |
Definition at line 50 of file RK4Advancer.H.
typedef DomainType::GridType GridType |
Definition at line 58 of file RK4Advancer.H.
typedef DomainType::HaloType HaloType |
Definition at line 60 of file RK4Advancer.H.
typedef DomainType::OperatorType OperatorType |
Definition at line 61 of file RK4Advancer.H.
typedef DomainType::RHSType RHSType |
Definition at line 62 of file RK4Advancer.H.
typedef DomainType::StateType StateType |
Definition at line 59 of file RK4Advancer.H.
anonymous enum |
Enumerator | |
---|---|
ZAXPYKERNEL | |
RKSUMKERNEL | |
NUMTIMERS |
Definition at line 47 of file RK4Advancer.H.
|
inline |
Definition at line 66 of file RK4Advancer.H.
|
inline |
Definition at line 79 of file RK4Advancer.H.
|
inline |
Definition at line 93 of file RK4Advancer.H.
|
inlinevirtual |
Advances domain, grid, and state by one step.
Performs advance the domain's state(s) . The domain
is replaced by
on success, and the old
is stored internally if needed.
Done by caller?
Reimplemented from base< DomainType >.
Definition at line 455 of file RK4Advancer.H.
References operators::AXPY(), error::FINAL, ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionEntry(), ParallelGlobalObj< CommunicatorType, StackType, ErrorType, ProfilerType >::FunctionExit(), error::IGX, error::INIT, and error::RHS.
Referenced by application::RunMaxwellSolver(), application::RunPlasCom2(), TestMaxwellRHSTimeIntegrate(), TestRK4Advancer(), and TestRK4Advancer2().
|
inline |
Definition at line 707 of file RK4Advancer.H.
References a, databuffer::Data(), FC_MODULE(), numComponents, numPoints, ix::profiler::Time(), and zaxpy().
|
inlinevirtual |
Reimplemented from base< DomainType >.
Definition at line 114 of file RK4Advancer.H.
References Parameters::GetValueVector().
|
inlinevirtual |
Reimplemented from base< DomainType >.
Definition at line 443 of file RK4Advancer.H.
|
inlinevirtual |
Last call after 1 advance step.
This function just copies out the final state to the domain's storage for it's state data
Reimplemented from base< DomainType >.
Definition at line 405 of file RK4Advancer.H.
|
inline |
Definition at line 886 of file RK4Advancer.H.
|
inline |
Definition at line 666 of file RK4Advancer.H.
|
inlinevirtual |
Definition at line 421 of file RK4Advancer.H.
|
inline |
Definition at line 879 of file RK4Advancer.H.
References timerNames.
Referenced by application::RunMaxwellSolver(), and application::RunPlasCom2().
|
inlinevirtual |
Initialize advance called every time step.
This function prepares any data structures for taking a time step. It resets the rkStage to 0, Zero's out any temporary structures, and does the appropriate assignments to the intermediate states. After this call, the substates for any previous step are no longer available.
Reimplemented from base< DomainType >.
Definition at line 133 of file RK4Advancer.H.
|
inlinevirtual |
Initializes the advancer object.
This function initializes the advancer to use the given domain, it's grids, and states. The required halo for the method is created for each grid and used to populate any halo buffers with the required state information to perform the first step. This particular one is specific to 1d scalar advection and populates the relevant parameters, Tau, boundary data, CFL, time, and the state field U.
inDomain | ref to the DomainType object which itself contains everything about the domain to operate on |
messageStream | ref to std::ostream object for any status messages, used for lifetime of advancer |
Definition at line 168 of file RK4Advancer.H.
References bufferSizes, databuffer::Data(), gridSizes, and numPoints.
Referenced by application::RunMaxwellSolver(), application::RunPlasCom2(), TestMaxwellRHSTimeIntegrate(), TestRK4Advancer(), and TestRK4Advancer2().
|
inlinevirtual |
Reimplemented from base< DomainType >.
Definition at line 425 of file RK4Advancer.H.
Definition at line 321 of file RK4Advancer.H.
References numComponents.
|
inline |
Definition at line 795 of file RK4Advancer.H.
References FC_MODULE(), numComponents, numPoints, rungekutta::rk4sum(), and ix::profiler::Time().
|
inline |
Definition at line 109 of file RK4Advancer.H.
Referenced by application::RunPlasCom2(), and TestMaxwellRHSTimeIntegrate().
|
inlinevirtual |
Reimplemented from base< DomainType >.
Definition at line 427 of file RK4Advancer.H.
|
inline |
Definition at line 891 of file RK4Advancer.H.
|
inlinevirtual |
Reimplemented from base< DomainType >.
Definition at line 148 of file RK4Advancer.H.
|
inlinevirtual |
Definition at line 138 of file RK4Advancer.H.
|
inline |
Definition at line 111 of file RK4Advancer.H.
Referenced by application::RunMaxwellSolver(), application::RunPlasCom2(), and TestMaxwellRHSTimeIntegrate().
Definition at line 315 of file RK4Advancer.H.
|
inline |
Definition at line 896 of file RK4Advancer.H.
References sizeextent::Flatten().
Referenced by application::RunMaxwellSolver(), application::RunPlasCom2(), TestMaxwellRHSTimeIntegrate(), and TestRK4Advancer2().
|
inline |
Definition at line 354 of file RK4Advancer.H.
Referenced by application::RunMaxwellSolver(), and application::RunPlasCom2().
|
inline |
Definition at line 337 of file RK4Advancer.H.
References numComponents.
|
protected |
Definition at line 938 of file RK4Advancer.H.
|
protected |
Definition at line 961 of file RK4Advancer.H.
|
protected |
Definition at line 937 of file RK4Advancer.H.
|
protected |
Definition at line 935 of file RK4Advancer.H.
bool errCheck |
Definition at line 64 of file RK4Advancer.H.
|
protected |
Definition at line 976 of file RK4Advancer.H.
|
protected |
Definition at line 984 of file RK4Advancer.H.
|
protected |
Definition at line 972 of file RK4Advancer.H.
|
protected |
Definition at line 974 of file RK4Advancer.H.
|
protected |
Definition at line 944 of file RK4Advancer.H.
|
protected |
Definition at line 929 of file RK4Advancer.H.
|
protected |
Definition at line 987 of file RK4Advancer.H.
|
protected |
Definition at line 988 of file RK4Advancer.H.
|
protected |
Definition at line 948 of file RK4Advancer.H.
|
protected |
Definition at line 971 of file RK4Advancer.H.
|
protected |
Definition at line 950 of file RK4Advancer.H.
|
protected |
Definition at line 943 of file RK4Advancer.H.
|
protected |
Definition at line 958 of file RK4Advancer.H.
|
protected |
Definition at line 957 of file RK4Advancer.H.
|
protected |
Definition at line 952 of file RK4Advancer.H.
|
protected |
Definition at line 968 of file RK4Advancer.H.
|
protected |
Definition at line 967 of file RK4Advancer.H.
|
protected |
Definition at line 964 of file RK4Advancer.H.
|
protected |
Definition at line 973 of file RK4Advancer.H.
|
protected |
Definition at line 946 of file RK4Advancer.H.
|
protected |
Definition at line 945 of file RK4Advancer.H.
|
protected |
Definition at line 954 of file RK4Advancer.H.
|
protected |
Definition at line 934 of file RK4Advancer.H.
|
protected |
Definition at line 955 of file RK4Advancer.H.
|
protected |
Definition at line 965 of file RK4Advancer.H.