19 Commits

Author SHA1 Message Date
HRN
0acd52f1b1 documentation for v1.0 2025-01-10 13:02:07 +03:30
HRN
53c7b23728 merge from main 2025-01-10 12:37:42 +03:30
ce7070dc37 doc/html updated for integration 2023-04-23 12:52:57 -07:00
01034d0a26 Merge branch 'main' into documentation 2023-04-23 12:50:42 -07:00
aef6654c32 ggl code 2023-04-19 02:32:53 -07:00
67a93a006b meta 2023-04-18 13:17:24 -07:00
eeea0077ec Merge branch 'main' into documentation 2023-04-18 13:16:05 -07:00
93f6d6cfc3 logo added to documentation 2023-04-14 10:28:41 -07:00
3b4ed58bb1 Merge branch 'main' into documentation 2023-04-14 10:27:33 -07:00
123023579a doc for Geometry 2023-04-13 11:46:41 -07:00
895e48d89f Merge branch 'main' into documentation 2023-04-13 11:43:45 -07:00
f0e9896b26 style of documentation changed 2023-04-02 14:53:54 -07:00
57a47752cf Documentation style changed 2023-04-02 14:52:11 -07:00
b66082af0d doc 2023-04-02 11:35:43 -07:00
1ead684e8b Merge branch 'main' into documentation 2023-04-02 09:20:34 -07:00
bf59781bec rotating axis motion 2023-03-31 10:54:16 -07:00
6bf532ceb3 documentation for rotatingAxis 2023-03-31 10:50:39 -07:00
fa666de68a Merge branch 'main' into documentation 2023-03-31 10:49:33 -07:00
04f3b2a150 how to build added 2023-03-27 10:16:23 -07:00
8396 changed files with 856381 additions and 107246 deletions

1
.gitignore vendored
View File

@ -44,7 +44,6 @@ bin/**
lib/** lib/**
test*/** test*/**
**/**notnow **/**notnow
doc/code-documentation/
doc/DTAGS doc/DTAGS
# all possible time folders # all possible time folders
**/[0-9] **/[0-9]

View File

@ -3,17 +3,30 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
# set the project name and version # set the project name and version
project(phasicFlow VERSION 1.0 ) project(phasicFlow VERSION 1.0 )
set(CMAKE_CXX_STANDARD 20 CACHE STRING "" FORCE) set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_INSTALL_PREFIX ${phasicFlow_SOURCE_DIR} CACHE PATH "Install path of phasicFlow" FORCE) set(CMAKE_INSTALL_PREFIX ${phasicFlow_SOURCE_DIR} CACHE PATH "Install path of phasicFlow" FORCE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "build type") set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE)
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build using shared libraries" FORCE) set(BUILD_SHARED_LIBS ON CACHE BOOL "Build using shared libraries" FORCE)
mark_as_advanced(FORCE var BUILD_SHARED_LIBS) mark_as_advanced(FORCE var BUILD_SHARED_LIBS)
message(STATUS "Install prefix is:" ${CMAKE_INSTALL_PREFIX}) message(STATUS ${CMAKE_INSTALL_PREFIX})
include(cmake/globals.cmake) include(cmake/globals.cmake)
#Kokkos directory to be included
set(Kokkos_Source_DIR)
if(DEFINED ENV{Kokkos_DIR})
set(Kokkos_Source_DIR $ENV{Kokkos_DIR})
else()
set(Kokkos_Source_DIR $ENV{HOME}/Kokkos/kokkos)
endif()
message(STATUS "Kokkos source directory is ${Kokkos_Source_DIR}")
add_subdirectory(${Kokkos_Source_DIR} ./kokkos)
Kokkos_cmake_settings()
option(pFlow_STD_Parallel_Alg "Use TTB std parallel algorithms" ON) option(pFlow_STD_Parallel_Alg "Use TTB std parallel algorithms" ON)
option(pFlow_Build_Serial "Build phasicFlow and backends for serial execution" OFF) option(pFlow_Build_Serial "Build phasicFlow and backends for serial execution" OFF)
option(pFlow_Build_OpenMP "Build phasicFlow and backends for OpenMP execution" OFF) option(pFlow_Build_OpenMP "Build phasicFlow and backends for OpenMP execution" OFF)
@ -21,8 +34,6 @@ option(pFlow_Build_Cuda "Build phasicFlow and backends for Cuda execution" OFF
option(pFlow_Build_Double "Build phasicFlow with double precision floating-oint variables" ON) option(pFlow_Build_Double "Build phasicFlow with double precision floating-oint variables" ON)
option(pFlow_Build_MPI "Build for MPI parallelization. This will enable multi-gpu run, CPU run on clusters (distributed memory machine). Use this combination Cuda+MPI, OpenMP + MPI or Serial+MPI " OFF) option(pFlow_Build_MPI "Build for MPI parallelization. This will enable multi-gpu run, CPU run on clusters (distributed memory machine). Use this combination Cuda+MPI, OpenMP + MPI or Serial+MPI " OFF)
#for installing the required packages
include(cmake/preReq.cmake)
if(pFlow_Build_Serial) if(pFlow_Build_Serial)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE) set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
@ -35,8 +46,7 @@ elseif(pFlow_Build_OpenMP )
set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "OpenMP execution" FORCE) set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "OpenMP execution" FORCE)
set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "Cuda execution" FORCE) set(Kokkos_ENABLE_CUDA OFF CACHE BOOL "Cuda execution" FORCE)
set(Kokkos_ENABLE_CUDA_LAMBDA OFF CACHE BOOL "Cuda execution" FORCE) set(Kokkos_ENABLE_CUDA_LAMBDA OFF CACHE BOOL "Cuda execution" FORCE)
set(Kokkos_DEFAULT_HOST_PARALLEL_EXECUTION_SPACE Serial CACHE STRING "" FORCE) set(Kokkos_DEFAULT_HOST_PARALLEL_EXECUTION_SPACE SERIAL CACHE STRING "" FORCE)
set(Kokkos_DEFAULT_DEVICE_PARALLEL_EXECUTION_SPACE OpenMP CACHE STRING "" FORCE)
set(Kokkos_ENABLE_CUDA_CONSTEXPR OFF CACHE BOOL "Enable constexpr on cuda code" FORCE) set(Kokkos_ENABLE_CUDA_CONSTEXPR OFF CACHE BOOL "Enable constexpr on cuda code" FORCE)
elseif(pFlow_Build_Cuda) elseif(pFlow_Build_Cuda)
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE) set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
@ -55,7 +65,6 @@ include(cmake/makeExecutableGlobals.cmake)
configure_file(phasicFlowConfig.H.in phasicFlowConfig.H) configure_file(phasicFlowConfig.H.in phasicFlowConfig.H)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
#add a global include directory #add a global include directory
include_directories(src/setHelpers src/demComponent "${PROJECT_BINARY_DIR}") include_directories(src/setHelpers src/demComponent "${PROJECT_BINARY_DIR}")

View File

