Third order Adams-Moulton integration method for solving ODE. More...
Public Member Functions | |
TypeInfo ("AdamsMoulton3") | |
Type info. More... | |
AdamsMoulton3 (const word &baseName, repository &owner, const pointStructure &pStruct, const word &method) | |
Construct from components. More... | |
uniquePtr< integration > | clone () const override |
virtual | ~AdamsMoulton3 ()=default |
Destructor. More... | |
add_vCtor (integration, AdamsMoulton3, word) | |
Add this to the virtual constructor table. More... | |
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... | |
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... | |
Third order Adams-Moulton integration method for solving ODE.
This is a predictor-corrector integration method.
Definition at line 36 of file AdamsMoulton3.hpp.
|
protected |
Range policy for integration kernel.
Definition at line 56 of file AdamsMoulton3.hpp.
AdamsMoulton3 | ( | const word & | baseName, |
repository & | owner, | ||
const pointStructure & | pStruct, | ||
const word & | method | ||
) |
Construct from components.
Definition at line 26 of file AdamsMoulton3.cpp.
|
virtualdefault |
Destructor.
TypeInfo | ( | "AdamsMoulton3" | ) |
Type info.
|
inlineoverride |
Definition at line 71 of file AdamsMoulton3.hpp.
add_vCtor | ( | integration | , |
AdamsMoulton3 | , | ||
word | |||
) |
Add this to the virtual constructor table.
|
override |
Definition at line 73 of file AdamsMoulton3.cpp.
References pStruct.
|
override |
Definition at line 93 of file AdamsMoulton3.cpp.
References pStruct.
|
overridevirtual |
Set the initial values for new indices.
Implements integration.
Definition at line 111 of file AdamsMoulton3.cpp.
References internalField< T, MemorySpace >::insertSetElement(), and AdamsMoulton3::y0_.
|
inlineoverridevirtual |
Check if the method requires any set initial vals.
Implements integration.
Definition at line 102 of file AdamsMoulton3.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 120 of file AdamsMoulton3.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 141 of file AdamsMoulton3.hpp.
References internalField< T, MemorySpace >::deviceViewAll(), VectorSingle< T, MemorySpace >::deviceViewAll(), AdamsMoulton3::dy0_, AdamsMoulton3::dy1_, LAMBDA_HD, and AdamsMoulton3::y0_.
bool intAll | ( | real | dt, |
realx3Vector_D & | y, | ||
realx3Vector_D & | dy, | ||
range | activeRng | ||
) |
Integrate on all points in the active range.
Definition at line 146 of file AdamsMoulton3.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 178 of file AdamsMoulton3.hpp.
References VectorSingle< T, MemorySpace >::deviceViewAll(), and LAMBDA_HD.
|
protected |
y at time t
Definition at line 43 of file AdamsMoulton3.hpp.
Referenced by AdamsMoulton3::predictRange(), and AdamsMoulton3::setInitialVals().
|
protected |
dy at time t
Definition at line 46 of file AdamsMoulton3.hpp.
Referenced by AdamsMoulton3::predictRange().
|
protected |
dy at time t-dt
Definition at line 49 of file AdamsMoulton3.hpp.
Referenced by AdamsMoulton3::predictRange().