Go to the documentation of this file.
32 Kokkos::Schedule<Kokkos::Static>,
33 Kokkos::IndexType<uint32>
49 "AdamsBashforth2::correct",
52 d_y[i] += dt*(
static_cast<real>(1.5) * d_dy[i] -
static_cast<real>(0.5) * d_dy1[i]);
76 "AdamsBashforth2::correct",
81 d_y[i] += dt*(
static_cast<real>(1.5) * d_dy[i] -
static_cast<real>(0.5) * d_dy1[i]);
107 pStruct.time().integrationFolder(),
108 objectFile::READ_IF_PRESENT,
109 objectFile::WRITE_ALWAYS
115 boundaryList_(
pStruct, method, *
this)
149 bool success =
false;
150 if(dy1l.isAllActive())
159 success = success && boundaryList_.correct(dt, y, dy);
171 bool success =
false;
172 if(dy1l.isAllActive())
181 success = success && boundaryList_.correctPStruct(dt,
pStruct, vel);
bool predict(real UNUSED(dt), realx3PointField_D &UNUSED(y), realx3PointField_D &UNUSED(dy)) final
Base class for integrating the first order ODE (IVP)
AdamsBashforth2(const word &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &initialValField)
Construct from components.
const pFlagTypeDevice & activePointsMaskDevice() const
pointField_D< realx3 > realx3PointField_D
Kokkos::DefaultExecutionSpace DefaultExecutionSpace
Default execution space, it can be device exe.
bool intAllActive(real dt, realx3Field_D &y, realx3PointField_D &dy, realx3PointField_D &dy1)
bool correct(real dt, realx3PointField_D &y, realx3PointField_D &dy) final
Correction/main integration step.
bool intScattered(real dt, realx3Field_D &y, realx3PointField_D &dy, realx3PointField_D &dy1)
INLINE_FUNCTION_H auto deviceView() const
Device view range [0, size)
word baseName(const word &w, char sep='.')
Find the base in a group separated by "." and return it.
bool correctPStruct(real dt, pointStructure &pStruct, realx3PointField_D &vel) final
const FieldType & field() const
Kokkos::RangePolicy< DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< uint32 > > rpIntegration
Range policy for integration kernel (alias)
range activeRange() const
bool setInitialVals(const int32IndexContainer &newIndices, const realx3Vector &y) final
Set the initial values for new indices.
void updateBoundariesSlaveToMasterIfRequested()
update boundaries if it is requested previousely (slave to master).
word groupNames(const word &bw, const word &tw, char sep='.')
Group words and output bw.tw.
void updateBoundariesSlaveToMasterIfRequested() override
It holds two vectors of indecis on Host and Device.