www.cemf.ir
AdamsMoulton3 Class Reference

Third order Adams-Moulton integration method for solving ODE. More...

+ Inheritance diagram for AdamsMoulton3:
+ Collaboration diagram for AdamsMoulton3:

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< integrationclone () 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...
 
- Public Member Functions inherited from integration
 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...
 
integrationoperator= (const integration &)=default
 Copy assignment. More...
 
integrationoperator= (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 wordbaseName () const
 Base name. More...
 
repositoryowner ()
 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_Dy0_
 y at time t More...
 
realx3PointField_Ddy0_
 dy at time t More...
 
realx3PointField_Ddy1_
 dy at time t-dt More...
 

Additional Inherited Members

- Static Public Member Functions inherited from integration
static uniquePtr< integrationcreate (const word &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &initialValField)
 Create the polymorphic object based on inputs. More...
 

Detailed Description

Third order Adams-Moulton integration method for solving ODE.

This is a predictor-corrector integration method.

Definition at line 36 of file AdamsMoulton3.hpp.

Member Typedef Documentation

◆ rpIntegration

using rpIntegration = Kokkos::RangePolicy< DefaultExecutionSpace, Kokkos::Schedule<Kokkos::Static>, Kokkos::IndexType<int32> >
protected

Range policy for integration kernel.

Definition at line 56 of file AdamsMoulton3.hpp.

Constructor & Destructor Documentation

◆ AdamsMoulton3()

AdamsMoulton3 ( const word baseName,
repository owner,
const pointStructure pStruct,
const word method 
)

Construct from components.

Definition at line 26 of file AdamsMoulton3.cpp.

◆ ~AdamsMoulton3()

virtual ~AdamsMoulton3 ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeInfo()

TypeInfo ( "AdamsMoulton3"  )

Type info.

◆ clone()

uniquePtr<integration> clone ( ) const
inlineoverride

Definition at line 71 of file AdamsMoulton3.hpp.

◆ add_vCtor()

add_vCtor ( integration  ,
AdamsMoulton3  ,
word   
)

Add this to the virtual constructor table.

◆ predict()

bool predict ( real  dt,
realx3Vector_D y,
realx3Vector_D dy 
)
override

Definition at line 73 of file AdamsMoulton3.cpp.

References pStruct.

◆ correct()

bool correct ( real  dt,
realx3Vector_D y,
realx3Vector_D dy 
)
override

Definition at line 93 of file AdamsMoulton3.cpp.

References pStruct.

◆ setInitialVals()

bool setInitialVals ( const int32IndexContainer newIndices,
const realx3Vector y 
)
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_.

+ Here is the call graph for this function:

◆ needSetInitialVals()

bool needSetInitialVals ( ) const
inlineoverridevirtual

Check if the method requires any set initial vals.

Implements integration.

Definition at line 102 of file AdamsMoulton3.hpp.

◆ predictAll()

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.

+ Here is the call graph for this function:

◆ predictRange()

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_.

+ Here is the call graph for this function:

◆ intAll()

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.

+ Here is the call graph for this function:

◆ intRange()

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.

+ Here is the call graph for this function:

Member Data Documentation

◆ y0_

realx3PointField_D& y0_
protected

y at time t

Definition at line 43 of file AdamsMoulton3.hpp.

Referenced by AdamsMoulton3::predictRange(), and AdamsMoulton3::setInitialVals().

◆ dy0_

realx3PointField_D& dy0_
protected

dy at time t

Definition at line 46 of file AdamsMoulton3.hpp.

Referenced by AdamsMoulton3::predictRange().

◆ dy1_

realx3PointField_D& dy1_
protected

dy at time t-dt

Definition at line 49 of file AdamsMoulton3.hpp.

Referenced by AdamsMoulton3::predictRange().


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