# PhasicFlow: AdamsBashforth3 Class Reference
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

AdamsBashforth3 Class Reference

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

Inheritance diagram for AdamsBashforth3:
[legend]
Collaboration diagram for AdamsBashforth3:
[legend]

## Public Member Functions

| TypeInfo ("AdamsBashforth3")
| AdamsBashforth3 (const word &baseName, repository &owner, const pointStructure &pStruct, const word &method)
| Construct from components. More...
uniquePtr< integration > | clone () const override
virtual | ~AdamsBashforth3 ()=default
| Destructor. More...
| add_vCtor (integration, AdamsBashforth3, word)
| Add this to the virtual constructor table. More...
bool | predict (real UNUSED(dt), realx3Vector_D &UNUSED(y), realx3Vector_D &UNUSED(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 | 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...
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

pointField< VectorSingle, AB3History > & | history_
| Integration history. More...

## Additional Inherited Members

Static Public Member Functions inherited from integration
static uniquePtr< integration > | create (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-Bashforth integration method for solving ODE.

This is a one-step integration method and does not have prediction step.

Definition at line 73 of file AdamsBashforth3.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 87 of file AdamsBashforth3.hpp.

## Constructor & Destructor Documentation

## AdamsBashforth3()

AdamsBashforth3 | ( | const word & | baseName,
|  | repository & | owner,
|  | const pointStructure & | pStruct,
|  | const word & | method
| ) |  |

Construct from components.

Definition at line 26 of file AdamsBashforth3.cpp.

References pFlow::zero3.

## ~AdamsBashforth3()

virtual ~AdamsBashforth3 | ( |  | ) |

virtualdefault

Destructor.

## Member Function Documentation

## TypeInfo()

TypeInfo | ( | "AdamsBashforth3" |  | ) |

## clone()

uniquePtr<integration> clone | ( |  | ) | const

inlineoverride

Definition at line 103 of file AdamsBashforth3.hpp.

## add_vCtor()

add_vCtor | ( | integration | ,
|  | AdamsBashforth3 | ,
|  | word |
| ) |  |

Add this to the virtual constructor table.

## predict()

bool predict | ( | real | UNUSEDdt,
|  | realx3Vector_D & | UNUSEDy,
|  | realx3Vector_D & | UNUSEDdy
| ) |  |

override

Definition at line 49 of file AdamsBashforth3.cpp.

## correct()

bool correct | ( | real | dt,
|  | realx3Vector_D & | y,
|  | realx3Vector_D & | dy
| ) |  |

override

Definition at line 60 of file AdamsBashforth3.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 79 of file AdamsBashforth3.cpp.

## needSetInitialVals()

bool needSetInitialVals | ( |  | ) | const

inlineoverridevirtual

Check if the method requires any set initial vals.

Implements integration.

Definition at line 133 of file AdamsBashforth3.hpp.

## intAll()

bool intAll | ( | real | dt,
|  | realx3Vector_D & | y,
|  | realx3Vector_D & | dy,
|  | range | activeRng
| ) |  |

Integrate on all points in the active range.

Definition at line 86 of file AdamsBashforth3.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 157 of file AdamsBashforth3.hpp.

References internalField< T, void >::deviceViewAll(), VectorSingle< T, MemorySpace >::deviceViewAll(), and LAMBDA_HD.

Here is the call graph for this function:

## Member Data Documentation

## history_

pointField<VectorSingle,AB3History>& history_

protected

Integration history.

Definition at line 80 of file AdamsBashforth3.hpp.

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

- src/Integration/AdamsBashforth3/AdamsBashforth3.hpp
- src/Integration/AdamsBashforth3/AdamsBashforth3.cpp