@ -78,14 +78,9 @@ pFlow::grainDEMSystem::grainDEMSystem(
REPORT(0)<< "\nCreating surface geometry for grainDEMSystem . . . "<<END_REPORT; REPORT(0)<< "\nCreating surface geometry for grainDEMSystem . . . "<<END_REPORT;
geometry_ = geometry::create(Control(), Property()); geometry_ = geometry::create(Control(), Property());
REPORT(0)<<"Reading shape dictionary ..."<<END_REPORT;
grains_ = makeUnique<grainShape>(
pFlow::shapeFile__,
&Control().caseSetup(),
Property() );
REPORT(0)<<"\nReading grain particles . . ."<<END_REPORT; REPORT(0)<<"\nReading grain particles . . ."<<END_REPORT;
particles_ = makeUnique<grainFluidParticles>(Control(), grains_()); particles_ = makeUnique<grainFluidParticles>(Control(), Property());
insertion_ = makeUnique<grainInsertion>( insertion_ = makeUnique<grainInsertion>(

View File

@ -46,8 +46,6 @@ protected:
uniquePtr<geometry> geometry_ = nullptr; uniquePtr<geometry> geometry_ = nullptr;
uniquePtr<grainShape> grains_ = nullptr;
uniquePtr<grainFluidParticles> particles_ = nullptr; uniquePtr<grainFluidParticles> particles_ = nullptr;
uniquePtr<grainInsertion> insertion_ = nullptr; uniquePtr<grainInsertion> insertion_ = nullptr;

View File

@ -35,8 +35,8 @@ void pFlow::grainFluidParticles::checkHostMemory()
pFlow::grainFluidParticles::grainFluidParticles( pFlow::grainFluidParticles::grainFluidParticles(
systemControl &control, systemControl &control,
const grainShape& grains) const property &prop)
: grainParticles(control, grains), : grainParticles(control, prop),
fluidForce_( fluidForce_(
objectFile( objectFile(
"fluidForce", "fluidForce",
@ -67,7 +67,7 @@ bool pFlow::grainFluidParticles::beforeIteration()
bool pFlow::grainFluidParticles::iterate() bool pFlow::grainFluidParticles::iterate()
{ {
const auto ti = this->TimeInfo();
accelerationTimer().start(); accelerationTimer().start();
pFlow::grainFluidParticlesKernels::acceleration( pFlow::grainFluidParticlesKernels::acceleration(
control().g(), control().g(),
@ -78,16 +78,16 @@ bool pFlow::grainFluidParticles::iterate()
contactTorque().deviceViewAll(), contactTorque().deviceViewAll(),
fluidTorque_.deviceViewAll(), fluidTorque_.deviceViewAll(),
pStruct().activePointsMaskDevice(), pStruct().activePointsMaskDevice(),
acceleration().deviceViewAll(), accelertion().deviceViewAll(),
rAcceleration().deviceViewAll() rAcceleration().deviceViewAll()
); );
accelerationTimer().end(); accelerationTimer().end();
intCorrectTimer().start(); intCorrectTimer().start();
dynPointStruct().correct(ti.dt()); dynPointStruct().correct(this->dt(), accelertion());
rVelIntegration().correct(ti.dt(), rVelocity(), rAcceleration()); rVelIntegration().correct(this->dt(), rVelocity(), rAcceleration());
intCorrectTimer().end(); intCorrectTimer().end();

View File

@ -59,7 +59,7 @@ protected:
public: public:
/// construct from systemControl and property /// construct from systemControl and property
grainFluidParticles(systemControl &control, const grainShape& grains); grainFluidParticles(systemControl &control, const property& prop);
~grainFluidParticles() override = default; ~grainFluidParticles() override = default;

View File

@ -75,18 +75,12 @@ pFlow::sphereDEMSystem::sphereDEMSystem(
propertyFile__, propertyFile__,
Control().caseSetup().path()); Control().caseSetup().path());
REPORT(0)<< "\nCreating surface geometry for sphereDEMSystem . . . "<<END_REPORT; REPORT(0)<< "\nCreating surface geometry for sphereDEMSystem . . . "<<END_REPORT;
geometry_ = geometry::create(Control(), Property()); geometry_ = geometry::create(Control(), Property());
REPORT(0)<<"Reading shapes dictionary..."<<END_REPORT;
spheres_ = makeUnique<sphereShape>(
pFlow::shapeFile__,
&Control().caseSetup(),
Property());
REPORT(0)<<"\nReading sphere particles . . ."<<END_REPORT; REPORT(0)<<"\nReading sphere particles . . ."<<END_REPORT;
particles_ = makeUnique<sphereFluidParticles>(Control(), spheres_()); particles_ = makeUnique<sphereFluidParticles>(Control(), Property());
insertion_ = makeUnique<sphereInsertion>( insertion_ = makeUnique<sphereInsertion>(

View File

@ -46,8 +46,6 @@ protected:
uniquePtr<geometry> geometry_ = nullptr; uniquePtr<geometry> geometry_ = nullptr;
uniquePtr<sphereShape> spheres_ = nullptr;
uniquePtr<sphereFluidParticles> particles_ = nullptr; uniquePtr<sphereFluidParticles> particles_ = nullptr;
uniquePtr<sphereInsertion> insertion_ = nullptr; uniquePtr<sphereInsertion> insertion_ = nullptr;

View File

@ -32,8 +32,8 @@ void pFlow::sphereFluidParticles::checkHostMemory()
pFlow::sphereFluidParticles::sphereFluidParticles( pFlow::sphereFluidParticles::sphereFluidParticles(
systemControl &control, systemControl &control,
const sphereShape& shpShape) const property &prop)
: sphereParticles(control, shpShape), : sphereParticles(control, prop),
fluidForce_( fluidForce_(
objectFile( objectFile(
"fluidForce", "fluidForce",
@ -65,7 +65,7 @@ bool pFlow::sphereFluidParticles::beforeIteration()
bool pFlow::sphereFluidParticles::iterate() bool pFlow::sphereFluidParticles::iterate()
{ {
const auto ti = this->TimeInfo();
accelerationTimer().start(); accelerationTimer().start();
pFlow::sphereFluidParticlesKernels::acceleration( pFlow::sphereFluidParticlesKernels::acceleration(
control().g(), control().g(),
@ -76,16 +76,16 @@ bool pFlow::sphereFluidParticles::iterate()
contactTorque().deviceViewAll(), contactTorque().deviceViewAll(),
fluidTorque_.deviceViewAll(), fluidTorque_.deviceViewAll(),
pStruct().activePointsMaskDevice(), pStruct().activePointsMaskDevice(),
acceleration().deviceViewAll(), accelertion().deviceViewAll(),
rAcceleration().deviceViewAll() rAcceleration().deviceViewAll()
); );
accelerationTimer().end(); accelerationTimer().end();
intCorrectTimer().start(); intCorrectTimer().start();
dynPointStruct().correct(ti.dt()); dynPointStruct().correct(this->dt(), accelertion());
rVelIntegration().correct(ti.dt(), rVelocity(), rAcceleration()); rVelIntegration().correct(this->dt(), rVelocity(), rAcceleration());
intCorrectTimer().end(); intCorrectTimer().end();

View File

@ -66,7 +66,7 @@ protected:
public: public:
/// construct from systemControl and property /// construct from systemControl and property
sphereFluidParticles(systemControl &control, const sphereShape& shpShape); sphereFluidParticles(systemControl &control, const property& prop);
/// before iteration step /// before iteration step
bool beforeIteration() override; bool beforeIteration() override;

View File

@ -1,76 +1,48 @@
<div align="center"> <div align ="center">
<img src="doc/phasicFlow_logo_github.png" style="width: 400px;" alt="PhasicFlow Logo"> <img src="doc/phasicFlow_logo_github.png" style="width: 400px;">
</div> </div>
## **PhasicFlow: High-Performance Discrete Element Method Simulations**
PhasicFlow is a robust, open-source C++ framework designed for the efficient simulation of granular materials using the Discrete Element Method (DEM). Leveraging parallel computing paradigms, PhasicFlow is capable of executing simulations on shared-memory multi-core architectures, including CPUs and NVIDIA GPUs (CUDA-enabled). The core parallelization strategy focuses on loop-level parallelism, enabling significant performance gains on modern hardware. Users can seamlessly transition between serial execution on standard PCs, parallel execution on multi-core CPUs (OpenMP), and accelerated simulations on GPUs. Currently, PhasicFlow supports simulations involving up to 80 million particles on a single desktop workstation. Detailed performance benchmarks are available on the [PhasicFlow Wiki](https://github.com/PhasicFlow/phasicFlow/wiki/Performance-of-phasicFlow). **PhasicFlow** is a parallel C++ code for performing DEM simulations. It can run on shared-memory multi-core computational units such as multi-core CPUs or GPUs (for now it works on CUDA-enabled GPUs). The parallelization method mainly relies on loop-level parallelization on a shared-memory computational unit. You can build and run PhasicFlow in serial mode on regular PCs, in parallel mode for multi-core CPUs, or build it for a GPU device to off-load computations to a GPU. In its current statues you can simulate millions of particles (up to 80M particles tested) on a single desktop computer. You can see the [performance tests of PhasicFlow](https://github.com/PhasicFlow/phasicFlow/wiki/Performance-of-phasicFlow) in the wiki page.
**Scalable Parallelism: MPI Integration** **MPI** parallelization with dynamic load balancing is under development. With this level of parallelization, PhasicFlow can leverage the computational power of **multi-gpu** workstations or clusters with distributed memory CPUs.
In summary PhasicFlow can have 6 execution modes:
1. Serial on a single CPU core,
2. Parallel on a multi-core computer/node (using OpenMP),
3. Parallel on an nvidia-GPU (using Cuda),
4. Parallel on distributed memory workstation (Using MPI)
5. Parallel on distributed memory workstations with multi-core nodes (using MPI+OpenMP)
6. Parallel on workstations with multiple GPUs (using MPI+Cuda).
## How to build?
You can build PhasicFlow for CPU and GPU executions. The latest release of PhasicFlow is v-0.1. [Here is a complete step-by-step procedure for building phasicFlow-v-0.1.](https://github.com/PhasicFlow/phasicFlow/wiki/How-to-Build-PhasicFlow).
Ongoing development includes the integration of MPI-based parallelization with dynamic load balancing. This enhancement will extend PhasicFlow's capabilities to distributed memory environments, such as multi-GPU workstations and high-performance computing clusters. Upon completion, PhasicFlow will offer six distinct execution modes: ## Online code documentation
You can find a full documentation of the code, its features, and other related materials on [online documentation of the code](https://phasicflow.github.io/phasicFlow/)
1. **Serial Execution:** Single-core CPU. ## How to use PhasicFlow?
2. **Shared-Memory Parallelism:** Multi-core CPU (OpenMP). You can navigate into [tutorials folder](./tutorials) in the phasicFlow folder to see some simulation case setups. If you need more detailed discription, visit our [wiki page tutorials](https://github.com/PhasicFlow/phasicFlow/wiki/Tutorials).
3. **GPU Acceleration:** NVIDIA GPU (CUDA).
4. **Distributed-Memory Parallelism:** MPI.
5. **Hybrid Parallelism:** MPI + OpenMP.
6. **Multi-GPU Parallelism:** MPI + CUDA.
## **Build and Installation** ## [PhasicFlowPlus](https://github.com/PhasicFlow/PhasicFlowPlus)
PhasicFlowPlus is and extension to PhasicFlow for simulating particle-fluid systems using resolved and unresolved CFD-DEM. [See the repository of this package.](https://github.com/PhasicFlow/PhasicFlowPlus)
PhasicFlow can be compiled for both CPU and GPU execution.
* **Current Development (v-1.0):** Comprehensive build instructions are available [here](https://github.com/PhasicFlow/phasicFlow/wiki/How-to-build-PhasicFlow%E2%80%90v%E2%80%901.0). ## Supporting packages
* **Latest Release (v-0.1):** Detailed build instructions are available [here](https://github.com/PhasicFlow/phasicFlow/wiki/How-to-Build-PhasicFlow). * [Kokkos](https://github.com/kokkos/kokkos) from National Technology & Engineering Solutions of Sandia, LLC (NTESS)
* [CLI11 1.8](https://github.com/CLIUtils/CLI11) from University of Cincinnati.
## **Comprehensive Documentation**
In-depth documentation, including code structure, features, and usage guidelines, is accessible via the [online documentation portal](https://phasicflow.github.io/phasicFlow/).
### **Tutorials and Examples**
Practical examples and simulation setups are provided in the [tutorials directory](./tutorials). For detailed explanations and step-by-step guides, please refer to the [tutorial section on the PhasicFlow Wiki](https://github.com/PhasicFlow/phasicFlow/wiki/Tutorials).
## Contributing to PhasicFlow
We welcome contributions to PhasicFlow! Whether you're a developer or a new user, there are many ways to get involved. Here's how you can help:
1. Bug Reports
2. Suggestions for better user experience
3. Feature request and algorithm improvements
4. Tutorials, Simulation Case Setups and documentation
5. Direct Code Contributions
For more details on how you can contribute to PhasicFlow see [this page](https://github.com/PhasicFlow/phasicFlow/wiki/How-to-contribute-to-PhasicFlow).
## **PhasicFlowPlus: Coupled CFD-DEM Simulations**
PhasicFlowPlus is an extension of PhasicFlow that facilitates the simulation of particle-fluid systems using resolved and unresolved CFD-DEM methods. The repository for PhasicFlowPlus can be found [here](https://github.com/PhasicFlow/PhasicFlowPlus).
## How to cite PhasicFlow?
## How to cite PhasicFlow
If you are using PhasicFlow in your research or industrial work, cite the following [article](https://www.sciencedirect.com/science/article/pii/S0010465523001662): If you are using PhasicFlow in your research or industrial work, cite the following [article](https://www.sciencedirect.com/science/article/pii/S0010465523001662):
``` ```
@article @article{NOROUZI2023108821,
{ title = {PhasicFlow: A parallel, multi-architecture open-source code for DEM simulations},
NOROUZI2023108821, journal = {Computer Physics Communications},
title = {PhasicFlow: A parallel, multi-architecture open-source code for DEM simulations}, volume = {291},
journal = {Computer Physics Communications}, pages = {108821},
volume = {291}, year = {2023},
pages = {108821}, issn = {0010-4655},
year = {2023}, doi = {https://doi.org/10.1016/j.cpc.2023.108821},
issn = {0010-4655}, url = {https://www.sciencedirect.com/science/article/pii/S0010465523001662},
doi = {https://doi.org/10.1016/j.cpc.2023.108821}, author = {H.R. Norouzi},
url = {https://www.sciencedirect.com/science/article/pii/S0010465523001662}, keywords = {Discrete element method, Parallel computing, CUDA, GPU, OpenMP, Granular flow}
author = {H.R. Norouzi},
keywords = {Discrete element method, Parallel computing, CUDA, GPU, OpenMP, Granular flow}
} }
``` ```
## **Dependencies**
PhasicFlow relies on the following external libraries:
* **Kokkos:** A community-led performance portability ecosystem within the Linux Foundation's High-Performance Software Foundation (HPSF). ([https://github.com/kokkos/kokkos](https://github.com/kokkos/kokkos))
* **CLI11 1.8:** A command-line interface parser developed by the University of Cincinnati. ([https://github.com/CLIUtils/CLI11](https://github.com/CLIUtils/CLI11))

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.004); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 0.8);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 0.8); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.8); // first point of the wall
p2 ( 0.2 -0.2 0.8); // second point
p3 ( 0.2 0.2 0.8); // third point
p4 (-0.2 0.2 0.8); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.004; // minimum space between centers of particles
numPoints 1000000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 0.79); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_1mParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.006); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 0.8);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 0.8); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.8); // first point of the wall
p2 ( 0.2 -0.2 0.8); // second point
p3 ( 0.2 0.2 0.8); // third point
p4 (-0.2 0.2 0.8); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.006; // minimum space between centers of particles
numPoints 250000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 0.79); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_250KParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.003); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,7 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf
rm -rf VTK
#------------------------------------------------------------------------------

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
echo "\n<--------------------------------------------------------------------->"
echo "1) Creating particles"
echo "<--------------------------------------------------------------------->\n"
particlesPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "2) Creating geometry"
echo "<--------------------------------------------------------------------->\n"
geometryPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "3) Running the case"
echo "<--------------------------------------------------------------------->\n"
sphereGranFlow
#------------------------------------------------------------------------------

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 1.2);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 1.2); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 1.2); // first point of the wall
p2 ( 0.2 -0.2 1.2); // second point
p3 ( 0.2 0.2 1.2); // third point
p4 (-0.2 0.2 1.2); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.003; // minimum space between centers of particles
numPoints 2000000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 1.19); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_2mParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.003); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,7 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf
rm -rf VTK
#------------------------------------------------------------------------------

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
echo "\n<--------------------------------------------------------------------->"
echo "1) Creating particles"
echo "<--------------------------------------------------------------------->\n"
particlesPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "2) Creating geometry"
echo "<--------------------------------------------------------------------->\n"
geometryPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "3) Running the case"
echo "<--------------------------------------------------------------------->\n"
sphereGranFlow
#------------------------------------------------------------------------------

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 1.6);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 1.6); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 1.6); // first point of the wall
p2 ( 0.2 -0.2 1.6); // second point
p3 ( 0.2 0.2 1.6); // third point
p4 (-0.2 0.2 1.6); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.003; // minimum space between centers of particles
numPoints 4000000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 1.59); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_4mParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.005); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,7 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf
rm -rf VTK
#------------------------------------------------------------------------------

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
echo "\n<--------------------------------------------------------------------->"
echo "1) Creating particles"
echo "<--------------------------------------------------------------------->\n"
particlesPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "2) Creating geometry"
echo "<--------------------------------------------------------------------->\n"
geometryPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "3) Running the case"
echo "<--------------------------------------------------------------------->\n"
sphereGranFlow
#------------------------------------------------------------------------------

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 0.8);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 0.8); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.8); // first point of the wall
p2 ( 0.2 -0.2 0.8); // second point
p3 ( 0.2 0.2 0.8); // third point
p4 (-0.2 0.2 0.8); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.005; // minimum space between centers of particles
numPoints 500000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 0.79); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_500KParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,60 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
contactSearch
{
method NBS;
updateInterval 20;
sizeRatio 1.1;
cellExtent 0.55;
adjustableBox Yes;
}
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
/*
Property (glassMat-glassMat glassMat-wallMat
wallMat-wallMat);
*/
Yeff (1.0e6 1.0e6
1.0e6); // Young modulus [Pa]
Geff (0.8e6 0.8e6
0.8e6); // Shear modulus [Pa]
nu (0.25 0.25
0.25); // Poisson's ratio [-]
en (0.97 0.85
1.00); // coefficient of normal restitution
mu (0.65 0.65
0.65); // dynamic friction
mur (0.1 0.1
0.1); // rolling friction
}

View File

@ -1,15 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName shapes;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
names (glassBead); // names of shapes
diameters (0.002); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -1,7 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
ls | grep -P "^(([0-9]+\.?[0-9]*)|(\.[0-9]+))$" | xargs -d"\n" rm -rf
rm -rf VTK
#------------------------------------------------------------------------------

View File

@ -1,21 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
echo "\n<--------------------------------------------------------------------->"
echo "1) Creating particles"
echo "<--------------------------------------------------------------------->\n"
particlesPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "2) Creating geometry"
echo "<--------------------------------------------------------------------->\n"
geometryPhasicFlow
echo "\n<--------------------------------------------------------------------->"
echo "3) Running the case"
echo "<--------------------------------------------------------------------->\n"
sphereGranFlow
#------------------------------------------------------------------------------

View File

@ -1,50 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName domainDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
globalBox // Simulation domain: every particles that goes outside this domain will be deleted
{
min (-0.2 -0.2 0.0);
max ( 0.2 0.2 1.6);
}
boundaries
{
neighborListUpdateInterval 200;
updateInterval 20;
left
{
type exit; // other options: periodic, reflective
}
right
{
type exit; // other options: periodic, reflective
}
bottom
{
type exit; // other options: periodic, reflective
}
top
{
type exit; // other options: periodic, reflective
}
rear
{
type exit; // other options: periodic, reflective
}
front
{
type exit; // other options: periodic, reflective
}
}

View File

@ -1,86 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
fileFormat ASCII;
motionModel rotatingAxis; // motion model: rotating object around an axis
rotatingAxisInfo // information for rotatingAxisMotion motion model
{
rotAxis
{
p1 (0.0 0.0 0.0); // first point for the axis of rotation
p2 (0.0 0.0 1.0); // second point for the axis of rotation
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}
surfaces
{
cylinder
{
type cylinderWall; // type of the wall
p1 (0.0 0.0 0.0); // begin point of cylinder axis
p2 (0.0 0.0 1.6); // end point of cylinder axis
radius1 0.2; // radius at p1
radius2 0.2; // radius at p2
resolution 24; // number of divisions
material wallMat; // material name of this wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the rear end of cylinder
*/
wall1
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 0.0); // first point of the wall
p2 ( 0.2 -0.2 0.0); // second point
p3 ( 0.2 0.2 0.0); // third point
p4 (-0.2 0.2 0.0); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall; // type of the wall
p1 (-0.2 -0.2 1.6); // first point of the wall
p2 ( 0.2 -0.2 1.6); // second point
p3 ( 0.2 0.2 1.6); // third point
p4 (-0.2 0.2 1.6); // fourth point
material wallMat; // material name of the wall
motion rotAxis; // motion component name
}
}

View File

@ -1,47 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
fileFormat ASCII;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method ordered;
orderedInfo
{
diameter 0.003; // minimum space between centers of particles
numPoints 6000000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
regionType cylinder; // other options: box and sphere
cylinderInfo // cylinder for positioning particles
{
p1 (0.0 0.0 0.01); // lower corner point of the box
p2 (0.0 0.0 1.59); // upper corner point of the box
radius 0.195; // radius of cylinder
}
}

View File

@ -1,34 +0,0 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;
fileFormat ASCII;
/*---------------------------------------------------------------------------*/
run rotatingDrum_4mParticles;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 4; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
includeObjects (diameter); // save necessary (i.e., required) data on disk
// exclude unnecessary data from saving on disk
excludeObjects (rVelocity.dy1 pStructPosition.dy1 pStructVelocity.dy1);
integrationMethod AdamsBashforth2; // integration method
writeFormat binary; // data writting format (ascii or binary)
timersReport Yes;
timersReportInterval 0.01;

View File

@ -0,0 +1,59 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName interaction;
objectType dicrionary;
materials (glassMat wallMat); // a list of materials names
densities (2500.0 2500); // density of materials [kg/m3]
contactListType sortedContactList;
model
{
contactForceModel nonLinearLimited;
rollingFrictionModel normal;
Yeff (1.0e6 1.0e6 // Young modulus [Pa]
1.0e6);
Geff (0.8e6 0.8e6 // Shear modulus [Pa]
0.8e6);
nu (0.25 0.25 // Poisson's ratio [-]
0.25);
en (0.97 0.85 // coefficient of normal restitution
1.00);
et (1.0 1.0 // coefficient of tangential restitution
1.0);
mu (0.65 0.65 // dynamic friction
0.65);
mur (0.1 0.1 // rolling friction
0.1);
}
contactSearch
{
method NBS;
wallMapping cellMapping;
NBSInfo
{
updateFrequency 10; // each 20 timesteps, update neighbor list
sizeRatio 1.05; // bounding box size to particle diameter (max)
}
cellMappingInfo
{
updateFrequency 10; // each 20 timesteps, update neighbor list
cellExtent 0.6; // bounding box for particle-wall search (> 0.5)
}
}

View File

@ -0,0 +1,14 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particleInsertion;
objectType dicrionary;
active no; // is insertion active?
collisionCheck No; // not implemented for yes

View File

@ -0,0 +1,11 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName sphereDict;
objectType sphereShape;
names (glassBead); // names of shapes
diameters (0.003); // diameter of shapes
materials (glassMat); // material names for shapes

View File

@ -0,0 +1,63 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName geometryDict;
objectType dictionary;
motionModel rotatingAxisMotion;
surfaces
{
cylinder
{
type cylinderWall;
p1 (0.0 0.0 0.0);
p2 (0.0 0.0 1.6);
radius1 0.2;
radius2 0.2;
resolution 24;
material wallMat;
motion rotAxis;
}
wall1
{
type planeWall;
p1 (-0.2 -0.2 0.0);
p2 ( 0.2 -0.2 0.0);
p3 ( 0.2 0.2 0.0);
p4 (-0.2 0.2 0.0);
material wallMat;
motion rotAxis;
}
/*
This is a plane wall at the front end of cylinder
*/
wall2
{
type planeWall;
p1 (-0.2 -0.2 1.6);
p2 ( 0.2 -0.2 1.6);
p3 ( 0.2 0.2 1.6);
p4 (-0.2 0.2 1.6);
material wallMat;
motion rotAxis;
}
}
// information for rotatingAxisMotion motion model
rotatingAxisMotionInfo
{
rotAxis
{
p1 (0.0 0.0 0.0);
p2 (0.0 0.0 1.0);
omega 1.256; // rotation speed (rad/s) => 12 rpm
}
}

View File

@ -0,0 +1,44 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName particlesDict;
objectType dictionary;
setFields
{
defaultValue
{
velocity realx3 (0 0 0); // linear velocity (m/s)
acceleration realx3 (0 0 0); // linear acceleration (m/s2)
rotVelocity realx3 (0 0 0); // rotational velocity (rad/s)
shapeName word glassBead; // name of the particle shape
}
selectors
{}
}
positionParticles
{
method positionOrdered;
maxNumberOfParticles 4000001;
mortonSorting Yes;
cylinder // box for positioning particles
{
p1 ( 0.0 0.0 0.01); // lower corner point of the box
p2 ( 0.0 0.0 1.59); // upper corner point of the box
radius 0.195;
}
positionOrderedInfo
{
diameter 0.003; // minimum space between centers of particles
numPoints 4000000; // number of particles in the simulation
axisOrder (z x y); // axis order for filling the space with particles
}
}

View File

@ -0,0 +1,32 @@
/* -------------------------------*- C++ -*--------------------------------- *\
| phasicFlow File |
| copyright: www.cemf.ir |
\* ------------------------------------------------------------------------- */
objectName settingsDict;
objectType dictionary;;
run rotatingDrum_1;
dt 0.00001; // time step for integration (s)
startTime 0; // start time for simulation
endTime 10; // end time for simulation
saveInterval 0.2; // time interval for saving the simulation
timePrecision 5; // maximum number of digits for time folder
g (0 -9.8 0); // gravity vector (m/s2)
domain
{
min (-0.2 -0.2 -0.0);
max ( 0.2 0.2 1.6);
}
integrationMethod AdamsBashforth3; // integration method
timersReport Yes;
timersReportInterval 0.01;

View File

@ -1,96 +1,17 @@
PF_cFlags="--description --help --version" PF_cFlags="--description --help --version"
AllTimeFolders=
__getAllTime(){
# Initialize empty array for time folders
local time_folders=()
# Loop through all directories in current folder
for dir in */; do
# Remove trailing slash
dir=${dir%/}
# Check if directory name is a valid floating point number
# This pattern matches integers and floating point numbers
if [[ $dir =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
time_folders+=("$dir")
fi
done
# Set completion reply to the time folders
COMPREPLY=("${time_folders[@]}")
AllTimeFolders="${time_folders[@]}"
}
__getFields(){
__getAllTime
local -A unique_files=()
# Files to exclude from suggestions
local exclude_files=("shapeHash" "pStructure" "particleInsertion" "p" "alpha" "U" "Sp" "Su" "phi")
declare -A exclude_dict
# Build exclude dictionary for faster lookups
for file in "${exclude_files[@]}"; do
exclude_dict["$file"]=1
done
for dir in $AllTimeFolders; do
# Skip if not a directory
[ ! -d "$dir" ] && continue
# Find all files in this time directory
while IFS= read -r filename; do
# Skip empty lines and excluded files
[ -z "$filename" ] || [ "${exclude_dict[$filename]+exists}" ] && continue
# Add to unique files
unique_files["$filename"]=1
done < <(find "$dir" -maxdepth 1 -type f -printf '%f\n')
done
# Set completion reply to the unique filenames
COMPREPLY=(${!unique_files[@]})
# Clear global variable
AllTimeFolders=
}
_pFlowToVTK(){ _pFlowToVTK(){
local cur="${COMP_WORDS[COMP_CWORD]}" if [ "$3" == "--time" ]; then
local prev="${COMP_WORDS[COMP_CWORD-1]}" COMPREPLY=( $(ls) )
# Check if we're completing a field
local is_field=0
for ((i=1; i<COMP_CWORD; i++)); do
if [[ "${COMP_WORDS[i]}" == "--fields" ]]; then
is_field=1
break
fi
done
if [ "$prev" == "--time" ]; then
__getAllTime
elif [ "$prev" == "--fields" ] || [ $is_field -eq 1 ]; then
# We're completing field names
__getFields
# Filter the results based on the current word prefix
if [ -n "$cur" ]; then
local filtered=()
for item in "${COMPREPLY[@]}"; do
if [[ "$item" == "$cur"* ]]; then
filtered+=("$item")
fi
done
COMPREPLY=("${filtered[@]}")
fi
else else
COMPREPLY=( $(compgen -W "$PF_cFlags --binary --no-geometry --no-particles --out-folder --time --separate-surfaces --fields" -- "$cur") ) COMPREPLY=( $(compgen -W "$PF_cFlags --binary --no-geometry --no-particles --out-folder --time --separate-surfaces --fields" -- "$2") )
fi fi
} }
complete -F _pFlowToVTK pFlowToVTK complete -F _pFlowToVTK pFlowToVTK
_postprocessPhasicFlow(){ _postprocessPhasicFlow(){
if [ "$3" == "--time" ]; then if [ "$3" == "--time" ]; then
__getAllTime COMPREPLY=( $(ls) )
else else
COMPREPLY=( $(compgen -W "$PF_cFlags --out-folder --time --zeroFolder" -- "$2") ) COMPREPLY=( $(compgen -W "$PF_cFlags --out-folder --time --zeroFolder" -- "$2") )
fi fi

View File

@ -1,54 +0,0 @@
if(pFlow_STD_Parallel_Alg)
# Check if libtbb-dev is installed
execute_process(
COMMAND dpkg -s libtbb-dev
RESULT_VARIABLE TBB_IS_INSTALLED
OUTPUT_QUIET
ERROR_QUIET)
if(NOT TBB_IS_INSTALLED EQUAL 0)
message(STATUS "libtbb-dev not found. Installing libtbb-dev...")
execute_process(
COMMAND sudo apt-get update
COMMAND sudo apt-get install -y libtbb-dev
RESULT_VARIABLE TBB_INSTALL_RESULT)
if(NOT TBB_INSTALL_RESULT EQUAL 0)
message(FATAL_ERROR "Failed to install libtbb-dev")
endif()
else()
message(STATUS "libtbb-dev is already installed.")
endif()
endif()
# Kokkos folder creation
set(Kokkos_Source_DIR $ENV{HOME}/Kokkos/kokkos)
if(NOT EXISTS "${Kokkos_Source_DIR}/CMakeLists.txt")
# Check CMake version and set policy CMP0169 if CMake version is 3.30 or higher
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30")
cmake_policy(SET CMP0169 OLD)
endif()
include(FetchContent)
FetchContent_Declare(
kokkos
GIT_REPOSITORY https://github.com/kokkos/kokkos.git
GIT_TAG 4.4.01
)
FetchContent_GetProperties(kokkos)
if(NOT kokkos_POPULATED)
message(STATUS "Kokkos source directory not found. Downloading Kokkos version 4.4.1 ...")
FetchContent_Populate(kokkos)
set(Kokkos_Source_DIR ${kokkos_SOURCE_DIR})
endif()
endif()
message(STATUS "Kokkos source directory is ${Kokkos_Source_DIR}")
add_subdirectory(${Kokkos_Source_DIR} ./kokkos)
#Kokkos_cmake_settings()

View File

@ -0,0 +1,146 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AB2Kernels.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AB2Kernels_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">AB2Kernels.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AB2Kernels.hpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AB2Kernels_8hpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth2_2AB2Kernels_8hpp" alt=""/></div>
</div>
</div>
<p><a href="AB2Kernels_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacepFlow_1_1AB2Kernels"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow_1_1AB2Kernels.html">pFlow::AB2Kernels</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1d3752d19417e5f211093381ef34cbc9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow_1_1AB2Kernels.html#a1d3752d19417e5f211093381ef34cbc9">intAllActive</a> (const word &amp;name, real dt, rangeU32 activeRng, const deviceViewType1D&lt; realx3 &gt; &amp;y, const deviceViewType1D&lt; realx3 &gt; &amp;dy, const deviceViewType1D&lt; realx3 &gt; &amp;dy1)</td></tr>
<tr class="separator:a1d3752d19417e5f211093381ef34cbc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e684a0c67df0388c9ab00a8abea55c4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow_1_1AB2Kernels.html#a0e684a0c67df0388c9ab00a8abea55c4">intScattered</a> (const word &amp;name, real dt, const pFlagTypeDevice &amp;activePoints, const deviceViewType1D&lt; realx3 &gt; &amp;y, const deviceViewType1D&lt; realx3 &gt; &amp;dy, const deviceViewType1D&lt; realx3 &gt; &amp;dy1)</td></tr>
<tr class="separator:a0e684a0c67df0388c9ab00a8abea55c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AB2Kernels_8hpp.html">AB2Kernels.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,5 @@
var AB2Kernels_8hpp =
[
[ "intAllActive", "AB2Kernels_8hpp.html#a1d3752d19417e5f211093381ef34cbc9", null ],
[ "intScattered", "AB2Kernels_8hpp.html#a0e684a0c67df0388c9ab00a8abea55c4", null ]
];

View File

@ -0,0 +1,11 @@
digraph "src/Integration/AdamsBashforth2/AB2Kernels.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth2\l/AB2Kernels.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="KokkosTypes.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$KokkosTypes_8hpp.html",tooltip=" "];
Node1 -> Node9 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node9 [label="types.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$types_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,198 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AB2Kernels.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AB2Kernels_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AB2Kernels.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AB2Kernels_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160; </div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160; </div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#ifndef __AB2Kernels_hpp__</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#define __AB2Kernels_hpp__</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; </div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="KokkosTypes_8hpp.html">KokkosTypes.hpp</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="types_8hpp.html">types.hpp</a>&quot;</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div>
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1AB2Kernels.html"> 9</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow_1_1AB2Kernels.html">pFlow::AB2Kernels</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">inline</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1AB2Kernels.html#a1d3752d19417e5f211093381ef34cbc9"> 12</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacepFlow_1_1AB2Kernels.html#a1d3752d19417e5f211093381ef34cbc9">intAllActive</a>(</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; name,</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="structpFlow_1_1Range.html">rangeU32</a> activeRng,</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; y, </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; dy,</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; dy1</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;)</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; name,</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="namespacepFlow.html#a6ea32be3339f3023ab349c9c3775c916">deviceRPolicyStatic</a> (activeRng.<a class="code" href="structpFlow_1_1Range.html#a8ade4cd349991c4c7ed9131410ddd8f0">start</a>(), activeRng.<a class="code" href="structpFlow_1_1Range.html#a38ebf09d6bfa7f04d4a95ff7f0d3aef4">end</a>()),</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> i){</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; y[i] += dt*(<span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1.5) * dy[i] - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(0.5) * dy1[i]);</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; dy1[i] = dy[i];</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; });</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">inline</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacepFlow_1_1AB2Kernels.html#a0e684a0c67df0388c9ab00a8abea55c4">intScattered</a></div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1AB2Kernels.html#a0e684a0c67df0388c9ab00a8abea55c4"> 35</a></span>&#160;(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; name,</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointFlag.html">pFlagTypeDevice</a>&amp; activePoints,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; y, </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; dy,</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D&lt;realx3&gt;</a>&amp; dy1</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; name,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="namespacepFlow.html#a6ea32be3339f3023ab349c9c3775c916">deviceRPolicyStatic</a> (activePoints.<a class="code" href="classpFlow_1_1pointFlag.html#a766f5bcd312f3e0ca10011181b05f318">activeRange</a>().start(), activePoints.<a class="code" href="classpFlow_1_1pointFlag.html#a766f5bcd312f3e0ca10011181b05f318">activeRange</a>().end()),</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> i){</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>( activePoints(i))</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; y[i] += dt*(<span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1.5) * dy[i] - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(0.5) * dy1[i]);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; dy1[i] = dy[i];</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; });</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="atypes_8hpp_html"><div class="ttname"><a href="types_8hpp.html">types.hpp</a></div></div>
<div class="ttc" id="astructpFlow_1_1Range_html_a38ebf09d6bfa7f04d4a95ff7f0d3aef4"><div class="ttname"><a href="structpFlow_1_1Range.html#a38ebf09d6bfa7f04d4a95ff7f0d3aef4">pFlow::Range::end</a></div><div class="ttdeci">INLINE_FUNCTION_HD T &amp; end()</div><div class="ttdoc">End.</div><div class="ttdef"><b>Definition:</b> <a href="Range_8hpp_source.html#l00101">Range.hpp:101</a></div></div>
<div class="ttc" id="anamespacepFlow_html_abd01e8e67e3d94cab04ecaaf4f85ac1b"><div class="ttname"><a href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">pFlow::uint32</a></div><div class="ttdeci">unsigned int uint32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00056">builtinTypes.hpp:56</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="astructpFlow_1_1Range_html_a8ade4cd349991c4c7ed9131410ddd8f0"><div class="ttname"><a href="structpFlow_1_1Range.html#a8ade4cd349991c4c7ed9131410ddd8f0">pFlow::Range::start</a></div><div class="ttdeci">INLINE_FUNCTION_HD T &amp; start()</div><div class="ttdoc">Start.</div><div class="ttdef"><b>Definition:</b> <a href="Range_8hpp_source.html#l00094">Range.hpp:94</a></div></div>
<div class="ttc" id="aKokkosTypes_8hpp_html"><div class="ttname"><a href="KokkosTypes_8hpp.html">KokkosTypes.hpp</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1AB2Kernels_html"><div class="ttname"><a href="namespacepFlow_1_1AB2Kernels.html">pFlow::AB2Kernels</a></div><div class="ttdef"><b>Definition:</b> <a href="AB2Kernels_8hpp_source.html#l00009">AB2Kernels.hpp:9</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aa5276597d4016d6696f1f265a13d2164"><div class="ttname"><a href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">pFlow::deviceViewType1D</a></div><div class="ttdeci">Kokkos::View&lt; T * &gt; deviceViewType1D</div><div class="ttdoc">1D array (vector) with default device (memory space and execution space)</div><div class="ttdef"><b>Definition:</b> <a href="KokkosTypes_8hpp_source.html#l00121">KokkosTypes.hpp:121</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1AB2Kernels_html_a1d3752d19417e5f211093381ef34cbc9"><div class="ttname"><a href="namespacepFlow_1_1AB2Kernels.html#a1d3752d19417e5f211093381ef34cbc9">pFlow::AB2Kernels::intAllActive</a></div><div class="ttdeci">bool intAllActive(const word &amp;name, real dt, rangeU32 activeRng, const deviceViewType1D&lt; realx3 &gt; &amp;y, const deviceViewType1D&lt; realx3 &gt; &amp;dy, const deviceViewType1D&lt; realx3 &gt; &amp;dy1)</div><div class="ttdef"><b>Definition:</b> <a href="AB2Kernels_8hpp_source.html#l00012">AB2Kernels.hpp:12</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointFlag_html_a766f5bcd312f3e0ca10011181b05f318"><div class="ttname"><a href="classpFlow_1_1pointFlag.html#a766f5bcd312f3e0ca10011181b05f318">pFlow::pointFlag::activeRange</a></div><div class="ttdeci">const INLINE_FUNCTION_HD auto &amp; activeRange() const</div><div class="ttdef"><b>Definition:</b> <a href="pointFlag_8hpp_source.html#l00179">pointFlag.hpp:179</a></div></div>
<div class="ttc" id="astructpFlow_1_1Range_html"><div class="ttname"><a href="structpFlow_1_1Range.html">pFlow::Range&lt; uint32 &gt;</a></div></div>
<div class="ttc" id="anamespacepFlow_1_1AB2Kernels_html_a0e684a0c67df0388c9ab00a8abea55c4"><div class="ttname"><a href="namespacepFlow_1_1AB2Kernels.html#a0e684a0c67df0388c9ab00a8abea55c4">pFlow::AB2Kernels::intScattered</a></div><div class="ttdeci">bool intScattered(const word &amp;name, real dt, const pFlagTypeDevice &amp;activePoints, const deviceViewType1D&lt; realx3 &gt; &amp;y, const deviceViewType1D&lt; realx3 &gt; &amp;dy, const deviceViewType1D&lt; realx3 &gt; &amp;dy1)</div><div class="ttdef"><b>Definition:</b> <a href="AB2Kernels_8hpp_source.html#l00035">AB2Kernels.hpp:35</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6ea32be3339f3023ab349c9c3775c916"><div class="ttname"><a href="namespacepFlow.html#a6ea32be3339f3023ab349c9c3775c916">pFlow::deviceRPolicyStatic</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; Kokkos::DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; pFlow::uint32 &gt; &gt; deviceRPolicyStatic</div><div class="ttdef"><b>Definition:</b> <a href="KokkosTypes_8hpp_source.html#l00066">KokkosTypes.hpp:66</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointFlag_html"><div class="ttname"><a href="classpFlow_1_1pointFlag.html">pFlow::pointFlag&lt; DefaultExecutionSpace &gt;</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AB2Kernels_8hpp.html">AB2Kernels.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,151 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AdamsBashforth2.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth2_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">AdamsBashforth2.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth2.cpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth2_8cpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth2_2AdamsBashforth2_8cpp" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth2_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a42ff9b272180d6b5b128aafacd50a411"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> = Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; uint32 &gt; &gt;</td></tr>
<tr class="memdesc:a42ff9b272180d6b5b128aafacd50a411"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structpFlow_1_1Range.html" title="Range for elements in an vector [start,end)">Range</a> policy for integration kernel (alias) <a href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">More...</a><br /></td></tr>
<tr class="separator:a42ff9b272180d6b5b128aafacd50a411"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad07d1cb3572f2d482cdf0e9f2868071b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">intAllActive</a> (real dt, realx3Field_D &amp;y, realx3PointField_D &amp;dy, realx3PointField_D &amp;dy1)</td></tr>
<tr class="separator:ad07d1cb3572f2d482cdf0e9f2868071b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19c4c4ae40e7e332c50f85bcf8fb93d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">intScattered</a> (real dt, realx3Field_D &amp;y, realx3PointField_D &amp;dy, realx3PointField_D &amp;dy1)</td></tr>
<tr class="separator:a19c4c4ae40e7e332c50f85bcf8fb93d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AdamsBashforth2_8cpp.html">AdamsBashforth2.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,6 @@
var AdamsBashforth2_8cpp =
[
[ "rpIntegration", "AdamsBashforth2_8cpp.html#a42ff9b272180d6b5b128aafacd50a411", null ],
[ "intAllActive", "AdamsBashforth2_8cpp.html#ad07d1cb3572f2d482cdf0e9f2868071b", null ],
[ "intScattered", "AdamsBashforth2_8cpp.html#a19c4c4ae40e7e332c50f85bcf8fb93d9", null ]
];

View File

@ -0,0 +1,15 @@
digraph "src/Integration/AdamsBashforth2/AdamsBashforth2.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth2\l/AdamsBashforth2.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="AdamsBashforth2.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$AdamsBashforth2_8hpp.html",tooltip=" "];
Node1 -> Node89 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node89 [label="pointStructure.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$pointStructure_8hpp.html",tooltip=" "];
Node1 -> Node156 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node156 [label="Time.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$Time_8hpp.html",tooltip=" "];
Node1 -> Node166 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node166 [label="vocabs.hpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$vocabs_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,349 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AdamsBashforth2.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth2_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth2.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth2_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AdamsBashforth2_8hpp.html">AdamsBashforth2.hpp</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pointStructure_8hpp.html">pointStructure.hpp</a>&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Time_8hpp.html">Time.hpp</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="vocabs_8hpp.html">vocabs.hpp</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow.html">pFlow</a></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">using</span> <a class="code" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> = Kokkos::RangePolicy&lt;</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">DefaultExecutionSpace</a>,</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; Kokkos::Schedule&lt;Kokkos::Static&gt;,</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; Kokkos::IndexType&lt;uint32&gt;</div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411"> 34</a></span>&#160; &gt;;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b"> 36</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">intAllActive</a>(</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>&amp; y, </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy1)</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1internalField.html#a65a1eeccd800386379e7db5dd61ea9aa">deviceView</a>();</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a1fabd2a58aae204d5639f041216f54da">deviceView</a>();</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">auto</span> d_dy1= dy1.<a class="code" href="classpFlow_1_1internalField.html#a65a1eeccd800386379e7db5dd61ea9aa">deviceView</a>();</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">auto</span> activeRng = dy1.<a class="code" href="classpFlow_1_1pointField.html#afef304b4d4497e45857f6edef9b049e6">activeRange</a>();</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="stringliteral">&quot;AdamsBashforth2::correct&quot;</span>,</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> (activeRng.start(), activeRng.end()),</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> i){</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; d_y[i] += dt*(<span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1.5) * d_dy[i] - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(0.5) * d_dy1[i]);</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; d_dy1[i] = d_dy[i];</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; });</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">intScattered</a></div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9"> 61</a></span>&#160;(</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>&amp; y,</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy1</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;)</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1internalField.html#a65a1eeccd800386379e7db5dd61ea9aa">deviceView</a>();</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a1fabd2a58aae204d5639f041216f54da">deviceView</a>();</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">auto</span> d_dy1 = dy1.<a class="code" href="classpFlow_1_1internalField.html#a65a1eeccd800386379e7db5dd61ea9aa">deviceView</a>();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">auto</span> activeRng = dy1.<a class="code" href="classpFlow_1_1pointField.html#afef304b4d4497e45857f6edef9b049e6">activeRange</a>();</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span>&amp; activeP = dy1.<a class="code" href="classpFlow_1_1internalField.html#a67d82cfcfc613c9ffbccd1f9a9aa0ce6">activePointsMaskDevice</a>();</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="stringliteral">&quot;AdamsBashforth2::correct&quot;</span>,</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> (activeRng.start(), activeRng.end()),</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">uint32</a> i){</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>( activeP(i))</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; {</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; d_y[i] += dt*(<span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1.5) * d_dy[i] - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(0.5) * d_dy1[i]);</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; d_dy1[i] = d_dy[i];</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; });</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<a class="code" href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d">pFlow::AdamsBashforth2::AdamsBashforth2</a></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d"> 94</a></span>&#160;(</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; method,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>&amp; initialValField</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;)</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;:</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, method, initialValField),</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="namespacepFlow.html#af547b8e736ebac3297672aff612d426a">realx3PointField_D</a></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; (</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classpFlow_1_1objectFile.html">objectFile</a></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; (</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">groupNames</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,<span class="stringliteral">&quot;dy1&quot;</span>),</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>.time().integrationFolder(),</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; objectFile::READ_IF_PRESENT,</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; objectFile::WRITE_ALWAYS</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; ),</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>,</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; ),</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; boundaryList_(<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, method, *<span class="keyword">this</span>)</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{}</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31"> 118</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31">pFlow::AdamsBashforth2::updateBoundariesSlaveToMasterIfRequested</a>()</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classpFlow_1_1pointField.html#a4df96ffd1fa1b1fad9fc5dbd8bf03431">realx3PointField_D::updateBoundariesSlaveToMasterIfRequested</a>();</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69"> 123</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">pFlow::AdamsBashforth2::predict</a>(</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &amp;<a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &amp;<a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy))</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">pFlow::AdamsBashforth2::predict</a></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a4f0aee8b7d5ace2fd263b10f1f29ffde"> 132</a></span>&#160;(</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a> &amp;y, </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &amp;dy</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;)</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a31ed4ecb323de5dc3f004927060fdc45">pFlow::AdamsBashforth2::correct</a></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a31ed4ecb323de5dc3f004927060fdc45"> 142</a></span>&#160;(</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; y,</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;)</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">auto</span>&amp; dy1l = dy1();</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(dy1l.isAllActive())</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; success = <a class="code" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">intAllActive</a>(dt, y.<a class="code" href="classpFlow_1_1internalField.html#a0b7cdb82732a46cf6c7aa342cf9c6c33">field</a>(), dy, dy1l);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; success = <a class="code" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">intScattered</a>(dt, y.<a class="code" href="classpFlow_1_1internalField.html#a0b7cdb82732a46cf6c7aa342cf9c6c33">field</a>(), dy, dy1l);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; success = success &amp;&amp; boundaryList_.correct(dt, y, dy);</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> success;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094"> 165</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094">pFlow::AdamsBashforth2::correctPStruct</a>(</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a> &amp;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &amp;vel)</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">auto</span>&amp; dy1l = dy1();</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(dy1l.isAllActive())</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; success = <a class="code" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">intAllActive</a>(dt, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>.pointPosition(), vel, dy1l);</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; success = <a class="code" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">intScattered</a>(dt, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>.pointPosition(), vel, dy1l);</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; success = success &amp;&amp; boundaryList_.correctPStruct(dt, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, vel);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> success;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e"> 187</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e">pFlow::AdamsBashforth2::setInitialVals</a>(</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y)</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a5595208ecd7c3d8fdc960c8d2fd9bb69"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">pFlow::AdamsBashforth2::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3PointField_D &amp;UNUSED(y), realx3PointField_D &amp;UNUSED(dy)) final</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00123">AdamsBashforth2.cpp:123</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="anamespacepFlow_html_abd01e8e67e3d94cab04ecaaf4f85ac1b"><div class="ttname"><a href="namespacepFlow.html#abd01e8e67e3d94cab04ecaaf4f85ac1b">pFlow::uint32</a></div><div class="ttdeci">unsigned int uint32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00056">builtinTypes.hpp:56</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a1e7473dc6951c5718277fadf484d4c7d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d">pFlow::AdamsBashforth2::AdamsBashforth2</a></div><div class="ttdeci">AdamsBashforth2(const word &amp;baseName, pointStructure &amp;pStruct, const word &amp;method, const realx3Field_D &amp;initialValField)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00094">AdamsBashforth2.cpp:94</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="aclasspFlow_1_1internalField_html_a67d82cfcfc613c9ffbccd1f9a9aa0ce6"><div class="ttname"><a href="classpFlow_1_1internalField.html#a67d82cfcfc613c9ffbccd1f9a9aa0ce6">pFlow::internalField::activePointsMaskDevice</a></div><div class="ttdeci">const pFlagTypeDevice &amp; activePointsMaskDevice() const</div><div class="ttdef"><b>Definition:</b> <a href="internalField_8hpp_source.html#l00120">internalField.hpp:120</a></div></div>
<div class="ttc" id="anamespacepFlow_html_af547b8e736ebac3297672aff612d426a"><div class="ttname"><a href="namespacepFlow.html#af547b8e736ebac3297672aff612d426a">pFlow::realx3PointField_D</a></div><div class="ttdeci">pointField_D&lt; realx3 &gt; realx3PointField_D</div><div class="ttdef"><b>Definition:</b> <a href="pointFields_8hpp_source.html#l00052">pointFields.hpp:52</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a477d522d35403bd985ae105bd759e9d1"><div class="ttname"><a href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">pFlow::zero3</a></div><div class="ttdeci">const realx3 zero3(0.0)</div><div class="ttdef"><b>Definition:</b> <a href="types_8hpp_source.html#l00137">types.hpp:137</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aa3a14d3c76643399fc4edd8eca14944a"><div class="ttname"><a href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">pFlow::DefaultExecutionSpace</a></div><div class="ttdeci">Kokkos::DefaultExecutionSpace DefaultExecutionSpace</div><div class="ttdoc">Default execution space, it can be device exe.</div><div class="ttdef"><b>Definition:</b> <a href="KokkosTypes_8hpp_source.html#l00061">KokkosTypes.hpp:61</a></div></div>
<div class="ttc" id="anamespacepFlow_html_ad07d1cb3572f2d482cdf0e9f2868071b"><div class="ttname"><a href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">pFlow::intAllActive</a></div><div class="ttdeci">bool intAllActive(real dt, realx3Field_D &amp;y, realx3PointField_D &amp;dy, realx3PointField_D &amp;dy1)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00036">AdamsBashforth2.cpp:36</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Field_html"><div class="ttname"><a href="classpFlow_1_1Field.html">pFlow::Field&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a31ed4ecb323de5dc3f004927060fdc45"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a31ed4ecb323de5dc3f004927060fdc45">pFlow::AdamsBashforth2::correct</a></div><div class="ttdeci">bool correct(real dt, realx3PointField_D &amp;y, realx3PointField_D &amp;dy) final</div><div class="ttdoc">Correction/main integration step.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00142">AdamsBashforth2.cpp:142</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a19c4c4ae40e7e332c50f85bcf8fb93d9"><div class="ttname"><a href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">pFlow::intScattered</a></div><div class="ttdeci">bool intScattered(real dt, realx3Field_D &amp;y, realx3PointField_D &amp;dy, realx3PointField_D &amp;dy1)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00061">AdamsBashforth2.cpp:61</a></div></div>
<div class="ttc" id="anamespacepFlow_html"><div class="ttname"><a href="namespacepFlow.html">pFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="demGeometry_8hpp_source.html#l00027">demGeometry.hpp:27</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a1fabd2a58aae204d5639f041216f54da"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a1fabd2a58aae204d5639f041216f54da">pFlow::VectorSingle::deviceView</a></div><div class="ttdeci">INLINE_FUNCTION_H auto deviceView() const</div><div class="ttdoc">Device view range [0, size)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00263">VectorSingle.cpp:263</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a16a2137651b2c6b8ea4a8daf1d89ff61"><div class="ttname"><a href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">pFlow::baseName</a></div><div class="ttdeci">word baseName(const word &amp;w, char sep='.')</div><div class="ttdoc">Find the base in a group separated by &quot;.&quot; and return it.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00185">bTypesFunctions.cpp:185</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a2dfa8f3fb9e8b803ed22d20d63e2f094"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094">pFlow::AdamsBashforth2::correctPStruct</a></div><div class="ttdeci">bool correctPStruct(real dt, pointStructure &amp;pStruct, realx3PointField_D &amp;vel) final</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00165">AdamsBashforth2.cpp:165</a></div></div>
<div class="ttc" id="aclasspFlow_1_1internalField_html_a0b7cdb82732a46cf6c7aa342cf9c6c33"><div class="ttname"><a href="classpFlow_1_1internalField.html#a0b7cdb82732a46cf6c7aa342cf9c6c33">pFlow::internalField::field</a></div><div class="ttdeci">const FieldType &amp; field() const</div><div class="ttdef"><b>Definition:</b> <a href="internalField_8hpp_source.html#l00109">internalField.hpp:109</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a42ff9b272180d6b5b128aafacd50a411"><div class="ttname"><a href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">pFlow::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; uint32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel (alias)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00034">AdamsBashforth2.cpp:34</a></div></div>
<div class="ttc" id="aTime_8hpp_html"><div class="ttname"><a href="Time_8hpp.html">Time.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html_afef304b4d4497e45857f6edef9b049e6"><div class="ttname"><a href="classpFlow_1_1pointField.html#afef304b4d4497e45857f6edef9b049e6">pFlow::pointField::activeRange</a></div><div class="ttdeci">range activeRange() const</div><div class="ttdef"><b>Definition:</b> <a href="pointField__old_8hpp_source.html#l00138">pointField_old.hpp:138</a></div></div>
<div class="ttc" id="aclasspFlow_1_1objectFile_html"><div class="ttname"><a href="classpFlow_1_1objectFile.html">pFlow::objectFile</a></div><div class="ttdef"><b>Definition:</b> <a href="objectFile_8hpp_source.html#l00030">objectFile.hpp:30</a></div></div>
<div class="ttc" id="aAdamsBashforth2_8hpp_html"><div class="ttname"><a href="AdamsBashforth2_8hpp.html">AdamsBashforth2.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_ad114a4a04b76ea8e10d4388756912a7e"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e">pFlow::AdamsBashforth2::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) final</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00187">AdamsBashforth2.cpp:187</a></div></div>
<div class="ttc" id="asetPointStructure_8hpp_html_a385e32971df44b131e4498181a949a91"><div class="ttname"><a href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a></div><div class="ttdeci">auto &amp; pStruct</div><div class="ttdef"><b>Definition:</b> <a href="setPointStructure_8hpp_source.html#l00024">setPointStructure.hpp:24</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html_a4df96ffd1fa1b1fad9fc5dbd8bf03431"><div class="ttname"><a href="classpFlow_1_1pointField.html#a4df96ffd1fa1b1fad9fc5dbd8bf03431">pFlow::pointField::updateBoundariesSlaveToMasterIfRequested</a></div><div class="ttdeci">void updateBoundariesSlaveToMasterIfRequested()</div><div class="ttdoc">update boundaries if it is requested previousely (slave to master).</div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00115">pointField.hpp:115</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a12b4d93aa9730629403d73e84386bff5"><div class="ttname"><a href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">pFlow::groupNames</a></div><div class="ttdeci">word groupNames(const word &amp;bw, const word &amp;tw, char sep='.')</div><div class="ttdoc">Group words and output bw.tw.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00179">bTypesFunctions.cpp:179</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_abd77556ae6ba5220c472e06b2ef2da31"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31">pFlow::AdamsBashforth2::updateBoundariesSlaveToMasterIfRequested</a></div><div class="ttdeci">void updateBoundariesSlaveToMasterIfRequested() override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00118">AdamsBashforth2.cpp:118</a></div></div>
<div class="ttc" id="avocabs_8hpp_html"><div class="ttname"><a href="vocabs_8hpp.html">vocabs.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="apointStructure_8hpp_html"><div class="ttname"><a href="pointStructure_8hpp.html">pointStructure.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div class="ttc" id="aclasspFlow_1_1internalField_html_a65a1eeccd800386379e7db5dd61ea9aa"><div class="ttname"><a href="classpFlow_1_1internalField.html#a65a1eeccd800386379e7db5dd61ea9aa">pFlow::internalField::deviceView</a></div><div class="ttdeci">auto deviceView() const</div><div class="ttdef"><b>Definition:</b> <a href="internalField_8hpp_source.html#l00097">internalField.hpp:97</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AdamsBashforth2_8cpp.html">AdamsBashforth2.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,150 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AdamsBashforth2.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth2_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> </div>
<div class="headertitle">
<div class="title">AdamsBashforth2.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth2.hpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth2_8hpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth2_2AdamsBashforth2_8hpp" alt=""/></div>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth2_8hpp__dep__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth2_2AdamsBashforth2_8hppdep" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth2_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1AdamsBashforth2.html">AdamsBashforth2</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Second order Adams-Bashforth integration method for solving ODE. <a href="classpFlow_1_1AdamsBashforth2.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AdamsBashforth2_8hpp.html">AdamsBashforth2.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth2/AdamsBashforth2.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth2\l/AdamsBashforth2.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="src/Integration/AdamsBashforth2\l/AdamsBashforth2.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$AdamsBashforth2_8cpp.html",tooltip=" "];
}

View File

@ -0,0 +1,14 @@
digraph "src/Integration/AdamsBashforth2/AdamsBashforth2.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth2\l/AdamsBashforth2.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="integration.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$integration_8hpp.html",tooltip=" "];
Node2 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node41 [label="pointFields.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$pointFields_8hpp.html",tooltip=" "];
Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node1 -> Node163 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node163 [label="boundaryIntegrationList.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$boundaryIntegrationList_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,276 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth2/AdamsBashforth2.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth2_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth2.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth2_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifndef __AdamsBashforth2_hpp__</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define __AdamsBashforth2_hpp__</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="integration_8hpp.html">integration.hpp</a>&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pointFields_8hpp.html">pointFields.hpp</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="boundaryIntegrationList_8hpp.html">boundaryIntegrationList.hpp</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow.html">pFlow</a></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html"> 37</a></span>&#160;<span class="keyword">class </span><a class="code" href="classpFlow_1_1AdamsBashforth2.html">AdamsBashforth2</a></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;:</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">public</span> <a class="code" href="classpFlow_1_1integration.html">integration</a>,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">public</span> <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#aac898ef26b84e559b552fb63b187e4a3"> 44</a></span>&#160; <a class="code" href="classpFlow_1_1boundaryIntegrationList.html">boundaryIntegrationList</a> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#aac898ef26b84e559b552fb63b187e4a3">boundaryList_</a>;</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#acfc416287e9f31450d930160b1ccaef3"> 46</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classpFlow_1_1AdamsBashforth2.html#acfc416287e9f31450d930160b1ccaef3">processorAB2BoundaryIntegration</a>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#aec90bedeff0a2a031a0d310526a33f3b"> 48</a></span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span>&amp; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#aec90bedeff0a2a031a0d310526a33f3b">dy1</a>()<span class="keyword">const</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp;<span class="keyword">&gt;</span>(*this);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a08830f3ac97ae61ab7971024f5bfc99f"> 53</a></span>&#160; <span class="keyword">auto</span>&amp; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a08830f3ac97ae61ab7971024f5bfc99f">dy1</a>()</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp;<span class="keyword">&gt;</span>(*this);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a4db1a4db4a3c5af1dc7037acec0e40a9">ClassInfo</a>(<span class="stringliteral">&quot;AdamsBashforth2&quot;</span>);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// - Constructors</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d">AdamsBashforth2</a>(</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">baseName</a>,</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>,</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e">method</a>,</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>&amp; initialValField);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a0e0f8a5b0250e97e857de7bd6a5e9731">~AdamsBashforth2</a>()final = default;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a3f4d930dbe074e5170da8b9a74f3c8b8">add_vCtor</a>(</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>,</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth2.html">AdamsBashforth2</a>,</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// - Methods</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31">updateBoundariesSlaveToMasterIfRequested</a>()override;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e"> 87</a></span>&#160; <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e">method</a>()<span class="keyword">const override</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;AdamsBashforth2&quot;</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">predict</a>(</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt), </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y), </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)) <span class="keyword">final</span>;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">predict</a>(</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>&amp; y, </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy) <span class="keyword">final</span>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a31ed4ecb323de5dc3f004927060fdc45">correct</a>(</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; y, </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; dy) <span class="keyword">final</span>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094">correctPStruct</a>(</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>, </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&amp; vel) <span class="keyword">final</span>;</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">/*bool hearChanges</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> (</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> real t,</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> real dt,</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> uint32 iter,</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> const message&amp; msg, </span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> const anyList&amp; varList</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> ) override;*/</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e">setInitialVals</a>(</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y) <span class="keyword">final</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a5fd0dfea4bc213a1a941358d72bedde0"> 126</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a5fd0dfea4bc213a1a941358d72bedde0">needSetInitialVals</a>()const final</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} <span class="comment">// pFlow</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif //__integration_hpp__</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a0e0f8a5b0250e97e857de7bd6a5e9731"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a0e0f8a5b0250e97e857de7bd6a5e9731">pFlow::AdamsBashforth2::~AdamsBashforth2</a></div><div class="ttdeci">~AdamsBashforth2() final=default</div><div class="ttdoc">Destructor.</div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a307a24e988c782099db9fc49291efe1e"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e">pFlow::AdamsBashforth2::method</a></div><div class="ttdeci">word method() const override</div><div class="ttdoc">return integration method</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00087">AdamsBashforth2.hpp:87</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a5595208ecd7c3d8fdc960c8d2fd9bb69"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69">pFlow::AdamsBashforth2::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3PointField_D &amp;UNUSED(y), realx3PointField_D &amp;UNUSED(dy)) final</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00123">AdamsBashforth2.cpp:123</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a5a622149e803f0fa292a95784c12a7b8"><div class="ttname"><a href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pFlow::integration::pStruct</a></div><div class="ttdeci">const auto &amp; pStruct() const</div><div class="ttdoc">Const ref to pointStructure.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00115">integration.hpp:115</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a1e7473dc6951c5718277fadf484d4c7d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d">pFlow::AdamsBashforth2::AdamsBashforth2</a></div><div class="ttdeci">AdamsBashforth2(const word &amp;baseName, pointStructure &amp;pStruct, const word &amp;method, const realx3Field_D &amp;initialValField)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00094">AdamsBashforth2.cpp:94</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="apointFields_8hpp_html"><div class="ttname"><a href="pointFields_8hpp.html">pointFields.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a4db1a4db4a3c5af1dc7037acec0e40a9"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a4db1a4db4a3c5af1dc7037acec0e40a9">pFlow::AdamsBashforth2::ClassInfo</a></div><div class="ttdeci">ClassInfo(&quot;AdamsBashforth2&quot;)</div><div class="ttdoc">Class info.</div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a08830f3ac97ae61ab7971024f5bfc99f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a08830f3ac97ae61ab7971024f5bfc99f">pFlow::AdamsBashforth2::dy1</a></div><div class="ttdeci">auto &amp; dy1()</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00053">AdamsBashforth2.hpp:53</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Field_html"><div class="ttname"><a href="classpFlow_1_1Field.html">pFlow::Field&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a5fd0dfea4bc213a1a941358d72bedde0"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a5fd0dfea4bc213a1a941358d72bedde0">pFlow::AdamsBashforth2::needSetInitialVals</a></div><div class="ttdeci">bool needSetInitialVals() const final</div><div class="ttdoc">Check if the method requires any set initial vals.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00126">AdamsBashforth2.hpp:126</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_aac898ef26b84e559b552fb63b187e4a3"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#aac898ef26b84e559b552fb63b187e4a3">pFlow::AdamsBashforth2::boundaryList_</a></div><div class="ttdeci">boundaryIntegrationList boundaryList_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00044">AdamsBashforth2.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a31ed4ecb323de5dc3f004927060fdc45"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a31ed4ecb323de5dc3f004927060fdc45">pFlow::AdamsBashforth2::correct</a></div><div class="ttdeci">bool correct(real dt, realx3PointField_D &amp;y, realx3PointField_D &amp;dy) final</div><div class="ttdoc">Correction/main integration step.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00142">AdamsBashforth2.cpp:142</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a4e30df3927ef1cdd2490cd85018518f5"><div class="ttname"><a href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">pFlow::integration::baseName</a></div><div class="ttdeci">const word &amp; baseName() const</div><div class="ttdoc">Base name.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00122">integration.hpp:122</a></div></div>
<div class="ttc" id="anamespacepFlow_html"><div class="ttname"><a href="namespacepFlow.html">pFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="demGeometry_8hpp_source.html#l00027">demGeometry.hpp:27</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a2dfa8f3fb9e8b803ed22d20d63e2f094"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094">pFlow::AdamsBashforth2::correctPStruct</a></div><div class="ttdeci">bool correctPStruct(real dt, pointStructure &amp;pStruct, realx3PointField_D &amp;vel) final</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00165">AdamsBashforth2.cpp:165</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_aec90bedeff0a2a031a0d310526a33f3b"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#aec90bedeff0a2a031a0d310526a33f3b">pFlow::AdamsBashforth2::dy1</a></div><div class="ttdeci">const auto &amp; dy1() const</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00048">AdamsBashforth2.hpp:48</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_acfc416287e9f31450d930160b1ccaef3"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#acfc416287e9f31450d930160b1ccaef3">pFlow::AdamsBashforth2::processorAB2BoundaryIntegration</a></div><div class="ttdeci">friend class processorAB2BoundaryIntegration</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00046">AdamsBashforth2.hpp:46</a></div></div>
<div class="ttc" id="aclasspFlow_1_1boundaryIntegrationList_html"><div class="ttname"><a href="classpFlow_1_1boundaryIntegrationList.html">pFlow::boundaryIntegrationList</a></div><div class="ttdef"><b>Definition:</b> <a href="boundaryIntegrationList_8hpp_source.html#l00016">boundaryIntegrationList.hpp:16</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_ad114a4a04b76ea8e10d4388756912a7e"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e">pFlow::AdamsBashforth2::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) final</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00187">AdamsBashforth2.cpp:187</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html">pFlow::AdamsBashforth2</a></div><div class="ttdoc">Second order Adams-Bashforth integration method for solving ODE.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8hpp_source.html#l00037">AdamsBashforth2.hpp:37</a></div></div>
<div class="ttc" id="aintegration_8hpp_html"><div class="ttname"><a href="integration_8hpp.html">integration.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_abd77556ae6ba5220c472e06b2ef2da31"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31">pFlow::AdamsBashforth2::updateBoundariesSlaveToMasterIfRequested</a></div><div class="ttdeci">void updateBoundariesSlaveToMasterIfRequested() override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth2_8cpp_source.html#l00118">AdamsBashforth2.cpp:118</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aboundaryIntegrationList_8hpp_html"><div class="ttname"><a href="boundaryIntegrationList_8hpp.html">boundaryIntegrationList.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth2_html_a3f4d930dbe074e5170da8b9a74f3c8b8"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth2.html#a3f4d930dbe074e5170da8b9a74f3c8b8">pFlow::AdamsBashforth2::add_vCtor</a></div><div class="ttdeci">add_vCtor(integration, AdamsBashforth2, word)</div><div class="ttdoc">Add this to the virtual constructor table.</div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_eb84e0c9bccf6469316a77378e4a6fe1.html">AdamsBashforth2</a></li><li class="navelem"><a class="el" href="AdamsBashforth2_8hpp.html">AdamsBashforth2.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth3/AdamsBashforth3.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth3_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth3.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth3.cpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth3_8cpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth3_2AdamsBashforth3_8cpp" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth3_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_9fe92fbd2d3b874c8837b9b8f1c20305.html">AdamsBashforth3</a></li><li class="navelem"><a class="el" href="AdamsBashforth3_8cpp.html">AdamsBashforth3.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth3/AdamsBashforth3.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth3\l/AdamsBashforth3.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="AdamsBashforth3.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$AdamsBashforth3_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,254 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth3/AdamsBashforth3.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth3_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth3.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth3_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AdamsBashforth3_8hpp.html">AdamsBashforth3.hpp</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//const real AB3_coef[] = { 23.0 / 12.0, 16.0 / 12.0, 5.0 / 12.0 };</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<a class="code" href="classpFlow_1_1AdamsBashforth3.html#a1f266356c0127865641500aea4aca002">pFlow::AdamsBashforth3::AdamsBashforth3</a></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#a1f266356c0127865641500aea4aca002"> 26</a></span>&#160;(</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classpFlow_1_1repository.html">repository</a>&amp; owner,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; method</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;:</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>, owner, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, method),</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; history_(</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; owner.emplaceObject&lt;<a class="code" href="classpFlow_1_1pointField.html">pointField&lt;VectorSingle,AB3History&gt;</a>&gt;(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classpFlow_1_1objectFile.html">objectFile</a>(</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">groupNames</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,<span class="stringliteral">&quot;AB3History&quot;</span>),</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; objectFile::READ_IF_PRESENT,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; objectFile::WRITE_ALWAYS),</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="structpFlow_1_1AB3History.html">AB3History</a>({<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>,<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>})))</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth3::predict</a></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#afb1938bc6cfc199cbd70f224040d4afc"> 49</a></span>&#160;(</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;)</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth3::correct</a></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#ac755e4bf02c3732d1eb89de9e903ebdb"> 60</a></span>&#160;(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;)</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().allActive())</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> intAll(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activeRange());</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> intRange(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activePointsMaskD());</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#a8da2088458d635dfa1fbe1823a3bfd6d"> 79</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth3::setInitialVals</a>(</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#a152b752a6b7b37e70fa5e7c99a484783"> 86</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth3::intAll</a>(</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y, </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; range activeRng)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> d_history = history_.deviceViewAll();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="stringliteral">&quot;AdamsBashforth3::correct&quot;</span>,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> (activeRng.first, activeRng.second),</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">int32</a> i){</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">auto</span> ldy = d_dy[i];</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; d_y[i] += dt*( <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(23.0 / 12.0) * ldy </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(16.0 / 12.0) * d_history[i].dy1_ </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(5.0 / 12.0) * d_history[i].dy2_);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; d_history[i] = {ldy ,d_history[i].dy1_};</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; });</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a8da2088458d635dfa1fbe1823a3bfd6d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth3::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) override</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00079">AdamsBashforth3.cpp:79</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_ace46ff4fbe3c001c816dbc4f9f67606f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f">pFlow::AdamsBashforth3::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; int32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00087">AdamsBashforth3.hpp:87</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB3History_html"><div class="ttname"><a href="structpFlow_1_1AB3History.html">pFlow::AB3History</a></div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00031">AdamsBashforth3.hpp:31</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_afb1938bc6cfc199cbd70f224040d4afc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth3::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3Vector_D &amp;UNUSED(y), realx3Vector_D &amp;UNUSED(dy)) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00049">AdamsBashforth3.cpp:49</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a477d522d35403bd985ae105bd759e9d1"><div class="ttname"><a href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">pFlow::zero3</a></div><div class="ttdeci">const realx3 zero3(0.0)</div><div class="ttdef"><b>Definition:</b> <a href="types_8hpp_source.html#l00137">types.hpp:137</a></div></div>
<div class="ttc" id="aAdamsBashforth3_8hpp_html"><div class="ttname"><a href="AdamsBashforth3_8hpp.html">AdamsBashforth3.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_ac755e4bf02c3732d1eb89de9e903ebdb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth3::correct</a></div><div class="ttdeci">bool correct(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00060">AdamsBashforth3.cpp:60</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a1f266356c0127865641500aea4aca002"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a1f266356c0127865641500aea4aca002">pFlow::AdamsBashforth3::AdamsBashforth3</a></div><div class="ttdeci">AdamsBashforth3(const word &amp;baseName, repository &amp;owner, const pointStructure &amp;pStruct, const word &amp;method)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00026">AdamsBashforth3.cpp:26</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a16a2137651b2c6b8ea4a8daf1d89ff61"><div class="ttname"><a href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">pFlow::baseName</a></div><div class="ttdeci">word baseName(const word &amp;w, char sep='.')</div><div class="ttdoc">Find the base in a group separated by &quot;.&quot; and return it.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00185">bTypesFunctions.cpp:185</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aae6ad039f09c0676db11bd114136a3fa"><div class="ttname"><a href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">pFlow::int32</a></div><div class="ttdeci">int int32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00050">builtinTypes.hpp:50</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html">pFlow::VectorSingle</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8hpp_source.html#l00044">VectorSingle.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1objectFile_html"><div class="ttname"><a href="classpFlow_1_1objectFile.html">pFlow::objectFile</a></div><div class="ttdef"><b>Definition:</b> <a href="objectFile_8hpp_source.html#l00030">objectFile.hpp:30</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a152b752a6b7b37e70fa5e7c99a484783"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth3::intAll</a></div><div class="ttdeci">bool intAll(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, range activeRng)</div><div class="ttdoc">Integrate on all points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00086">AdamsBashforth3.cpp:86</a></div></div>
<div class="ttc" id="asetPointStructure_8hpp_html_a385e32971df44b131e4498181a949a91"><div class="ttname"><a href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a></div><div class="ttdeci">auto &amp; pStruct</div><div class="ttdef"><b>Definition:</b> <a href="setPointStructure_8hpp_source.html#l00024">setPointStructure.hpp:24</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a51122b76468e0c5f19ea69c5c0ca6cf4"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">pFlow::VectorSingle::deviceViewAll</a></div><div class="ttdeci">INLINE_FUNCTION_H auto &amp; deviceViewAll()</div><div class="ttdoc">Device view range [0,capcity)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00249">VectorSingle.cpp:249</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a12b4d93aa9730629403d73e84386bff5"><div class="ttname"><a href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">pFlow::groupNames</a></div><div class="ttdeci">word groupNames(const word &amp;bw, const word &amp;tw, char sep='.')</div><div class="ttdoc">Group words and output bw.tw.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00179">bTypesFunctions.cpp:179</a></div></div>
<div class="ttc" id="aclasspFlow_1_1repository_html"><div class="ttname"><a href="classpFlow_1_1repository.html">pFlow::repository</a></div><div class="ttdef"><b>Definition:</b> <a href="repository_8hpp_source.html#l00034">repository.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_9fe92fbd2d3b874c8837b9b8f1c20305.html">AdamsBashforth3</a></li><li class="navelem"><a class="el" href="AdamsBashforth3_8cpp.html">AdamsBashforth3.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth3/AdamsBashforth3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth3_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">AdamsBashforth3.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth3.hpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth3_8hpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth3_2AdamsBashforth3_8hpp" alt=""/></div>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth3_8hpp__dep__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth3_2AdamsBashforth3_8hppdep" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth3_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpFlow_1_1AB3History.html">AB3History</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1AdamsBashforth3.html">AdamsBashforth3</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Third order Adams-Bashforth integration method for solving ODE. <a href="classpFlow_1_1AdamsBashforth3.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a85ed561d066dae339196cd058783674f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iIstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a85ed561d066dae339196cd058783674f">operator&gt;&gt;</a> (iIstream &amp;str, AB3History &amp;ab3)</td></tr>
<tr class="separator:a85ed561d066dae339196cd058783674f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a148d74ad0977268be8ea8b26a147f619"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iOstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619">operator&lt;&lt;</a> (iOstream &amp;str, const AB3History &amp;ab3)</td></tr>
<tr class="separator:a148d74ad0977268be8ea8b26a147f619"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_9fe92fbd2d3b874c8837b9b8f1c20305.html">AdamsBashforth3</a></li><li class="navelem"><a class="el" href="AdamsBashforth3_8hpp.html">AdamsBashforth3.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var AdamsBashforth3_8hpp =
[
[ "AB3History", "structpFlow_1_1AB3History.html", "structpFlow_1_1AB3History" ],
[ "AdamsBashforth3", "classpFlow_1_1AdamsBashforth3.html", "classpFlow_1_1AdamsBashforth3" ],
[ "operator>>", "AdamsBashforth3_8hpp.html#a85ed561d066dae339196cd058783674f", null ],
[ "operator<<", "AdamsBashforth3_8hpp.html#a148d74ad0977268be8ea8b26a147f619", null ]
];

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth3/AdamsBashforth3.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth3\l/AdamsBashforth3.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="src/Integration/AdamsBashforth3\l/AdamsBashforth3.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$AdamsBashforth3_8cpp.html",tooltip=" "];
}

View File

@ -0,0 +1,12 @@
digraph "src/Integration/AdamsBashforth3/AdamsBashforth3.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth3\l/AdamsBashforth3.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="integration.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$integration_8hpp.html",tooltip=" "];
Node2 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node41 [label="pointFields.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$pointFields_8hpp.html",tooltip=" "];
Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@ -0,0 +1,349 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth3/AdamsBashforth3.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth3_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth3.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth3_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef __AdamsBashforth3_hpp__</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define __AdamsBashforth3_hpp__</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="integration_8hpp.html">integration.hpp</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pointFields_8hpp.html">pointFields.hpp</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow.html">pFlow</a></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB3History.html"> 31</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structpFlow_1_1AB3History.html">AB3History</a></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="structpFlow_1_1AB3History.html#ad542852c8da95d45b6a6014d9f42a663">TypeInfoNV</a>(<span class="stringliteral">&quot;AB3History&quot;</span>);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB3History.html#a419568ee851e74f5356a30fc5ce2eddf"> 35</a></span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="structpFlow_1_1AB3History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a>={0,0,0};</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB3History.html#a63d020867c10f8f3fde329eb526a066b"> 36</a></span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="structpFlow_1_1AB3History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a>={0,0,0};</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a85ed561d066dae339196cd058783674f"> 41</a></span>&#160;<a class="code" href="classpFlow_1_1iIstream.html">iIstream</a>&amp; <a class="code" href="namespacepFlow.html#a85ed561d066dae339196cd058783674f">operator&gt;&gt;</a>(<a class="code" href="classpFlow_1_1iIstream.html">iIstream</a>&amp; str, <a class="code" href="structpFlow_1_1AB3History.html">AB3History</a>&amp; ab3)</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; str.<a class="code" href="classpFlow_1_1iIstream.html#aecfc9cc0a499c7d44de6a7562bcfea3f">readBegin</a>(<span class="stringliteral">&quot;AB3History&quot;</span>);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; str &gt;&gt; ab3.<a class="code" href="structpFlow_1_1AB3History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a>;</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; str &gt;&gt; ab3.<a class="code" href="structpFlow_1_1AB3History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a>;</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; str.<a class="code" href="classpFlow_1_1iIstream.html#a8d82c951160ac1444ee2a2d9ae1ecb11">readEnd</a>(<span class="stringliteral">&quot;AB3History&quot;</span>);</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; str.<a class="code" href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">check</a>(<a class="code" href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a>);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619"> 57</a></span>&#160;<a class="code" href="classpFlow_1_1iOstream.html">iOstream</a>&amp; <a class="code" href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619">operator&lt;&lt;</a>(<a class="code" href="classpFlow_1_1iOstream.html">iOstream</a>&amp; str, <span class="keyword">const</span> <a class="code" href="structpFlow_1_1AB3History.html">AB3History</a>&amp; ab3)</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; str &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb">token::BEGIN_LIST</a> &lt;&lt; ab3.<a class="code" href="structpFlow_1_1AB3History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95">token::SPACE</a> &lt;&lt; ab3.<a class="code" href="structpFlow_1_1AB3History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24">token::END_LIST</a>; </div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; str.<a class="code" href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">check</a>(<a class="code" href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a>);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;}</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html"> 73</a></span>&#160;<span class="keyword">class </span><a class="code" href="classpFlow_1_1AdamsBashforth3.html">AdamsBashforth3</a></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;:</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">public</span> <a class="code" href="classpFlow_1_1integration.html">integration</a></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#ac46bad4a80ef6f7507d3b795f42b7326"> 80</a></span>&#160; <a class="code" href="classpFlow_1_1pointField.html">pointField&lt;VectorSingle,AB3History&gt;</a>&amp; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ac46bad4a80ef6f7507d3b795f42b7326">history_</a>;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">using</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> = Kokkos::RangePolicy&lt;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">DefaultExecutionSpace</a>,</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; Kokkos::Schedule&lt;Kokkos::Static&gt;,</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; Kokkos::IndexType&lt;int32&gt;</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f"> 87</a></span>&#160; &gt;;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// type info</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#af73af994d6bfc50ff9bda4606cac960b">TypeInfo</a>(<span class="stringliteral">&quot;AdamsBashforth3&quot;</span>);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// - Constructors</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a1f266356c0127865641500aea4aca002">AdamsBashforth3</a>(</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">baseName</a>,</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="classpFlow_1_1repository.html">repository</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a10329e18307a60d3fdb203bcbed2b295">owner</a>,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>,</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a05cf94b87db6b7d4b9c2d2eb81592cf3">method</a>);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#a29f8a3197295f0ffa73d24bbacc6228c"> 103</a></span>&#160; <a class="code" href="classpFlow_1_1uniquePtr.html">uniquePtr&lt;integration&gt;</a> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a29f8a3197295f0ffa73d24bbacc6228c">clone</a>()<span class="keyword">const override</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> makeUnique&lt;AdamsBashforth3&gt;(*<span class="keyword">this</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#aaef6f6937fdab620942909e86c18cb3a">~AdamsBashforth3</a>()=<span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a9626dd5e2e9be37e395ace9fc484d879">add_vCtor</a>(</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>,</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html">AdamsBashforth3</a>,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// - Methods</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#afb1938bc6cfc199cbd70f224040d4afc">predict</a>(</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a> &amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ac755e4bf02c3732d1eb89de9e903ebdb">correct</a>(<a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a> &amp; y,</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a8da2088458d635dfa1fbe1823a3bfd6d">setInitialVals</a>(</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#aceb0c803bb6e5c46a1695c4e5b6e641f"> 133</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#aceb0c803bb6e5c46a1695c4e5b6e641f">needSetInitialVals</a>()<span class="keyword">const override</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a152b752a6b7b37e70fa5e7c99a484783">intAll</a>(</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y, </div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy, </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; range activeRng);</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> activeFunctor&gt;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a191dc9197b587f09bb5ee7989b0ba43e">intRange</a>(</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy,</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; activeFunctor activeP );</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> activeFunctor&gt;</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth3.html#a191dc9197b587f09bb5ee7989b0ba43e"> 157</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth3.html#a191dc9197b587f09bb5ee7989b0ba43e">pFlow::AdamsBashforth3::intRange</a>(</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy,</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; activeFunctor activeP )</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">auto</span> d_history = history_.<a class="code" href="classpFlow_1_1internalField.html#ae49b1b421c0a7de757a2fdc46f163498">deviceViewAll</a>();</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">auto</span> activeRng = activeP.activeRange();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="stringliteral">&quot;AdamsBashforth3::correct&quot;</span>,</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> (activeRng.first, activeRng.second),</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">int32</a> i){</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>( activeP(i))</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">auto</span> ldy = d_dy[i];</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; d_y[i] += dt*( <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(23.0 / 12.0) * ldy </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(16.0 / 12.0) * d_history[i].dy1_ </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(5.0 / 12.0) * d_history[i].dy2_);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; d_history[i] = {ldy ,d_history[i].dy1_};</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; });</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;} <span class="comment">// pFlow</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#endif //__integration_hpp__</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aclasspFlow_1_1iIstream_html_aecfc9cc0a499c7d44de6a7562bcfea3f"><div class="ttname"><a href="classpFlow_1_1iIstream.html#aecfc9cc0a499c7d44de6a7562bcfea3f">pFlow::iIstream::readBegin</a></div><div class="ttdeci">bool readBegin(const char *funcName)</div><div class="ttdoc">Begin read of data chunk, starts with '('.</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8cpp_source.html#l00238">iIstream.cpp:238</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a8da2088458d635dfa1fbe1823a3bfd6d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth3::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) override</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00079">AdamsBashforth3.cpp:79</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_ac46bad4a80ef6f7507d3b795f42b7326"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#ac46bad4a80ef6f7507d3b795f42b7326">pFlow::AdamsBashforth3::history_</a></div><div class="ttdeci">pointField&lt; VectorSingle, AB3History &gt; &amp; history_</div><div class="ttdoc">Integration history.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00080">AdamsBashforth3.hpp:80</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_afc491fbd69e70abdcb02a8cd3ce2939e"><div class="ttname"><a href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div><div class="ttdeci">#define INLINE_FUNCTION</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00066">pFlowMacros.hpp:66</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_ace46ff4fbe3c001c816dbc4f9f67606f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#ace46ff4fbe3c001c816dbc4f9f67606f">pFlow::AdamsBashforth3::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; int32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00087">AdamsBashforth3.hpp:87</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB3History_html"><div class="ttname"><a href="structpFlow_1_1AB3History.html">pFlow::AB3History</a></div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00031">AdamsBashforth3.hpp:31</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_afb1938bc6cfc199cbd70f224040d4afc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth3::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3Vector_D &amp;UNUSED(y), realx3Vector_D &amp;UNUSED(dy)) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00049">AdamsBashforth3.cpp:49</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_aceb0c803bb6e5c46a1695c4e5b6e641f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#aceb0c803bb6e5c46a1695c4e5b6e641f">pFlow::AdamsBashforth3::needSetInitialVals</a></div><div class="ttdeci">bool needSetInitialVals() const override</div><div class="ttdoc">Check if the method requires any set initial vals.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00133">AdamsBashforth3.hpp:133</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="aclasspFlow_1_1internalField_html_ae49b1b421c0a7de757a2fdc46f163498"><div class="ttname"><a href="classpFlow_1_1internalField.html#ae49b1b421c0a7de757a2fdc46f163498">pFlow::internalField&lt; T, void &gt;::deviceViewAll</a></div><div class="ttdeci">const auto &amp; deviceViewAll() const</div><div class="ttdef"><b>Definition:</b> <a href="internalField_8hpp_source.html#l00092">internalField.hpp:92</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a5a622149e803f0fa292a95784c12a7b8"><div class="ttname"><a href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pFlow::integration::pStruct</a></div><div class="ttdeci">const auto &amp; pStruct() const</div><div class="ttdoc">Const ref to pointStructure.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00115">integration.hpp:115</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iIstream_html_a8d82c951160ac1444ee2a2d9ae1ecb11"><div class="ttname"><a href="classpFlow_1_1iIstream.html#a8d82c951160ac1444ee2a2d9ae1ecb11">pFlow::iIstream::readEnd</a></div><div class="ttdeci">bool readEnd(const char *funcName)</div><div class="ttdoc">End read of data chunk, ends with ')' return true or FatalIOError.</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8cpp_source.html#l00258">iIstream.cpp:258</a></div></div>
<div class="ttc" id="apointFields_8hpp_html"><div class="ttname"><a href="pointFields_8hpp.html">pointFields.hpp</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a922d2784284e8f6ee4009c3d92ba48b6"><div class="ttname"><a href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a></div><div class="ttdeci">#define FUNCTION_NAME</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00029">pFlowMacros.hpp:29</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_aaef6f6937fdab620942909e86c18cb3a"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#aaef6f6937fdab620942909e86c18cb3a">pFlow::AdamsBashforth3::~AdamsBashforth3</a></div><div class="ttdeci">virtual ~AdamsBashforth3()=default</div><div class="ttdoc">Destructor.</div></div>
<div class="ttc" id="anamespacepFlow_html_aa3a14d3c76643399fc4edd8eca14944a"><div class="ttname"><a href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">pFlow::DefaultExecutionSpace</a></div><div class="ttdeci">Kokkos::DefaultExecutionSpace DefaultExecutionSpace</div><div class="ttdoc">Default execution space, it can be device exe.</div><div class="ttdef"><b>Definition:</b> <a href="KokkosTypes_8hpp_source.html#l00061">KokkosTypes.hpp:61</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_ac755e4bf02c3732d1eb89de9e903ebdb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth3::correct</a></div><div class="ttdeci">bool correct(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00060">AdamsBashforth3.cpp:60</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a1f266356c0127865641500aea4aca002"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a1f266356c0127865641500aea4aca002">pFlow::AdamsBashforth3::AdamsBashforth3</a></div><div class="ttdeci">AdamsBashforth3(const word &amp;baseName, repository &amp;owner, const pointStructure &amp;pStruct, const word &amp;method)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00026">AdamsBashforth3.cpp:26</a></div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95">pFlow::token::SPACE</a></div><div class="ttdeci">@ SPACE</div><div class="ttdoc">Nul character.</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00086">token.hpp:86</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a4e30df3927ef1cdd2490cd85018518f5"><div class="ttname"><a href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">pFlow::integration::baseName</a></div><div class="ttdeci">const word &amp; baseName() const</div><div class="ttdoc">Base name.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00122">integration.hpp:122</a></div></div>
<div class="ttc" id="anamespacepFlow_html"><div class="ttname"><a href="namespacepFlow.html">pFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="demGeometry_8hpp_source.html#l00027">demGeometry.hpp:27</a></div></div>
<div class="ttc" id="aclasspFlow_1_1IOstream_html_a367eb3425fc4e8270e2aa961df8ac8a5"><div class="ttname"><a href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">pFlow::IOstream::check</a></div><div class="ttdeci">virtual bool check(const char *operation) const</div><div class="ttdoc">Check IOstream status for given operation.</div><div class="ttdef"><b>Definition:</b> <a href="IOstream_8cpp_source.html#l00042">IOstream.cpp:42</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a191dc9197b587f09bb5ee7989b0ba43e"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a191dc9197b587f09bb5ee7989b0ba43e">pFlow::AdamsBashforth3::intRange</a></div><div class="ttdeci">bool intRange(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, activeFunctor activeP)</div><div class="ttdoc">Integrate on active points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00157">AdamsBashforth3.hpp:157</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iIstream_html"><div class="ttname"><a href="classpFlow_1_1iIstream.html">pFlow::iIstream</a></div><div class="ttdoc">Interface class for any input stream</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8hpp_source.html#l00037">iIstream.hpp:37</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a9626dd5e2e9be37e395ace9fc484d879"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a9626dd5e2e9be37e395ace9fc484d879">pFlow::AdamsBashforth3::add_vCtor</a></div><div class="ttdeci">add_vCtor(integration, AdamsBashforth3, word)</div><div class="ttdoc">Add this to the virtual constructor table.</div></div>
<div class="ttc" id="anamespacepFlow_html_aae6ad039f09c0676db11bd114136a3fa"><div class="ttname"><a href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">pFlow::int32</a></div><div class="ttdeci">int int32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00050">builtinTypes.hpp:50</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a85ed561d066dae339196cd058783674f"><div class="ttname"><a href="namespacepFlow.html#a85ed561d066dae339196cd058783674f">pFlow::operator&gt;&gt;</a></div><div class="ttdeci">INLINE_FUNCTION iIstream &amp; operator&gt;&gt;(iIstream &amp;str, AB3History &amp;ab3)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00041">AdamsBashforth3.hpp:41</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB3History_html_a63d020867c10f8f3fde329eb526a066b"><div class="ttname"><a href="structpFlow_1_1AB3History.html#a63d020867c10f8f3fde329eb526a066b">pFlow::AB3History::dy2_</a></div><div class="ttdeci">realx3 dy2_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00036">AdamsBashforth3.hpp:36</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB3History_html_ad542852c8da95d45b6a6014d9f42a663"><div class="ttname"><a href="structpFlow_1_1AB3History.html#ad542852c8da95d45b6a6014d9f42a663">pFlow::AB3History::TypeInfoNV</a></div><div class="ttdeci">TypeInfoNV(&quot;AB3History&quot;)</div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24">pFlow::token::END_LIST</a></div><div class="ttdeci">@ END_LIST</div><div class="ttdoc">Begin list [isseparator].</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00092">token.hpp:92</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB3History_html_a419568ee851e74f5356a30fc5ce2eddf"><div class="ttname"><a href="structpFlow_1_1AB3History.html#a419568ee851e74f5356a30fc5ce2eddf">pFlow::AB3History::dy1_</a></div><div class="ttdeci">realx3 dy1_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00035">AdamsBashforth3.hpp:35</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a148d74ad0977268be8ea8b26a147f619"><div class="ttname"><a href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619">pFlow::operator&lt;&lt;</a></div><div class="ttdeci">INLINE_FUNCTION iOstream &amp; operator&lt;&lt;(iOstream &amp;str, const AB3History &amp;ab3)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00057">AdamsBashforth3.hpp:57</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html">pFlow::VectorSingle</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8hpp_source.html#l00044">VectorSingle.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a152b752a6b7b37e70fa5e7c99a484783"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth3::intAll</a></div><div class="ttdeci">bool intAll(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, range activeRng)</div><div class="ttdoc">Integrate on all points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8cpp_source.html#l00086">AdamsBashforth3.cpp:86</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a10329e18307a60d3fdb203bcbed2b295"><div class="ttname"><a href="classpFlow_1_1integration.html#a10329e18307a60d3fdb203bcbed2b295">pFlow::integration::owner</a></div><div class="ttdeci">repository &amp; owner()</div><div class="ttdoc">Ref to the owner repository.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00129">integration.hpp:129</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a51122b76468e0c5f19ea69c5c0ca6cf4"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">pFlow::VectorSingle::deviceViewAll</a></div><div class="ttdeci">INLINE_FUNCTION_H auto &amp; deviceViewAll()</div><div class="ttdoc">Device view range [0,capcity)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00249">VectorSingle.cpp:249</a></div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb">pFlow::token::BEGIN_LIST</a></div><div class="ttdeci">@ BEGIN_LIST</div><div class="ttdoc">End entry [isseparator].</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00091">token.hpp:91</a></div></div>
<div class="ttc" id="aclasspFlow_1_1uniquePtr_html"><div class="ttname"><a href="classpFlow_1_1uniquePtr.html">pFlow::uniquePtr</a></div><div class="ttdef"><b>Definition:</b> <a href="uniquePtr_8hpp_source.html#l00042">uniquePtr.hpp:42</a></div></div>
<div class="ttc" id="aintegration_8hpp_html"><div class="ttname"><a href="integration_8hpp.html">integration.hpp</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_a29f8a3197295f0ffa73d24bbacc6228c"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#a29f8a3197295f0ffa73d24bbacc6228c">pFlow::AdamsBashforth3::clone</a></div><div class="ttdeci">uniquePtr&lt; integration &gt; clone() const override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00103">AdamsBashforth3.hpp:103</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html_af73af994d6bfc50ff9bda4606cac960b"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html#af73af994d6bfc50ff9bda4606cac960b">pFlow::AdamsBashforth3::TypeInfo</a></div><div class="ttdeci">TypeInfo(&quot;AdamsBashforth3&quot;)</div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth3_html"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth3.html">pFlow::AdamsBashforth3</a></div><div class="ttdoc">Third order Adams-Bashforth integration method for solving ODE.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00073">AdamsBashforth3.hpp:73</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a05cf94b87db6b7d4b9c2d2eb81592cf3"><div class="ttname"><a href="classpFlow_1_1integration.html#a05cf94b87db6b7d4b9c2d2eb81592cf3">pFlow::integration::method</a></div><div class="ttdeci">virtual word method() const =0</div><div class="ttdoc">return integration method</div></div>
<div class="ttc" id="aclasspFlow_1_1repository_html"><div class="ttname"><a href="classpFlow_1_1repository.html">pFlow::repository</a></div><div class="ttdef"><b>Definition:</b> <a href="repository_8hpp_source.html#l00034">repository.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1triple_html"><div class="ttname"><a href="classpFlow_1_1triple.html">pFlow::triple&lt; real &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iOstream_html"><div class="ttname"><a href="classpFlow_1_1iOstream.html">pFlow::iOstream</a></div><div class="ttdoc">Interface class for any output stream.</div><div class="ttdef"><b>Definition:</b> <a href="iOstream_8hpp_source.html#l00059">iOstream.hpp:59</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_9fe92fbd2d3b874c8837b9b8f1c20305.html">AdamsBashforth3</a></li><li class="navelem"><a class="el" href="AdamsBashforth3_8hpp.html">AdamsBashforth3.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth4/AdamsBashforth4.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth4_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth4.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth4.cpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth4_8cpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth4_2AdamsBashforth4_8cpp" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth4_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_543abfe930aaf536629272b1dc711075.html">AdamsBashforth4</a></li><li class="navelem"><a class="el" href="AdamsBashforth4_8cpp.html">AdamsBashforth4.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth4/AdamsBashforth4.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth4\l/AdamsBashforth4.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="AdamsBashforth4.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$AdamsBashforth4_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,260 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth4/AdamsBashforth4.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth4_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth4.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth4_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AdamsBashforth4_8hpp.html">AdamsBashforth4.hpp</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<a class="code" href="classpFlow_1_1AdamsBashforth4.html#a69029aec4bfcd45b781d1cfc65359fcb">pFlow::AdamsBashforth4::AdamsBashforth4</a></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#a69029aec4bfcd45b781d1cfc65359fcb"> 26</a></span>&#160;(</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classpFlow_1_1repository.html">repository</a>&amp; owner,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; method</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;:</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>, owner, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, method),</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; history_(</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; owner.emplaceObject&lt;<a class="code" href="classpFlow_1_1pointField.html">pointField&lt;VectorSingle,AB4History&gt;</a>&gt;(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classpFlow_1_1objectFile.html">objectFile</a>(</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">groupNames</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,<span class="stringliteral">&quot;AB4History&quot;</span>),</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; objectFile::READ_IF_PRESENT,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; objectFile::WRITE_ALWAYS),</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="structpFlow_1_1AB4History.html">AB4History</a>({<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>,<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>, <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>})))</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth4::predict</a></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#afb1938bc6cfc199cbd70f224040d4afc"> 49</a></span>&#160;(</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;)</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth4::correct</a></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#ac755e4bf02c3732d1eb89de9e903ebdb"> 60</a></span>&#160;(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;)</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().allActive())</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> intAll(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activeRange());</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> intRange(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activePointsMaskD());</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#a8da2088458d635dfa1fbe1823a3bfd6d"> 79</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth4::setInitialVals</a>(</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#a152b752a6b7b37e70fa5e7c99a484783"> 86</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth4::intAll</a>(</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y, </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; range activeRng)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> d_history = history_.deviceViewAll();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="stringliteral">&quot;AdamsBashforth4::correct&quot;</span>,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> (activeRng.first, activeRng.second),</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">int32</a> i){ </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; d_y[i] += dt*( </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(55.0 / 24.0) * d_dy[i]</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(59.0 / 24.0) * d_history[i].dy1_ </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(37.0 / 24.0) * d_history[i].dy2_</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>( 9.0 / 24.0) * d_history[i].dy3_</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; );</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; d_history[i].dy3_ = d_history[i].dy2_;</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; d_history[i].dy2_ = d_history[i].dy1_;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; d_history[i].dy1_ = d_dy[i];</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; });</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a477d522d35403bd985ae105bd759e9d1"><div class="ttname"><a href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">pFlow::zero3</a></div><div class="ttdeci">const realx3 zero3(0.0)</div><div class="ttdef"><b>Definition:</b> <a href="types_8hpp_source.html#l00137">types.hpp:137</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a16a2137651b2c6b8ea4a8daf1d89ff61"><div class="ttname"><a href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">pFlow::baseName</a></div><div class="ttdeci">word baseName(const word &amp;w, char sep='.')</div><div class="ttdoc">Find the base in a group separated by &quot;.&quot; and return it.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00185">bTypesFunctions.cpp:185</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_ace46ff4fbe3c001c816dbc4f9f67606f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f">pFlow::AdamsBashforth4::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; int32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00091">AdamsBashforth4.hpp:91</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aae6ad039f09c0676db11bd114136a3fa"><div class="ttname"><a href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">pFlow::int32</a></div><div class="ttdeci">int int32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00050">builtinTypes.hpp:50</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_afb1938bc6cfc199cbd70f224040d4afc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth4::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3Vector_D &amp;UNUSED(y), realx3Vector_D &amp;UNUSED(dy)) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00049">AdamsBashforth4.cpp:49</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html">pFlow::VectorSingle</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8hpp_source.html#l00044">VectorSingle.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1objectFile_html"><div class="ttname"><a href="classpFlow_1_1objectFile.html">pFlow::objectFile</a></div><div class="ttdef"><b>Definition:</b> <a href="objectFile_8hpp_source.html#l00030">objectFile.hpp:30</a></div></div>
<div class="ttc" id="asetPointStructure_8hpp_html_a385e32971df44b131e4498181a949a91"><div class="ttname"><a href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a></div><div class="ttdeci">auto &amp; pStruct</div><div class="ttdef"><b>Definition:</b> <a href="setPointStructure_8hpp_source.html#l00024">setPointStructure.hpp:24</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a51122b76468e0c5f19ea69c5c0ca6cf4"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">pFlow::VectorSingle::deviceViewAll</a></div><div class="ttdeci">INLINE_FUNCTION_H auto &amp; deviceViewAll()</div><div class="ttdoc">Device view range [0,capcity)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00249">VectorSingle.cpp:249</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a69029aec4bfcd45b781d1cfc65359fcb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a69029aec4bfcd45b781d1cfc65359fcb">pFlow::AdamsBashforth4::AdamsBashforth4</a></div><div class="ttdeci">AdamsBashforth4(const word &amp;baseName, repository &amp;owner, const pointStructure &amp;pStruct, const word &amp;method)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00026">AdamsBashforth4.cpp:26</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="aAdamsBashforth4_8hpp_html"><div class="ttname"><a href="AdamsBashforth4_8hpp.html">AdamsBashforth4.hpp</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a12b4d93aa9730629403d73e84386bff5"><div class="ttname"><a href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">pFlow::groupNames</a></div><div class="ttdeci">word groupNames(const word &amp;bw, const word &amp;tw, char sep='.')</div><div class="ttdoc">Group words and output bw.tw.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00179">bTypesFunctions.cpp:179</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a8da2088458d635dfa1fbe1823a3bfd6d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth4::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) override</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00079">AdamsBashforth4.cpp:79</a></div></div>
<div class="ttc" id="aclasspFlow_1_1repository_html"><div class="ttname"><a href="classpFlow_1_1repository.html">pFlow::repository</a></div><div class="ttdef"><b>Definition:</b> <a href="repository_8hpp_source.html#l00034">repository.hpp:34</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB4History_html"><div class="ttname"><a href="structpFlow_1_1AB4History.html">pFlow::AB4History</a></div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00031">AdamsBashforth4.hpp:31</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a152b752a6b7b37e70fa5e7c99a484783"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth4::intAll</a></div><div class="ttdeci">bool intAll(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, range activeRng)</div><div class="ttdoc">Integrate on all points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00086">AdamsBashforth4.cpp:86</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_ac755e4bf02c3732d1eb89de9e903ebdb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth4::correct</a></div><div class="ttdeci">bool correct(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00060">AdamsBashforth4.cpp:60</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_543abfe930aaf536629272b1dc711075.html">AdamsBashforth4</a></li><li class="navelem"><a class="el" href="AdamsBashforth4_8cpp.html">AdamsBashforth4.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth4/AdamsBashforth4.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth4_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">AdamsBashforth4.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth4.hpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth4_8hpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth4_2AdamsBashforth4_8hpp" alt=""/></div>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth4_8hpp__dep__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth4_2AdamsBashforth4_8hppdep" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth4_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpFlow_1_1AB4History.html">AB4History</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1AdamsBashforth4.html">AdamsBashforth4</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fourth order Adams-Bashforth integration method for solving ODE. <a href="classpFlow_1_1AdamsBashforth4.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4719ac7229618782ebf68ae575a0b2e0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iIstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a4719ac7229618782ebf68ae575a0b2e0">operator&gt;&gt;</a> (iIstream &amp;str, AB4History &amp;ab4)</td></tr>
<tr class="separator:a4719ac7229618782ebf68ae575a0b2e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa85d76c90b7f76203f3d8ff43c85855d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iOstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#aa85d76c90b7f76203f3d8ff43c85855d">operator&lt;&lt;</a> (iOstream &amp;str, const AB4History &amp;ab4)</td></tr>
<tr class="separator:aa85d76c90b7f76203f3d8ff43c85855d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_543abfe930aaf536629272b1dc711075.html">AdamsBashforth4</a></li><li class="navelem"><a class="el" href="AdamsBashforth4_8hpp.html">AdamsBashforth4.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var AdamsBashforth4_8hpp =
[
[ "AB4History", "structpFlow_1_1AB4History.html", "structpFlow_1_1AB4History" ],
[ "AdamsBashforth4", "classpFlow_1_1AdamsBashforth4.html", "classpFlow_1_1AdamsBashforth4" ],
[ "operator>>", "AdamsBashforth4_8hpp.html#a4719ac7229618782ebf68ae575a0b2e0", null ],
[ "operator<<", "AdamsBashforth4_8hpp.html#aa85d76c90b7f76203f3d8ff43c85855d", null ]
];

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth4/AdamsBashforth4.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth4\l/AdamsBashforth4.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="src/Integration/AdamsBashforth4\l/AdamsBashforth4.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$AdamsBashforth4_8cpp.html",tooltip=" "];
}

View File

@ -0,0 +1,12 @@
digraph "src/Integration/AdamsBashforth4/AdamsBashforth4.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth4\l/AdamsBashforth4.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="integration.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$integration_8hpp.html",tooltip=" "];
Node2 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node41 [label="pointFields.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$pointFields_8hpp.html",tooltip=" "];
Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

View File

@ -0,0 +1,359 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth4/AdamsBashforth4.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth4_8hpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth4.hpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth4_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef __AdamsBashforth4_hpp__</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define __AdamsBashforth4_hpp__</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="integration_8hpp.html">integration.hpp</a>&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pointFields_8hpp.html">pointFields.hpp</a>&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacepFlow.html">pFlow</a></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB4History.html"> 31</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structpFlow_1_1AB4History.html">AB4History</a></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="structpFlow_1_1AB4History.html#a8a588b9f1b4c4b66c2f3d025548fdd8e">TypeInfoNV</a>(<span class="stringliteral">&quot;AB4History&quot;</span>);</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB4History.html#a419568ee851e74f5356a30fc5ce2eddf"> 35</a></span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="structpFlow_1_1AB4History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a>={0,0,0};</div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB4History.html#a63d020867c10f8f3fde329eb526a066b"> 36</a></span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="structpFlow_1_1AB4History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a>={0,0,0};</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structpFlow_1_1AB4History.html#a63473eb8257f38bf8863a5c7bd03a330"> 37</a></span>&#160; <a class="code" href="classpFlow_1_1triple.html">realx3</a> <a class="code" href="structpFlow_1_1AB4History.html#a63473eb8257f38bf8863a5c7bd03a330">dy3_</a>={0,0,0};</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a4719ac7229618782ebf68ae575a0b2e0"> 43</a></span>&#160;<a class="code" href="classpFlow_1_1iIstream.html">iIstream</a>&amp; <a class="code" href="namespacepFlow.html#a85ed561d066dae339196cd058783674f">operator&gt;&gt;</a>(<a class="code" href="classpFlow_1_1iIstream.html">iIstream</a>&amp; str, <a class="code" href="structpFlow_1_1AB4History.html">AB4History</a>&amp; ab4)</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; str.<a class="code" href="classpFlow_1_1iIstream.html#aecfc9cc0a499c7d44de6a7562bcfea3f">readBegin</a>(<span class="stringliteral">&quot;AB4History&quot;</span>);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; str &gt;&gt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a>;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; str &gt;&gt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a>;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; str &gt;&gt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a63473eb8257f38bf8863a5c7bd03a330">dy3_</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; str.<a class="code" href="classpFlow_1_1iIstream.html#a8d82c951160ac1444ee2a2d9ae1ecb11">readEnd</a>(<span class="stringliteral">&quot;AB4History&quot;</span>);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; str.<a class="code" href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">check</a>(<a class="code" href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a>);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<a class="code" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="namespacepFlow.html#aa85d76c90b7f76203f3d8ff43c85855d"> 60</a></span>&#160;<a class="code" href="classpFlow_1_1iOstream.html">iOstream</a>&amp; <a class="code" href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619">operator&lt;&lt;</a>(<a class="code" href="classpFlow_1_1iOstream.html">iOstream</a>&amp; str, <span class="keyword">const</span> <a class="code" href="structpFlow_1_1AB4History.html">AB4History</a>&amp; ab4)</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; str &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb">token::BEGIN_LIST</a> &lt;&lt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a419568ee851e74f5356a30fc5ce2eddf">dy1_</a></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95">token::SPACE</a> &lt;&lt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a63d020867c10f8f3fde329eb526a066b">dy2_</a></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95">token::SPACE</a> &lt;&lt; ab4.<a class="code" href="structpFlow_1_1AB4History.html#a63473eb8257f38bf8863a5c7bd03a330">dy3_</a></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; &lt;&lt; <a class="code" href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24">token::END_LIST</a>; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; str.<a class="code" href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">check</a>(<a class="code" href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a>);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> str;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html"> 77</a></span>&#160;<span class="keyword">class </span><a class="code" href="classpFlow_1_1AdamsBashforth4.html">AdamsBashforth4</a></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;:</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">public</span> <a class="code" href="classpFlow_1_1integration.html">integration</a></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#afc6b0e49b18c62aa5edca2a8212c1292"> 84</a></span>&#160; <a class="code" href="classpFlow_1_1pointField.html">pointField&lt;VectorSingle,AB4History&gt;</a>&amp; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#afc6b0e49b18c62aa5edca2a8212c1292">history_</a>;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">using</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> = Kokkos::RangePolicy&lt;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">DefaultExecutionSpace</a>,</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; Kokkos::Schedule&lt;Kokkos::Static&gt;,</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; Kokkos::IndexType&lt;int32&gt;</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f"> 91</a></span>&#160; &gt;;</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a7962c8cac5d82d0793dfeaba6c162f4d">TypeInfo</a>(<span class="stringliteral">&quot;AdamsBashforth4&quot;</span>);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// - Constructors</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a69029aec4bfcd45b781d1cfc65359fcb">AdamsBashforth4</a>(</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">baseName</a>,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classpFlow_1_1repository.html">repository</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a10329e18307a60d3fdb203bcbed2b295">owner</a>,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>,</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="classpFlow_1_1integration.html#a05cf94b87db6b7d4b9c2d2eb81592cf3">method</a>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#a29f8a3197295f0ffa73d24bbacc6228c"> 107</a></span>&#160; <a class="code" href="classpFlow_1_1uniquePtr.html">uniquePtr&lt;integration&gt;</a> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a29f8a3197295f0ffa73d24bbacc6228c">clone</a>()<span class="keyword">const override</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> makeUnique&lt;AdamsBashforth4&gt;(*<span class="keyword">this</span>);</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a8c3fff8fec7e5ef08cea578fed2e5fae">~AdamsBashforth4</a>()=<span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a1084909fe2f0dbd8f2af68ab4e94692a">add_vCtor</a>(</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html">AdamsBashforth4</a>,</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// - Methods</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#afb1938bc6cfc199cbd70f224040d4afc">predict</a>(</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a> &amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#ac755e4bf02c3732d1eb89de9e903ebdb">correct</a>(</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a> &amp; y,</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a8da2088458d635dfa1fbe1823a3bfd6d">setInitialVals</a>(</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y) <span class="keyword">override</span>;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#aceb0c803bb6e5c46a1695c4e5b6e641f"> 138</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#aceb0c803bb6e5c46a1695c4e5b6e641f">needSetInitialVals</a>()<span class="keyword">const override</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a152b752a6b7b37e70fa5e7c99a484783">intAll</a>(</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y, </div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy, </div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; range activeRng);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> activeFunctor&gt;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a191dc9197b587f09bb5ee7989b0ba43e">intRange</a>(</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy,</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; activeFunctor activeP );</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;};</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> activeFunctor&gt;</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth4.html#a191dc9197b587f09bb5ee7989b0ba43e"> 162</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth4.html#a191dc9197b587f09bb5ee7989b0ba43e">pFlow::AdamsBashforth4::intRange</a>(</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy,</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; activeFunctor activeP )</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">auto</span> d_history = history_.<a class="code" href="classpFlow_1_1internalField.html#ae49b1b421c0a7de757a2fdc46f163498">deviceViewAll</a>();</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">auto</span> activeRng = activeP.activeRange();</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="stringliteral">&quot;AdamsBashforth4::correct&quot;</span>,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> (activeRng.first, activeRng.second),</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">int32</a> i){</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>( activeP(i))</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; d_y[i] += dt*( </div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(55.0 / 24.0) * d_dy[i]</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(59.0 / 24.0) * d_history[i].dy1_ </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(37.0 / 24.0) * d_history[i].dy2_</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>( 9.0 / 24.0) * d_history[i].dy3_</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; );</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; d_history[i].dy3_ = d_history[i].dy2_;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; d_history[i].dy2_ = d_history[i].dy1_;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; d_history[i].dy1_ = d_dy[i];</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; });</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;} <span class="comment">// pFlow</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#endif //__integration_hpp__</span></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="astructpFlow_1_1AB4History_html_a63473eb8257f38bf8863a5c7bd03a330"><div class="ttname"><a href="structpFlow_1_1AB4History.html#a63473eb8257f38bf8863a5c7bd03a330">pFlow::AB4History::dy3_</a></div><div class="ttdeci">realx3 dy3_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00037">AdamsBashforth4.hpp:37</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a191dc9197b587f09bb5ee7989b0ba43e"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a191dc9197b587f09bb5ee7989b0ba43e">pFlow::AdamsBashforth4::intRange</a></div><div class="ttdeci">bool intRange(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, activeFunctor activeP)</div><div class="ttdoc">Integrate on active points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00162">AdamsBashforth4.hpp:162</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iIstream_html_aecfc9cc0a499c7d44de6a7562bcfea3f"><div class="ttname"><a href="classpFlow_1_1iIstream.html#aecfc9cc0a499c7d44de6a7562bcfea3f">pFlow::iIstream::readBegin</a></div><div class="ttdeci">bool readBegin(const char *funcName)</div><div class="ttdoc">Begin read of data chunk, starts with '('.</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8cpp_source.html#l00238">iIstream.cpp:238</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_afc491fbd69e70abdcb02a8cd3ce2939e"><div class="ttname"><a href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a></div><div class="ttdeci">#define INLINE_FUNCTION</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00066">pFlowMacros.hpp:66</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a29f8a3197295f0ffa73d24bbacc6228c"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a29f8a3197295f0ffa73d24bbacc6228c">pFlow::AdamsBashforth4::clone</a></div><div class="ttdeci">uniquePtr&lt; integration &gt; clone() const override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00107">AdamsBashforth4.hpp:107</a></div></div>
<div class="ttc" id="aclasspFlow_1_1internalField_html_ae49b1b421c0a7de757a2fdc46f163498"><div class="ttname"><a href="classpFlow_1_1internalField.html#ae49b1b421c0a7de757a2fdc46f163498">pFlow::internalField&lt; T, void &gt;::deviceViewAll</a></div><div class="ttdeci">const auto &amp; deviceViewAll() const</div><div class="ttdef"><b>Definition:</b> <a href="internalField_8hpp_source.html#l00092">internalField.hpp:92</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a5a622149e803f0fa292a95784c12a7b8"><div class="ttname"><a href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pFlow::integration::pStruct</a></div><div class="ttdeci">const auto &amp; pStruct() const</div><div class="ttdoc">Const ref to pointStructure.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00115">integration.hpp:115</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iIstream_html_a8d82c951160ac1444ee2a2d9ae1ecb11"><div class="ttname"><a href="classpFlow_1_1iIstream.html#a8d82c951160ac1444ee2a2d9ae1ecb11">pFlow::iIstream::readEnd</a></div><div class="ttdeci">bool readEnd(const char *funcName)</div><div class="ttdoc">End read of data chunk, ends with ')' return true or FatalIOError.</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8cpp_source.html#l00258">iIstream.cpp:258</a></div></div>
<div class="ttc" id="apointFields_8hpp_html"><div class="ttname"><a href="pointFields_8hpp.html">pointFields.hpp</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a922d2784284e8f6ee4009c3d92ba48b6"><div class="ttname"><a href="pFlowMacros_8hpp.html#a922d2784284e8f6ee4009c3d92ba48b6">FUNCTION_NAME</a></div><div class="ttdeci">#define FUNCTION_NAME</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00029">pFlowMacros.hpp:29</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aa3a14d3c76643399fc4edd8eca14944a"><div class="ttname"><a href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">pFlow::DefaultExecutionSpace</a></div><div class="ttdeci">Kokkos::DefaultExecutionSpace DefaultExecutionSpace</div><div class="ttdoc">Default execution space, it can be device exe.</div><div class="ttdef"><b>Definition:</b> <a href="KokkosTypes_8hpp_source.html#l00061">KokkosTypes.hpp:61</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a1084909fe2f0dbd8f2af68ab4e94692a"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a1084909fe2f0dbd8f2af68ab4e94692a">pFlow::AdamsBashforth4::add_vCtor</a></div><div class="ttdeci">add_vCtor(integration, AdamsBashforth4, word)</div><div class="ttdoc">Add a this to the virtual constructor table.</div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ac08dae7edcb5c5bb959fee5971fbad95">pFlow::token::SPACE</a></div><div class="ttdeci">@ SPACE</div><div class="ttdoc">Nul character.</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00086">token.hpp:86</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a7962c8cac5d82d0793dfeaba6c162f4d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a7962c8cac5d82d0793dfeaba6c162f4d">pFlow::AdamsBashforth4::TypeInfo</a></div><div class="ttdeci">TypeInfo(&quot;AdamsBashforth4&quot;)</div><div class="ttdoc">Type info.</div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a4e30df3927ef1cdd2490cd85018518f5"><div class="ttname"><a href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">pFlow::integration::baseName</a></div><div class="ttdeci">const word &amp; baseName() const</div><div class="ttdoc">Base name.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00122">integration.hpp:122</a></div></div>
<div class="ttc" id="anamespacepFlow_html"><div class="ttname"><a href="namespacepFlow.html">pFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="demGeometry_8hpp_source.html#l00027">demGeometry.hpp:27</a></div></div>
<div class="ttc" id="aclasspFlow_1_1IOstream_html_a367eb3425fc4e8270e2aa961df8ac8a5"><div class="ttname"><a href="classpFlow_1_1IOstream.html#a367eb3425fc4e8270e2aa961df8ac8a5">pFlow::IOstream::check</a></div><div class="ttdeci">virtual bool check(const char *operation) const</div><div class="ttdoc">Check IOstream status for given operation.</div><div class="ttdef"><b>Definition:</b> <a href="IOstream_8cpp_source.html#l00042">IOstream.cpp:42</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a8c3fff8fec7e5ef08cea578fed2e5fae"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a8c3fff8fec7e5ef08cea578fed2e5fae">pFlow::AdamsBashforth4::~AdamsBashforth4</a></div><div class="ttdeci">virtual ~AdamsBashforth4()=default</div><div class="ttdoc">Destructor.</div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iIstream_html"><div class="ttname"><a href="classpFlow_1_1iIstream.html">pFlow::iIstream</a></div><div class="ttdoc">Interface class for any input stream</div><div class="ttdef"><b>Definition:</b> <a href="iIstream_8hpp_source.html#l00037">iIstream.hpp:37</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_ace46ff4fbe3c001c816dbc4f9f67606f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#ace46ff4fbe3c001c816dbc4f9f67606f">pFlow::AdamsBashforth4::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; int32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00091">AdamsBashforth4.hpp:91</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aae6ad039f09c0676db11bd114136a3fa"><div class="ttname"><a href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">pFlow::int32</a></div><div class="ttdeci">int int32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00050">builtinTypes.hpp:50</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_afb1938bc6cfc199cbd70f224040d4afc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth4::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3Vector_D &amp;UNUSED(y), realx3Vector_D &amp;UNUSED(dy)) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00049">AdamsBashforth4.cpp:49</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB4History_html_a8a588b9f1b4c4b66c2f3d025548fdd8e"><div class="ttname"><a href="structpFlow_1_1AB4History.html#a8a588b9f1b4c4b66c2f3d025548fdd8e">pFlow::AB4History::TypeInfoNV</a></div><div class="ttdeci">TypeInfoNV(&quot;AB4History&quot;)</div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_aceb0c803bb6e5c46a1695c4e5b6e641f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#aceb0c803bb6e5c46a1695c4e5b6e641f">pFlow::AdamsBashforth4::needSetInitialVals</a></div><div class="ttdeci">bool needSetInitialVals() const override</div><div class="ttdoc">Check if the method requires any set initial vals.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00138">AdamsBashforth4.hpp:138</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a85ed561d066dae339196cd058783674f"><div class="ttname"><a href="namespacepFlow.html#a85ed561d066dae339196cd058783674f">pFlow::operator&gt;&gt;</a></div><div class="ttdeci">INLINE_FUNCTION iIstream &amp; operator&gt;&gt;(iIstream &amp;str, AB3History &amp;ab3)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00041">AdamsBashforth3.hpp:41</a></div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31ab0421ccee09cdeadea4bc12e7f38be24">pFlow::token::END_LIST</a></div><div class="ttdeci">@ END_LIST</div><div class="ttdoc">Begin list [isseparator].</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00092">token.hpp:92</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html">pFlow::AdamsBashforth4</a></div><div class="ttdoc">Fourth order Adams-Bashforth integration method for solving ODE.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00077">AdamsBashforth4.hpp:77</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a148d74ad0977268be8ea8b26a147f619"><div class="ttname"><a href="namespacepFlow.html#a148d74ad0977268be8ea8b26a147f619">pFlow::operator&lt;&lt;</a></div><div class="ttdeci">INLINE_FUNCTION iOstream &amp; operator&lt;&lt;(iOstream &amp;str, const AB3History &amp;ab3)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth3_8hpp_source.html#l00057">AdamsBashforth3.hpp:57</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html">pFlow::VectorSingle</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8hpp_source.html#l00044">VectorSingle.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a10329e18307a60d3fdb203bcbed2b295"><div class="ttname"><a href="classpFlow_1_1integration.html#a10329e18307a60d3fdb203bcbed2b295">pFlow::integration::owner</a></div><div class="ttdeci">repository &amp; owner()</div><div class="ttdoc">Ref to the owner repository.</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00129">integration.hpp:129</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a51122b76468e0c5f19ea69c5c0ca6cf4"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">pFlow::VectorSingle::deviceViewAll</a></div><div class="ttdeci">INLINE_FUNCTION_H auto &amp; deviceViewAll()</div><div class="ttdoc">Device view range [0,capcity)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00249">VectorSingle.cpp:249</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a69029aec4bfcd45b781d1cfc65359fcb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a69029aec4bfcd45b781d1cfc65359fcb">pFlow::AdamsBashforth4::AdamsBashforth4</a></div><div class="ttdeci">AdamsBashforth4(const word &amp;baseName, repository &amp;owner, const pointStructure &amp;pStruct, const word &amp;method)</div><div class="ttdoc">Construct from components.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00026">AdamsBashforth4.cpp:26</a></div></div>
<div class="ttc" id="aclasspFlow_1_1token_html_a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb"><div class="ttname"><a href="classpFlow_1_1token.html#a4aba281d025f1d580c3835d67656fd31a8042f41e6dc49acd5cf4e86844f79acb">pFlow::token::BEGIN_LIST</a></div><div class="ttdeci">@ BEGIN_LIST</div><div class="ttdoc">End entry [isseparator].</div><div class="ttdef"><b>Definition:</b> <a href="token_8hpp_source.html#l00091">token.hpp:91</a></div></div>
<div class="ttc" id="aclasspFlow_1_1uniquePtr_html"><div class="ttname"><a href="classpFlow_1_1uniquePtr.html">pFlow::uniquePtr</a></div><div class="ttdef"><b>Definition:</b> <a href="uniquePtr_8hpp_source.html#l00042">uniquePtr.hpp:42</a></div></div>
<div class="ttc" id="aintegration_8hpp_html"><div class="ttname"><a href="integration_8hpp.html">integration.hpp</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a8da2088458d635dfa1fbe1823a3bfd6d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth4::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) override</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00079">AdamsBashforth4.cpp:79</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html_a05cf94b87db6b7d4b9c2d2eb81592cf3"><div class="ttname"><a href="classpFlow_1_1integration.html#a05cf94b87db6b7d4b9c2d2eb81592cf3">pFlow::integration::method</a></div><div class="ttdeci">virtual word method() const =0</div><div class="ttdoc">return integration method</div></div>
<div class="ttc" id="aclasspFlow_1_1repository_html"><div class="ttname"><a href="classpFlow_1_1repository.html">pFlow::repository</a></div><div class="ttdef"><b>Definition:</b> <a href="repository_8hpp_source.html#l00034">repository.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_afc6b0e49b18c62aa5edca2a8212c1292"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#afc6b0e49b18c62aa5edca2a8212c1292">pFlow::AdamsBashforth4::history_</a></div><div class="ttdeci">pointField&lt; VectorSingle, AB4History &gt; &amp; history_</div><div class="ttdoc">Integration history.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00084">AdamsBashforth4.hpp:84</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB4History_html_a419568ee851e74f5356a30fc5ce2eddf"><div class="ttname"><a href="structpFlow_1_1AB4History.html#a419568ee851e74f5356a30fc5ce2eddf">pFlow::AB4History::dy1_</a></div><div class="ttdeci">realx3 dy1_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00035">AdamsBashforth4.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1triple_html"><div class="ttname"><a href="classpFlow_1_1triple.html">pFlow::triple&lt; real &gt;</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB4History_html"><div class="ttname"><a href="structpFlow_1_1AB4History.html">pFlow::AB4History</a></div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00031">AdamsBashforth4.hpp:31</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_a152b752a6b7b37e70fa5e7c99a484783"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth4::intAll</a></div><div class="ttdeci">bool intAll(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, range activeRng)</div><div class="ttdoc">Integrate on all points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00086">AdamsBashforth4.cpp:86</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1iOstream_html"><div class="ttname"><a href="classpFlow_1_1iOstream.html">pFlow::iOstream</a></div><div class="ttdoc">Interface class for any output stream.</div><div class="ttdef"><b>Definition:</b> <a href="iOstream_8hpp_source.html#l00059">iOstream.hpp:59</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB4History_html_a63d020867c10f8f3fde329eb526a066b"><div class="ttname"><a href="structpFlow_1_1AB4History.html#a63d020867c10f8f3fde329eb526a066b">pFlow::AB4History::dy2_</a></div><div class="ttdeci">realx3 dy2_</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8hpp_source.html#l00036">AdamsBashforth4.hpp:36</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth4_html_ac755e4bf02c3732d1eb89de9e903ebdb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth4.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth4::correct</a></div><div class="ttdeci">bool correct(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth4_8cpp_source.html#l00060">AdamsBashforth4.cpp:60</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_543abfe930aaf536629272b1dc711075.html">AdamsBashforth4</a></li><li class="navelem"><a class="el" href="AdamsBashforth4_8hpp.html">AdamsBashforth4.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,128 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth5/AdamsBashforth5.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth5_8cpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth5.cpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth5.cpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth5_8cpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth5_2AdamsBashforth5_8cpp" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth5_8cpp_source.html">Go to the source code of this file.</a></p>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_d19bd4f5a5ffc8e61ede52143ccad050.html">AdamsBashforth5</a></li><li class="navelem"><a class="el" href="AdamsBashforth5_8cpp.html">AdamsBashforth5.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth5/AdamsBashforth5.cpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth5\l/AdamsBashforth5.cpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="AdamsBashforth5.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$AdamsBashforth5_8hpp.html",tooltip=" "];
}

View File

@ -0,0 +1,257 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth5/AdamsBashforth5.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth5_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">AdamsBashforth5.cpp</div> </div>
</div><!--header-->
<div class="contents">
<a href="AdamsBashforth5_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> O C enter of</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> O O E ngineering and</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> O O M ultiscale modeling of</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> OOOOOOO F luid flow </span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">------------------------------------------------------------------------------</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> Copyright (C): www.cemf.ir</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">------------------------------------------------------------------------------ </span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">Licence:</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> This file is part of phasicFlow code. It is a free software for simulating </span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> granular and multiphase flows. You can redistribute it and/or modify it under</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> the terms of GNU General Public License v3 or any other later versions. </span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> </span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> phasicFlow is distributed to help others in their research in the field of </span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">-----------------------------------------------------------------------------*/</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="AdamsBashforth5_8hpp.html">AdamsBashforth5.hpp</a>&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<a class="code" href="classpFlow_1_1AdamsBashforth5.html#a129b1fb5fcc9dfcc9c803d8b13758cbc">pFlow::AdamsBashforth5::AdamsBashforth5</a></div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth5.html#a129b1fb5fcc9dfcc9c803d8b13758cbc"> 26</a></span>&#160;(</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; <a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="classpFlow_1_1repository.html">repository</a>&amp; owner,</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>&amp; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>&amp; method</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;:</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classpFlow_1_1integration.html">integration</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>, owner, <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, method),</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; history_(</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; owner.emplaceObject&lt;<a class="code" href="classpFlow_1_1pointField.html">pointField&lt;VectorSingle,AB5History&gt;</a>&gt;(</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="classpFlow_1_1objectFile.html">objectFile</a>(</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">groupNames</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,<span class="stringliteral">&quot;AB5History&quot;</span>),</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot;&quot;</span>,</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; objectFile::READ_IF_PRESENT,</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; objectFile::WRITE_ALWAYS),</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="structpFlow_1_1AB5History.html">AB5History</a>({<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>,<a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>, <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>})))</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth5.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth5::predict</a></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth5.html#afb1938bc6cfc199cbd70f224040d4afc"> 49</a></span>&#160;(</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dt),</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy)</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;)</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth5.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth5::correct</a></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth5.html#ac755e4bf02c3732d1eb89de9e903ebdb"> 60</a></span>&#160;(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y,</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;)</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().allActive())</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> intAll(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activeRange());</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> intRange(dt, y, dy, this-&gt;<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>().activePointsMaskD());</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth5.html#a8da2088458d635dfa1fbe1823a3bfd6d"> 79</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth5.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth5::setInitialVals</a>(</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>&amp; newIndices,</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>&amp; y)</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth5.html#a152b752a6b7b37e70fa5e7c99a484783"> 86</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="classpFlow_1_1AdamsBashforth5.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth5::intAll</a>(</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; y, </div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="classpFlow_1_1VectorSingle.html">realx3Vector_D</a>&amp; dy, </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; range activeRng)</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">auto</span> d_dy = dy.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">auto</span> d_y = y.<a class="code" href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">deviceViewAll</a>();</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> d_history = history_.deviceViewAll();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; Kokkos::parallel_for(</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="stringliteral">&quot;AdamsBashforth5::correct&quot;</span>,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="classpFlow_1_1AdamsBashforth5.html#ace46ff4fbe3c001c816dbc4f9f67606f">rpIntegration</a> (activeRng.first, activeRng.second),</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a>(<a class="code" href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">int32</a> i){ </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; d_y[i] += dt*( </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1901.0 / 720.0) * d_dy[i]</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(2774.0 / 720.0) * d_history[i].dy1_ </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(2616.0 / 720.0) * d_history[i].dy2_</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; - <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>(1274.0 / 720.0) * d_history[i].dy3_</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; + <span class="keyword">static_cast&lt;</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">&gt;</span>( 251.0 / 720.0) * d_history[i].dy4_</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; );</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; d_history[i] = {d_dy[i] ,d_history[i].dy1_, d_history[i].dy2_, d_history[i].dy3_};</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; });</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; Kokkos::fence();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="anamespacepFlow_html_a6192191c0e9c178a44ee1ac350fde476"><div class="ttname"><a href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">pFlow::real</a></div><div class="ttdeci">float real</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00045">builtinTypes.hpp:45</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_a86d500a34c624c2cae56bc25a31b12f3"><div class="ttname"><a href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a></div><div class="ttdeci">#define UNUSED(x)</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00035">pFlowMacros.hpp:35</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_a129b1fb5fcc9dfcc9c803d8b13758cbc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#a129b1fb5fcc9dfcc9c803d8b13758cbc">pFlow::AdamsBashforth5::AdamsBashforth5</a></div><div class="ttdeci">AdamsBashforth5(const word &amp;baseName, repository &amp;owner, const pointStructure &amp;pStruct, const word &amp;method)</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8cpp_source.html#l00026">AdamsBashforth5.cpp:26</a></div></div>
<div class="ttc" id="aclasspFlow_1_1integration_html"><div class="ttname"><a href="classpFlow_1_1integration.html">pFlow::integration</a></div><div class="ttdoc">Base class for integrating the first order ODE (IVP)</div><div class="ttdef"><b>Definition:</b> <a href="integration_8hpp_source.html#l00051">integration.hpp:51</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_a8da2088458d635dfa1fbe1823a3bfd6d"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#a8da2088458d635dfa1fbe1823a3bfd6d">pFlow::AdamsBashforth5::setInitialVals</a></div><div class="ttdeci">bool setInitialVals(const int32IndexContainer &amp;newIndices, const realx3Vector &amp;y) override</div><div class="ttdoc">Set the initial values for new indices.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8cpp_source.html#l00079">AdamsBashforth5.cpp:79</a></div></div>
<div class="ttc" id="aAdamsBashforth5_8hpp_html"><div class="ttname"><a href="AdamsBashforth5_8hpp.html">AdamsBashforth5.hpp</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a0ebe792a293e8c717bddf60070c0fe99"><div class="ttname"><a href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">pFlow::word</a></div><div class="ttdeci">std::string word</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00064">builtinTypes.hpp:64</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a477d522d35403bd985ae105bd759e9d1"><div class="ttname"><a href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">pFlow::zero3</a></div><div class="ttdeci">const realx3 zero3(0.0)</div><div class="ttdef"><b>Definition:</b> <a href="types_8hpp_source.html#l00137">types.hpp:137</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a16a2137651b2c6b8ea4a8daf1d89ff61"><div class="ttname"><a href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">pFlow::baseName</a></div><div class="ttdeci">word baseName(const word &amp;w, char sep='.')</div><div class="ttdoc">Find the base in a group separated by &quot;.&quot; and return it.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00185">bTypesFunctions.cpp:185</a></div></div>
<div class="ttc" id="astructpFlow_1_1AB5History_html"><div class="ttname"><a href="structpFlow_1_1AB5History.html">pFlow::AB5History</a></div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8hpp_source.html#l00031">AdamsBashforth5.hpp:31</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointField_html"><div class="ttname"><a href="classpFlow_1_1pointField.html">pFlow::pointField</a></div><div class="ttdef"><b>Definition:</b> <a href="pointField_8hpp_source.html#l00033">pointField.hpp:33</a></div></div>
<div class="ttc" id="aclasspFlow_1_1pointStructure_html"><div class="ttname"><a href="classpFlow_1_1pointStructure.html">pFlow::pointStructure</a></div><div class="ttdef"><b>Definition:</b> <a href="pointStructure_8hpp_source.html#l00034">pointStructure.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_a152b752a6b7b37e70fa5e7c99a484783"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#a152b752a6b7b37e70fa5e7c99a484783">pFlow::AdamsBashforth5::intAll</a></div><div class="ttdeci">bool intAll(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy, range activeRng)</div><div class="ttdoc">Integrate on all points in the active range.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8cpp_source.html#l00086">AdamsBashforth5.cpp:86</a></div></div>
<div class="ttc" id="anamespacepFlow_html_aae6ad039f09c0676db11bd114136a3fa"><div class="ttname"><a href="namespacepFlow.html#aae6ad039f09c0676db11bd114136a3fa">pFlow::int32</a></div><div class="ttdeci">int int32</div><div class="ttdef"><b>Definition:</b> <a href="builtinTypes_8hpp_source.html#l00050">builtinTypes.hpp:50</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_ac755e4bf02c3732d1eb89de9e903ebdb"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#ac755e4bf02c3732d1eb89de9e903ebdb">pFlow::AdamsBashforth5::correct</a></div><div class="ttdeci">bool correct(real dt, realx3Vector_D &amp;y, realx3Vector_D &amp;dy) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8cpp_source.html#l00060">AdamsBashforth5.cpp:60</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html">pFlow::VectorSingle</a></div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8hpp_source.html#l00044">VectorSingle.hpp:44</a></div></div>
<div class="ttc" id="aclasspFlow_1_1objectFile_html"><div class="ttname"><a href="classpFlow_1_1objectFile.html">pFlow::objectFile</a></div><div class="ttdef"><b>Definition:</b> <a href="objectFile_8hpp_source.html#l00030">objectFile.hpp:30</a></div></div>
<div class="ttc" id="asetPointStructure_8hpp_html_a385e32971df44b131e4498181a949a91"><div class="ttname"><a href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a></div><div class="ttdeci">auto &amp; pStruct</div><div class="ttdef"><b>Definition:</b> <a href="setPointStructure_8hpp_source.html#l00024">setPointStructure.hpp:24</a></div></div>
<div class="ttc" id="aclasspFlow_1_1VectorSingle_html_a51122b76468e0c5f19ea69c5c0ca6cf4"><div class="ttname"><a href="classpFlow_1_1VectorSingle.html#a51122b76468e0c5f19ea69c5c0ca6cf4">pFlow::VectorSingle::deviceViewAll</a></div><div class="ttdeci">INLINE_FUNCTION_H auto &amp; deviceViewAll()</div><div class="ttdoc">Device view range [0,capcity)</div><div class="ttdef"><b>Definition:</b> <a href="VectorSingle_8cpp_source.html#l00249">VectorSingle.cpp:249</a></div></div>
<div class="ttc" id="apFlowMacros_8hpp_html_aa7d4742cdf24a3792276e669531d145c"><div class="ttname"><a href="pFlowMacros_8hpp.html#aa7d4742cdf24a3792276e669531d145c">LAMBDA_HD</a></div><div class="ttdeci">#define LAMBDA_HD</div><div class="ttdef"><b>Definition:</b> <a href="pFlowMacros_8hpp_source.html#l00058">pFlowMacros.hpp:58</a></div></div>
<div class="ttc" id="anamespacepFlow_html_a12b4d93aa9730629403d73e84386bff5"><div class="ttname"><a href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">pFlow::groupNames</a></div><div class="ttdeci">word groupNames(const word &amp;bw, const word &amp;tw, char sep='.')</div><div class="ttdoc">Group words and output bw.tw.</div><div class="ttdef"><b>Definition:</b> <a href="bTypesFunctions_8cpp_source.html#l00179">bTypesFunctions.cpp:179</a></div></div>
<div class="ttc" id="aclasspFlow_1_1repository_html"><div class="ttname"><a href="classpFlow_1_1repository.html">pFlow::repository</a></div><div class="ttdef"><b>Definition:</b> <a href="repository_8hpp_source.html#l00034">repository.hpp:34</a></div></div>
<div class="ttc" id="aclasspFlow_1_1Vector_html"><div class="ttname"><a href="classpFlow_1_1Vector.html">pFlow::Vector&lt; realx3 &gt;</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_ace46ff4fbe3c001c816dbc4f9f67606f"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#ace46ff4fbe3c001c816dbc4f9f67606f">pFlow::AdamsBashforth5::rpIntegration</a></div><div class="ttdeci">Kokkos::RangePolicy&lt; DefaultExecutionSpace, Kokkos::Schedule&lt; Kokkos::Static &gt;, Kokkos::IndexType&lt; int32 &gt; &gt; rpIntegration</div><div class="ttdoc">Range policy for integration kernel.</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8hpp_source.html#l00093">AdamsBashforth5.hpp:93</a></div></div>
<div class="ttc" id="aclasspFlow_1_1AdamsBashforth5_html_afb1938bc6cfc199cbd70f224040d4afc"><div class="ttname"><a href="classpFlow_1_1AdamsBashforth5.html#afb1938bc6cfc199cbd70f224040d4afc">pFlow::AdamsBashforth5::predict</a></div><div class="ttdeci">bool predict(real UNUSED(dt), realx3Vector_D &amp;UNUSED(y), realx3Vector_D &amp;UNUSED(dy)) override</div><div class="ttdef"><b>Definition:</b> <a href="AdamsBashforth5_8cpp_source.html#l00049">AdamsBashforth5.cpp:49</a></div></div>
<div class="ttc" id="aclasspFlow_1_1indexContainer_html"><div class="ttname"><a href="classpFlow_1_1indexContainer.html">pFlow::indexContainer</a></div><div class="ttdoc">It holds two vectors of indecis on Host and Device.</div><div class="ttdef"><b>Definition:</b> <a href="indexContainer_8hpp_source.html#l00039">indexContainer.hpp:39</a></div></div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_d19bd4f5a5ffc8e61ede52143ccad050.html">AdamsBashforth5</a></li><li class="navelem"><a class="el" href="AdamsBashforth5_8cpp.html">AdamsBashforth5.cpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,160 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="description" content="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.">
<title>PhasicFlow: src/Integration/AdamsBashforth5/AdamsBashforth5.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" >
<tbody>
<tr>
<td id="projectlogo"><a href="https://github.com/PhasicFlow"><img alt="Logo" src="phasicFlow_logo.png"></a></td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</td>
</tr>
<tr>
<td id="projectbrief">
<a href="https://https://cemf.ir">www.cemf.ir</a>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('AdamsBashforth5_8hpp.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">AdamsBashforth5.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Include dependency graph for AdamsBashforth5.hpp:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth5_8hpp__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth5_2AdamsBashforth5_8hpp" alt=""/></div>
</div>
</div><div class="textblock"><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> This graph shows which files directly or indirectly include this file:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="AdamsBashforth5_8hpp__dep__incl.png" border="0" usemap="#src_2Integration_2AdamsBashforth5_2AdamsBashforth5_8hppdep" alt=""/></div>
</div>
</div>
<p><a href="AdamsBashforth5_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpFlow_1_1AB5History.html">AB5History</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1AdamsBashforth5.html">AdamsBashforth5</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fifth order Adams-Bashforth integration method for solving ODE. <a href="classpFlow_1_1AdamsBashforth5.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacepFlow"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a91f6f61249c02b68680178571f3ba1e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iIstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a91f6f61249c02b68680178571f3ba1e4">operator&gt;&gt;</a> (iIstream &amp;str, AB5History &amp;ab5)</td></tr>
<tr class="separator:a91f6f61249c02b68680178571f3ba1e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecbe4c42d601cec6361303d1c1db7ddc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="pFlowMacros_8hpp.html#afc491fbd69e70abdcb02a8cd3ce2939e">INLINE_FUNCTION</a> iOstream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#aecbe4c42d601cec6361303d1c1db7ddc">operator&lt;&lt;</a> (iOstream &amp;str, const AB5History &amp;ab5)</td></tr>
<tr class="separator:aecbe4c42d601cec6361303d1c1db7ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_5ff0557589c78f704a7131791f9a8bc6.html">Integration</a></li><li class="navelem"><a class="el" href="dir_d19bd4f5a5ffc8e61ede52143ccad050.html">AdamsBashforth5</a></li><li class="navelem"><a class="el" href="AdamsBashforth5_8hpp.html">AdamsBashforth5.hpp</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,7 @@
var AdamsBashforth5_8hpp =
[
[ "AB5History", "structpFlow_1_1AB5History.html", "structpFlow_1_1AB5History" ],
[ "AdamsBashforth5", "classpFlow_1_1AdamsBashforth5.html", "classpFlow_1_1AdamsBashforth5" ],
[ "operator>>", "AdamsBashforth5_8hpp.html#a91f6f61249c02b68680178571f3ba1e4", null ],
[ "operator<<", "AdamsBashforth5_8hpp.html#aecbe4c42d601cec6361303d1c1db7ddc", null ]
];

View File

@ -0,0 +1,9 @@
digraph "src/Integration/AdamsBashforth5/AdamsBashforth5.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth5\l/AdamsBashforth5.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="src/Integration/AdamsBashforth5\l/AdamsBashforth5.cpp",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$AdamsBashforth5_8cpp.html",tooltip=" "];
}

View File

@ -0,0 +1,12 @@
digraph "src/Integration/AdamsBashforth5/AdamsBashforth5.hpp"
{
// LATEX_PDF_SIZE
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="src/Integration/AdamsBashforth5\l/AdamsBashforth5.hpp",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled", fontcolor="black",tooltip=" "];
Node1 -> Node2 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node2 [label="integration.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$integration_8hpp.html",tooltip=" "];
Node2 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
Node41 [label="pointFields.hpp",height=0.2,width=0.4,color="red", fillcolor="white", style="filled",URL="$pointFields_8hpp.html",tooltip=" "];
Node1 -> Node41 [color="midnightblue",fontsize="10",style="solid",fontname="Helvetica"];
}

Some files were not shown because too many files have changed in this diff Show More