Fourth order Adams-Moulton integration method for solving ODE. More...
Public Member Functions | |
TypeInfo ("AdamsMoulton4") | |
Type info. More... | |
AdamsMoulton4 (const word &baseName, repository &owner, const pointStructure &pStruct, const word &method) | |
Construct from components. More... | |
uniquePtr< integration > | clone () const override |
virtual | ~AdamsMoulton4 ()=default |
Destructor. More... | |
add_vCtor (integration, AdamsMoulton4, word) | |
bool | predict (real dt, realx3Vector_D &y, realx3Vector_D &dy) override |
bool | correct (real dt, realx3Vector_D &y, realx3Vector_D &dy) override |
bool | setInitialVals (const int32IndexContainer &newIndices, const realx3Vector &y) override |
Set the initial values for new indices. More... | |
bool | needSetInitialVals () const override |
Check if the method requires any set initial vals. More... | |
bool | predictAll (real dt, realx3Vector_D &y, realx3Vector_D &dy, range activeRng) |
Prediction step on all points in the active range. More... | |
template<typename activeFunctor > | |
bool | predictRange (real dt, realx3Vector_D &y, realx3Vector_D &dy, activeFunctor activeP) |
Prediction step on active points in the active range. More... | |
bool | intAll (real dt, realx3Vector_D &y, realx3Vector_D &dy, range activeRng) |
Integrate on all points in the active range. More... | |
template<typename activeFunctor > | |
bool | intRange (real dt, realx3Vector_D &y, realx3Vector_D &dy, activeFunctor activeP) |
Integrate on active points in the active range. More... | |
![]() | |
TypeInfo ("integration") | |
Type info. More... | |
integration (const word &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &initialValField) | |
Construct from components. More... | |
integration (const integration &)=default | |
Copy constructor. More... | |
integration (integration &&)=default | |
Move constructor. More... | |
integration & | operator= (const integration &)=default |
Copy assignment. More... | |
integration & | operator= (integration &&)=default |
Move assignment. More... | |
virtual | ~integration ()=default |
Destructor. More... | |
create_vCtor (integration, word,(const word &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &initialValField),(baseName, pStruct, method, initialValField)) | |
Add a virtual constructor. More... | |
const auto & | pStruct () const |
Const ref to pointStructure. More... | |
const word & | baseName () const |
Base name. More... | |
repository & | owner () |
Ref to the owner repository. More... | |
virtual void | updateBoundariesSlaveToMasterIfRequested ()=0 |
virtual word | method () const =0 |
return integration method More... | |
virtual bool | predict (real dt, realx3PointField_D &y, realx3PointField_D &dy)=0 |
Prediction step in integration. More... | |
virtual bool | predict (real dt, realx3Field_D &y, realx3PointField_D &dy)=0 |
virtual bool | correct (real dt, realx3PointField_D &y, realx3PointField_D &dy)=0 |
Correction/main integration step. More... | |
virtual bool | correctPStruct (real dt, pointStructure &pStruct, realx3PointField_D &vel)=0 |
Protected Types | |
using | rpIntegration = Kokkos::RangePolicy< DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< int32 > > |
Range policy for integration kernel. More... | |
Protected Attributes | |
realx3PointField_D & | y0_ |
y at time t More... | |
realx3PointField_D & | dy0_ |
dy at time t More... | |
realx3PointField_D & | dy1_ |
dy at time t-dt More... | |
realx3PointField_D & | dy2_ |
dy at time t-2*dt More... | |
Additional Inherited Members | |
![]() | |
static uniquePtr< integration > | create (const word &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &initialValField) |
Create the polymorphic object based on inputs. More... | |
Fourth order Adams-Moulton integration method for solving ODE.
This is a predictor-corrector integration method.
Definition at line 36 of file AdamsMoulton4.hpp.
|
protected |
Range policy for integration kernel.
Definition at line 59 of file AdamsMoulton4.hpp.
AdamsMoulton4 | ( | const word & | baseName, |
repository & | owner, | ||
const pointStructure & | pStruct, | ||
const word & | method | ||
) |
Construct from components.
Definition at line 26 of file AdamsMoulton4.cpp.
|
virtualdefault |
Destructor.
TypeInfo | ( | "AdamsMoulton4" | ) |
Type info.
|
inlineoverride |
Definition at line 74 of file AdamsMoulton4.hpp.
add_vCtor | ( | integration | , |
AdamsMoulton4 | , | ||
word | |||
) |
|
override |
Definition at line 84 of file AdamsMoulton4.cpp.
References pStruct.
|
override |
Definition at line 104 of file AdamsMoulton4.cpp.
References pStruct.
|
overridevirtual |
Set the initial values for new indices.
Implements integration.
Definition at line 122 of file AdamsMoulton4.cpp.
References internalField< T, MemorySpace >::insertSetElement(), and AdamsMoulton4::y0_.
|
inlineoverridevirtual |
Check if the method requires any set initial vals.
Implements integration.
Definition at line 105 of file AdamsMoulton4.hpp.
bool predictAll | ( | real | dt, |
realx3Vector_D & | y, | ||
realx3Vector_D & | dy, | ||
range | activeRng | ||
) |
Prediction step on all points in the active range.
Definition at line 131 of file AdamsMoulton4.cpp.
References VectorSingle< T, MemorySpace >::deviceViewAll(), and LAMBDA_HD.
bool predictRange | ( | real | dt, |
realx3Vector_D & | y, | ||
realx3Vector_D & | dy, | ||
activeFunctor | activeP | ||
) |
Prediction step on active points in the active range.
Definition at line 144 of file AdamsMoulton4.hpp.
References internalField< T, MemorySpace >::deviceViewAll(), VectorSingle< T, MemorySpace >::deviceViewAll(), AdamsMoulton4::dy0_, AdamsMoulton4::dy1_, AdamsMoulton4::dy2_, LAMBDA_HD, and AdamsMoulton4::y0_.
bool intAll | ( | real | dt, |
realx3Vector_D & | y, | ||
realx3Vector_D & | dy, | ||
range | activeRng | ||
) |
Integrate on all points in the active range.
Definition at line 161 of file AdamsMoulton4.cpp.
References VectorSingle< T, MemorySpace >::deviceViewAll(), and LAMBDA_HD.
bool intRange | ( | real | dt, |
realx3Vector_D & | y, | ||
realx3Vector_D & | dy, | ||
activeFunctor | activeP | ||
) |
Integrate on active points in the active range.
Definition at line 181 of file AdamsMoulton4.hpp.
References VectorSingle< T, MemorySpace >::deviceViewAll(), and LAMBDA_HD.
|
protected |
y at time t
Definition at line 43 of file AdamsMoulton4.hpp.
Referenced by AdamsMoulton4::predictRange(), and AdamsMoulton4::setInitialVals().
|
protected |
dy at time t
Definition at line 46 of file AdamsMoulton4.hpp.
Referenced by AdamsMoulton4::predictRange().
|
protected |
dy at time t-dt
Definition at line 49 of file AdamsMoulton4.hpp.
Referenced by AdamsMoulton4::predictRange().
|
protected |
dy at time t-2*dt
Definition at line 52 of file AdamsMoulton4.hpp.
Referenced by AdamsMoulton4::predictRange().