mirror of
https://github.com/PhasicFlow/phasicFlow.git
synced 2025-06-22 16:28:30 +00:00
Compare commits
281 Commits
documentat
...
local-MPI
Author | SHA1 | Date | |
---|---|---|---|
0053ef002a | |||
ad5233bb77 | |||
d7479cf1bd | |||
83a6e4baa1 | |||
bf0197f643 | |||
5a149f3d85 | |||
80df6bfc9b | |||
b2581cc2a9 | |||
1831c2c6c5 | |||
14731a6c31 | |||
ab856e1df2 | |||
b4bc724a68 | |||
ee33469295 | |||
3933d65303 | |||
cf4d22c963 | |||
86367c7e2c | |||
a7e51a91aa | |||
5e56bf1b8c | |||
343ac1fc04 | |||
6b04d17c7f | |||
97f46379c7 | |||
32fd6cb12e | |||
be16fb0684 | |||
4c96c6fa1e | |||
196b7a1833 | |||
316e71ff7a | |||
7a4a33ef37 | |||
edfbdb22e9 | |||
c6725625b3 | |||
253d6fbaf7 | |||
701baf09e6 | |||
20c94398a9 | |||
dd36e32da4 | |||
a048c2f5d7 | |||
8b324bc2b6 | |||
c7f790a1fa | |||
166d7e72c2 | |||
c126f9a8a3 | |||
7104a33a4b | |||
16b6084d98 | |||
2afea7b273 | |||
2c5b4f55d1 | |||
a7dc69a801 | |||
32287404fa | |||
8b3530c289 | |||
d8c3fc02d5 | |||
4dab700a47 | |||
a50ceeee2c | |||
468730289b | |||
27f0202002 | |||
c69bfc79e1 | |||
69909b3c01 | |||
8986c47b69 | |||
37282f16ac | |||
cd051a6497 | |||
8b5d14afe6 | |||
eb37affb94 | |||
c0d12f4243 | |||
a1b5a9bd5d | |||
dc0edbc845 | |||
b423b6ceb7 | |||
1f6a953154 | |||
bbd3afea0e | |||
53f0e959b0 | |||
c12022fb19 | |||
d876bb6246 | |||
cb40e01b7e | |||
5f6400c032 | |||
8863234c1c | |||
1cd64fb2ec | |||
3fc121ef2b | |||
953059cec5 | |||
2593e2acf1 | |||
7c3b90a22d | |||
72b9b74cc9 | |||
a545acb374 | |||
59fbee9711 | |||
6cc4b3954a | |||
d8c9135700 | |||
544624d579 | |||
cbac1e97b5 | |||
8c543e1649 | |||
be807e4a71 | |||
d5ea338ab3 | |||
a448ce5f8d | |||
e2582f5fd9 | |||
f2e8e69899 | |||
a9e5b9bb59 | |||
77eda47a87 | |||
acb8d0e4eb | |||
19fa3e2822 | |||
73f4b35fd4 | |||
5f8ea2d841 | |||
8da8afbe63 | |||
cde93e953e | |||
c80ee030db | |||
b679b9dcd3 | |||
1a2ad8ffa3 | |||
9de1fa2dc7 | |||
b33fb61672 | |||
245ff9608f | |||
58ef463021 | |||
1100556d72 | |||
14954b3ca6 | |||
3710b19614 | |||
40deb1f9c0 | |||
d69203168e | |||
61be8c60fb | |||
549cb2ffdc | |||
98a30bc98c | |||
7c9a724174 | |||
abd36d4ae7 | |||
35f10e5a94 | |||
093160ba32 | |||
077f25842a | |||
d136ac0262 | |||
c3acea1415 | |||
8e87333973 | |||
162cfd3b6a | |||
ab7f700ead | |||
671b929f52 | |||
c78ab398f6 | |||
d1189c0b2c | |||
ccb7a6dd41 | |||
9e3bb1cfa1 | |||
7bb0a0453a | |||
577a94d07b | |||
5fee39cdd8 | |||
8fe63cca53 | |||
7b534a9e91 | |||
97e6592524 | |||
b7d47a65ad | |||
3441b03167 | |||
340f3a551a | |||
be7b2eb632 | |||
71057e9575 | |||
0613b15c93 | |||
797334af87 | |||
5eef26a6ed | |||
892f5395bc | |||
b65be8881c | |||
23783b7db9 | |||
389e42ee1f | |||
7f7e06ae7d | |||
b007426d5d | |||
3ff4ad1469 | |||
5a5a3c6daf | |||
bff34bbb9e | |||
84197bf237 | |||
169dd73963 | |||
baa99c61c0 | |||
08d0d62d37 | |||
8dcd578a22 | |||
eb62adc87d | |||
5394dce7aa | |||
8038a76699 | |||
c408b60f87 | |||
ab21acdca5 | |||
07b54c4077 | |||
75f679a234 | |||
c32789f34d | |||
09c303a61e | |||
0820e003fc | |||
c4c6c2fc45 | |||
d5dd7af06e | |||
b03d4825ff | |||
67df8ad206 | |||
2df8133c2d | |||
dc0504d2fa | |||
27dfdfa599 | |||
8b9a9acd0c | |||
c87c9716ef | |||
0ed5b2337c | |||
282d9733fc | |||
cfd188587c | |||
e8e1081345 | |||
099e85cfb1 | |||
1cbeb1c963 | |||
a33ec7d8e0 | |||
05ecf37eee | |||
b44c4de3f6 | |||
05b256ba39 | |||
25b2e37d93 | |||
a2561f0f12 | |||
89896c0d69 | |||
fd45625ce6 | |||
3e0161a20f | |||
4552d90eac | |||
98c8116fd3 | |||
fa1211acf8 | |||
12059faefc | |||
3954fcf4ab | |||
ef1fa1ddaf | |||
354daab7c5 | |||
ed4fe6f2f5 | |||
d5b9ca4c43 | |||
9ccc487a51 | |||
ae251598a4 | |||
2a8146c43f | |||
fd6b3ebc60 | |||
8e13c377eb | |||
5e272cfa1b | |||
252725863f | |||
bd4e566dc2 | |||
0532c441a8 | |||
3c1d4d57ad | |||
ff2f1d41e8 | |||
774afd5f37 | |||
191801b344 | |||
545de300ae | |||
9b3c4f83b9 | |||
b315d12357 | |||
7e7184f1c5 | |||
29d922e3c5 | |||
3aa6be6676 | |||
9f489d07cc | |||
8466e02d81 | |||
3f1fa4ae90 | |||
f0f185983c | |||
cb6d567dab | |||
db9b1e62e4 | |||
3aff0f1fc6 | |||
b9ab015eb1 | |||
59fbaa91ab | |||
f84484881c | |||
02e0b72082 | |||
edb02ecfc7 | |||
1540321a31 | |||
63bd9c9993 | |||
f4f5f29e3c | |||
fac5576df1 | |||
f5ba30b901 | |||
0f9a19d6ee | |||
d909301f32 | |||
3b88b6156d | |||
64c041a753 | |||
0410eb6864 | |||
2d7f7ec17f | |||
af2572331d | |||
f98a696fc8 | |||
2168456584 | |||
6e6cabbefa | |||
42b024e1ed | |||
debb8fd037 | |||
0fc9eea561 | |||
1ccc321c1d | |||
f4b15bc50a | |||
164eedb27c | |||
2ec3dfdc7e | |||
cb1faf04f8 | |||
a32786eb8a | |||
967bb753aa | |||
c202f9eaae | |||
8823dd3c94 | |||
3d0f31a2b2 | |||
ba8f307c56 | |||
f317cef0ef | |||
93617a6ee5 | |||
d7e6292e41 | |||
5a25556b8a | |||
a0c51e94e1 | |||
74c281617b | |||
d2003b35e6 | |||
e05bd2c350 | |||
665879f8ca | |||
e756d471ba | |||
30d5349fcf | |||
68b7d141fa | |||
525e972c20 | |||
6f48eca95b | |||
b5a81bc0fc | |||
d0798dfc0b | |||
729c088c9f | |||
6241fa6dd3 | |||
5f90605a41 | |||
94fcc3d01b | |||
1321e6340e | |||
5864cea7e8 | |||
656e03de36 | |||
41187b0e03 | |||
6969b71cc5 |
153
.github/scripts/sync-wiki.py
vendored
Executable file
153
.github/scripts/sync-wiki.py
vendored
Executable file
@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
import yaml
|
||||
import sys
|
||||
|
||||
# Constants
|
||||
REPO_URL = "https://github.com/PhasicFlow/phasicFlow"
|
||||
REPO_PATH = os.path.join(os.environ.get("GITHUB_WORKSPACE", ""), "repo")
|
||||
WIKI_PATH = os.path.join(os.environ.get("GITHUB_WORKSPACE", ""), "wiki")
|
||||
MAPPING_FILE = os.path.join(REPO_PATH, "doc/mdDocs/markdownList.yml")
|
||||
|
||||
def load_mapping():
|
||||
"""Load the markdown to wiki page mapping file."""
|
||||
try:
|
||||
with open(MAPPING_FILE, 'r') as f:
|
||||
data = yaml.safe_load(f)
|
||||
return data.get('mappings', [])
|
||||
except Exception as e:
|
||||
print(f"Error loading mapping file: {e}")
|
||||
return []
|
||||
|
||||
def convert_relative_links(content, source_path):
|
||||
"""Convert relative links in markdown content to absolute URLs."""
|
||||
# Find markdown links with regex pattern [text](url)
|
||||
md_pattern = r'\[([^\]]+)\]\(([^)]+)\)'
|
||||
|
||||
# Find HTML img tags
|
||||
img_pattern = r'<img\s+src=[\'"]([^\'"]+)[\'"]'
|
||||
|
||||
def replace_link(match):
|
||||
link_text = match.group(1)
|
||||
link_url = match.group(2)
|
||||
|
||||
# Skip if already absolute URL or anchor
|
||||
if link_url.startswith(('http://', 'https://', '#', 'mailto:')):
|
||||
return match.group(0)
|
||||
|
||||
# Get the directory of the source file
|
||||
source_dir = os.path.dirname(source_path)
|
||||
|
||||
# Create absolute path from repository root
|
||||
if link_url.startswith('/'):
|
||||
# If link starts with /, it's already relative to repo root
|
||||
abs_path = link_url
|
||||
else:
|
||||
# Otherwise, it's relative to the file location
|
||||
abs_path = os.path.normpath(os.path.join(source_dir, link_url))
|
||||
if not abs_path.startswith('/'):
|
||||
abs_path = '/' + abs_path
|
||||
|
||||
# Convert to GitHub URL
|
||||
github_url = f"{REPO_URL}/blob/main{abs_path}"
|
||||
return f"[{link_text}]({github_url})"
|
||||
|
||||
def replace_img_src(match):
|
||||
img_src = match.group(1)
|
||||
|
||||
# Skip if already absolute URL
|
||||
if img_src.startswith(('http://', 'https://')):
|
||||
return match.group(0)
|
||||
|
||||
# Get the directory of the source file
|
||||
source_dir = os.path.dirname(source_path)
|
||||
|
||||
# Create absolute path from repository root
|
||||
if img_src.startswith('/'):
|
||||
# If link starts with /, it's already relative to repo root
|
||||
abs_path = img_src
|
||||
else:
|
||||
# Otherwise, it's relative to the file location
|
||||
abs_path = os.path.normpath(os.path.join(source_dir, img_src))
|
||||
if not abs_path.startswith('/'):
|
||||
abs_path = '/' + abs_path
|
||||
|
||||
# Convert to GitHub URL (use raw URL for images)
|
||||
github_url = f"{REPO_URL}/raw/main{abs_path}"
|
||||
return f'<img src="{github_url}"'
|
||||
|
||||
# Replace all markdown links
|
||||
content = re.sub(md_pattern, replace_link, content)
|
||||
|
||||
# Replace all img src tags
|
||||
content = re.sub(img_pattern, replace_img_src, content)
|
||||
|
||||
return content
|
||||
|
||||
def process_file(source_file, target_wiki_page):
|
||||
"""Process a markdown file and copy its contents to a wiki page."""
|
||||
source_path = os.path.join(REPO_PATH, source_file)
|
||||
target_path = os.path.join(WIKI_PATH, f"{target_wiki_page}.md")
|
||||
|
||||
print(f"Processing {source_path} -> {target_path}")
|
||||
|
||||
try:
|
||||
# Check if source exists
|
||||
if not os.path.exists(source_path):
|
||||
print(f"Source file not found: {source_path}")
|
||||
return False
|
||||
|
||||
# Read source content
|
||||
with open(source_path, 'r') as f:
|
||||
content = f.read()
|
||||
|
||||
# Convert relative links
|
||||
content = convert_relative_links(content, source_file)
|
||||
|
||||
# Write to wiki page
|
||||
with open(target_path, 'w') as f:
|
||||
f.write(content)
|
||||
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error processing {source_file}: {e}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
# Check if wiki directory exists
|
||||
if not os.path.exists(WIKI_PATH):
|
||||
print(f"Wiki path not found: {WIKI_PATH}")
|
||||
sys.exit(1)
|
||||
|
||||
# Load mapping
|
||||
mappings = load_mapping()
|
||||
if not mappings:
|
||||
print("No mappings found in the mapping file")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"Found {len(mappings)} mappings to process")
|
||||
|
||||
# Process each mapping
|
||||
success_count = 0
|
||||
for mapping in mappings:
|
||||
source = mapping.get('source')
|
||||
target = mapping.get('target')
|
||||
|
||||
if not source or not target:
|
||||
print(f"Invalid mapping: {mapping}")
|
||||
continue
|
||||
|
||||
if process_file(source, target):
|
||||
success_count += 1
|
||||
|
||||
print(f"Successfully processed {success_count} of {len(mappings)} files")
|
||||
|
||||
# Exit with error if any file failed
|
||||
if success_count < len(mappings):
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
60
.github/workflows/sync-wiki.yml
vendored
Normal file
60
.github/workflows/sync-wiki.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
name: Sync-Wiki
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "**/*.md"
|
||||
- ".github/workflows/sync-wiki.yml"
|
||||
- "doc/mdDocs/markdownList.yml"
|
||||
- ".github/scripts/sync-wiki.py"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
sync-wiki:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: repo
|
||||
- name: Checkout Wiki
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository }}.wiki
|
||||
path: wiki
|
||||
continue-on-error: true
|
||||
- name: Create Wiki Directory if Not Exists
|
||||
run: |
|
||||
if [ ! -d "wiki" ]; then
|
||||
mkdir -p wiki
|
||||
cd wiki
|
||||
git init
|
||||
git config user.name "${{ github.actor }}"
|
||||
git config user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
git remote add origin "https://github.com/${{ github.repository }}.wiki.git"
|
||||
fi
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
- name: Install dependencies
|
||||
run: pip install pyyaml
|
||||
- name: Sync markdown files to Wiki
|
||||
run: |
|
||||
python $GITHUB_WORKSPACE/repo/.github/scripts/sync-wiki.py
|
||||
env:
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
- name: Push changes to wiki
|
||||
run: |
|
||||
cd wiki
|
||||
git config user.name "${{ github.actor }}"
|
||||
git config user.email "${{ github.actor }}@users.noreply.github.com"
|
||||
git add .
|
||||
if git status --porcelain | grep .; then
|
||||
git commit -m "Auto sync wiki from main repository"
|
||||
git push --set-upstream https://${{ github.actor }}:${{ github.token }}@github.com/${{ github.repository }}.wiki.git master -f
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
9
.gitignore
vendored
9
.gitignore
vendored
@ -37,13 +37,18 @@
|
||||
*.out
|
||||
*.app
|
||||
|
||||
# directories
|
||||
# Exclude specific directories wherever they appear
|
||||
build/**
|
||||
include/**
|
||||
bin/**
|
||||
lib/**
|
||||
**/build/
|
||||
**/include/
|
||||
**/bin/
|
||||
**/lib/
|
||||
test*/**
|
||||
**/**notnow
|
||||
doc/code-documentation/
|
||||
doc/DTAGS
|
||||
# all possible time folders
|
||||
**/[0-9]
|
||||
@ -60,3 +65,5 @@ doc/DTAGS
|
||||
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
||||
**/[0-9]*.[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
|
||||
**/VTK
|
||||
|
||||
|
||||
|
@ -3,30 +3,17 @@ cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
# set the project name and version
|
||||
project(phasicFlow VERSION 1.0 )
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD 20 CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
set(CMAKE_INSTALL_PREFIX ${phasicFlow_SOURCE_DIR} CACHE PATH "Install path of phasicFlow" FORCE)
|
||||
set(CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE)
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "build type")
|
||||
set(BUILD_SHARED_LIBS ON CACHE BOOL "Build using shared libraries" FORCE)
|
||||
mark_as_advanced(FORCE var BUILD_SHARED_LIBS)
|
||||
|
||||
message(STATUS ${CMAKE_INSTALL_PREFIX})
|
||||
message(STATUS "Install prefix is:" ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
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_Build_Serial "Build phasicFlow and backends for serial execution" OFF)
|
||||
option(pFlow_Build_OpenMP "Build phasicFlow and backends for OpenMP execution" OFF)
|
||||
@ -34,6 +21,8 @@ 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_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)
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
|
||||
@ -46,7 +35,8 @@ elseif(pFlow_Build_OpenMP )
|
||||
set(Kokkos_ENABLE_OPENMP ON CACHE BOOL "OpenMP 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_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)
|
||||
elseif(pFlow_Build_Cuda)
|
||||
set(Kokkos_ENABLE_SERIAL ON CACHE BOOL "Serial execution" FORCE)
|
||||
@ -65,6 +55,7 @@ include(cmake/makeExecutableGlobals.cmake)
|
||||
|
||||
configure_file(phasicFlowConfig.H.in phasicFlowConfig.H)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
#add a global include directory
|
||||
include_directories(src/setHelpers src/demComponent "${PROJECT_BINARY_DIR}")
|
||||
|
||||
|
@ -96,7 +96,7 @@ public:
|
||||
return Control_();
|
||||
}
|
||||
|
||||
auto inline constexpr usingDoulle()const
|
||||
auto inline constexpr usingDouble()const
|
||||
{
|
||||
return pFlow::usingDouble__;
|
||||
}
|
||||
|
@ -78,9 +78,14 @@ pFlow::grainDEMSystem::grainDEMSystem(
|
||||
REPORT(0)<< "\nCreating surface geometry for grainDEMSystem . . . "<<END_REPORT;
|
||||
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;
|
||||
particles_ = makeUnique<grainFluidParticles>(Control(), Property());
|
||||
particles_ = makeUnique<grainFluidParticles>(Control(), grains_());
|
||||
|
||||
|
||||
insertion_ = makeUnique<grainInsertion>(
|
||||
|
@ -46,6 +46,8 @@ protected:
|
||||
|
||||
uniquePtr<geometry> geometry_ = nullptr;
|
||||
|
||||
uniquePtr<grainShape> grains_ = nullptr;
|
||||
|
||||
uniquePtr<grainFluidParticles> particles_ = nullptr;
|
||||
|
||||
uniquePtr<grainInsertion> insertion_ = nullptr;
|
||||
|
@ -35,8 +35,8 @@ void pFlow::grainFluidParticles::checkHostMemory()
|
||||
|
||||
pFlow::grainFluidParticles::grainFluidParticles(
|
||||
systemControl &control,
|
||||
const property &prop)
|
||||
: grainParticles(control, prop),
|
||||
const grainShape& grains)
|
||||
: grainParticles(control, grains),
|
||||
fluidForce_(
|
||||
objectFile(
|
||||
"fluidForce",
|
||||
@ -67,7 +67,7 @@ bool pFlow::grainFluidParticles::beforeIteration()
|
||||
|
||||
bool pFlow::grainFluidParticles::iterate()
|
||||
{
|
||||
|
||||
const auto ti = this->TimeInfo();
|
||||
accelerationTimer().start();
|
||||
pFlow::grainFluidParticlesKernels::acceleration(
|
||||
control().g(),
|
||||
@ -78,16 +78,16 @@ bool pFlow::grainFluidParticles::iterate()
|
||||
contactTorque().deviceViewAll(),
|
||||
fluidTorque_.deviceViewAll(),
|
||||
pStruct().activePointsMaskDevice(),
|
||||
accelertion().deviceViewAll(),
|
||||
acceleration().deviceViewAll(),
|
||||
rAcceleration().deviceViewAll()
|
||||
);
|
||||
accelerationTimer().end();
|
||||
|
||||
intCorrectTimer().start();
|
||||
|
||||
dynPointStruct().correct(this->dt(), accelertion());
|
||||
dynPointStruct().correct(ti.dt());
|
||||
|
||||
rVelIntegration().correct(this->dt(), rVelocity(), rAcceleration());
|
||||
rVelIntegration().correct(ti.dt(), rVelocity(), rAcceleration());
|
||||
|
||||
intCorrectTimer().end();
|
||||
|
||||
|
@ -59,7 +59,7 @@ protected:
|
||||
public:
|
||||
|
||||
/// construct from systemControl and property
|
||||
grainFluidParticles(systemControl &control, const property& prop);
|
||||
grainFluidParticles(systemControl &control, const grainShape& grains);
|
||||
|
||||
~grainFluidParticles() override = default;
|
||||
|
||||
|
@ -75,12 +75,18 @@ pFlow::sphereDEMSystem::sphereDEMSystem(
|
||||
propertyFile__,
|
||||
Control().caseSetup().path());
|
||||
|
||||
|
||||
REPORT(0)<< "\nCreating surface geometry for sphereDEMSystem . . . "<<END_REPORT;
|
||||
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;
|
||||
particles_ = makeUnique<sphereFluidParticles>(Control(), Property());
|
||||
particles_ = makeUnique<sphereFluidParticles>(Control(), spheres_());
|
||||
|
||||
|
||||
insertion_ = makeUnique<sphereInsertion>(
|
||||
|
@ -46,6 +46,8 @@ protected:
|
||||
|
||||
uniquePtr<geometry> geometry_ = nullptr;
|
||||
|
||||
uniquePtr<sphereShape> spheres_ = nullptr;
|
||||
|
||||
uniquePtr<sphereFluidParticles> particles_ = nullptr;
|
||||
|
||||
uniquePtr<sphereInsertion> insertion_ = nullptr;
|
||||
|
@ -32,8 +32,8 @@ void pFlow::sphereFluidParticles::checkHostMemory()
|
||||
|
||||
pFlow::sphereFluidParticles::sphereFluidParticles(
|
||||
systemControl &control,
|
||||
const property &prop)
|
||||
: sphereParticles(control, prop),
|
||||
const sphereShape& shpShape)
|
||||
: sphereParticles(control, shpShape),
|
||||
fluidForce_(
|
||||
objectFile(
|
||||
"fluidForce",
|
||||
@ -65,7 +65,7 @@ bool pFlow::sphereFluidParticles::beforeIteration()
|
||||
|
||||
bool pFlow::sphereFluidParticles::iterate()
|
||||
{
|
||||
|
||||
const auto ti = this->TimeInfo();
|
||||
accelerationTimer().start();
|
||||
pFlow::sphereFluidParticlesKernels::acceleration(
|
||||
control().g(),
|
||||
@ -76,16 +76,16 @@ bool pFlow::sphereFluidParticles::iterate()
|
||||
contactTorque().deviceViewAll(),
|
||||
fluidTorque_.deviceViewAll(),
|
||||
pStruct().activePointsMaskDevice(),
|
||||
accelertion().deviceViewAll(),
|
||||
acceleration().deviceViewAll(),
|
||||
rAcceleration().deviceViewAll()
|
||||
);
|
||||
accelerationTimer().end();
|
||||
|
||||
intCorrectTimer().start();
|
||||
|
||||
dynPointStruct().correct(this->dt(), accelertion());
|
||||
dynPointStruct().correct(ti.dt());
|
||||
|
||||
rVelIntegration().correct(this->dt(), rVelocity(), rAcceleration());
|
||||
rVelIntegration().correct(ti.dt(), rVelocity(), rAcceleration());
|
||||
|
||||
intCorrectTimer().end();
|
||||
|
||||
|
@ -66,7 +66,7 @@ protected:
|
||||
public:
|
||||
|
||||
/// construct from systemControl and property
|
||||
sphereFluidParticles(systemControl &control, const property& prop);
|
||||
sphereFluidParticles(systemControl &control, const sphereShape& shpShape);
|
||||
|
||||
/// before iteration step
|
||||
bool beforeIteration() override;
|
||||
|
96
README.md
96
README.md
@ -1,48 +1,76 @@
|
||||
<div align ="center">
|
||||
<img src="doc/phasicFlow_logo_github.png" style="width: 400px;">
|
||||
<div align="center">
|
||||
<img src="doc/phasicFlow_logo_github.png" style="width: 400px;" alt="PhasicFlow Logo">
|
||||
</div>
|
||||
|
||||
## **PhasicFlow: High-Performance Discrete Element Method Simulations**
|
||||
|
||||
**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.
|
||||
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).
|
||||
|
||||
**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).
|
||||
**Scalable Parallelism: MPI Integration**
|
||||
|
||||
## 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/)
|
||||
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:
|
||||
|
||||
## How to use PhasicFlow?
|
||||
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).
|
||||
1. **Serial Execution:** Single-core CPU.
|
||||
2. **Shared-Memory Parallelism:** Multi-core CPU (OpenMP).
|
||||
3. **GPU Acceleration:** NVIDIA GPU (CUDA).
|
||||
4. **Distributed-Memory Parallelism:** MPI.
|
||||
5. **Hybrid Parallelism:** MPI + OpenMP.
|
||||
6. **Multi-GPU Parallelism:** MPI + CUDA.
|
||||
|
||||
## [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)
|
||||
## **Build and Installation**
|
||||
|
||||
PhasicFlow can be compiled for both CPU and GPU execution.
|
||||
|
||||
## Supporting packages
|
||||
* [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.
|
||||
* **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).
|
||||
* **Latest Release (v-0.1):** Detailed build instructions are available [here](https://github.com/PhasicFlow/phasicFlow/wiki/How-to-Build-PhasicFlow).
|
||||
|
||||
## **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):
|
||||
|
||||
```
|
||||
@article{NOROUZI2023108821,
|
||||
title = {PhasicFlow: A parallel, multi-architecture open-source code for DEM simulations},
|
||||
journal = {Computer Physics Communications},
|
||||
volume = {291},
|
||||
pages = {108821},
|
||||
year = {2023},
|
||||
issn = {0010-4655},
|
||||
doi = {https://doi.org/10.1016/j.cpc.2023.108821},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0010465523001662},
|
||||
author = {H.R. Norouzi},
|
||||
keywords = {Discrete element method, Parallel computing, CUDA, GPU, OpenMP, Granular flow}
|
||||
@article
|
||||
{
|
||||
NOROUZI2023108821,
|
||||
title = {PhasicFlow: A parallel, multi-architecture open-source code for DEM simulations},
|
||||
journal = {Computer Physics Communications},
|
||||
volume = {291},
|
||||
pages = {108821},
|
||||
year = {2023},
|
||||
issn = {0010-4655},
|
||||
doi = {https://doi.org/10.1016/j.cpc.2023.108821},
|
||||
url = {https://www.sciencedirect.com/science/article/pii/S0010465523001662},
|
||||
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))
|
||||
|
1
benchmarks/helicalMixer/readme.md
Normal file
1
benchmarks/helicalMixer/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# Helical Mixer Benchmark (phasicFlow v-1.0)
|
7
benchmarks/readme.md
Normal file
7
benchmarks/readme.md
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
# Benchmarks
|
||||
|
||||
Benchmakrs has been done on two different simulations: a simulation with simple geometry (rotating drum) and a simulation with complex geometry (helical mixer).
|
||||
|
||||
- [rotating drum](./rotatingDrum/readme.md)
|
||||
- [helical mixer](./helicalMixer/readme.md)
|
BIN
benchmarks/rotatingDrum/images/commericalDEMsnapshot.png
Normal file
BIN
benchmarks/rotatingDrum/images/commericalDEMsnapshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 124 KiB |
BIN
benchmarks/rotatingDrum/images/performance1.png
Normal file
BIN
benchmarks/rotatingDrum/images/performance1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 55 KiB |
BIN
benchmarks/rotatingDrum/images/phasicFlow_snapshot.png
Normal file
BIN
benchmarks/rotatingDrum/images/phasicFlow_snapshot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 KiB |
96
benchmarks/rotatingDrum/readme.md
Normal file
96
benchmarks/rotatingDrum/readme.md
Normal file
@ -0,0 +1,96 @@
|
||||
# Rotating Drum Benchmark (phasicFlow v-1.0)
|
||||
|
||||
## Overview
|
||||
|
||||
This benchmark compares the performance of phasicFlow with a well-stablished commercial DEM software for simulating a rotating drum with varying particle counts (250k to 8M particles). The benchmark measures both computational efficiency and memory usage across different hardware configurations.
|
||||
|
||||
## Simulation Setup
|
||||
|
||||
<div align="center">
|
||||
<img src="./images/commericalDEMsnapshot.png"/>
|
||||
<div align="center">
|
||||
<p>Figure 1. Commercial DEM simulation snapshot</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<img src="./images/phasicFlow_snapshot.png"/>
|
||||
<div align="center">
|
||||
<p>Figure 2. phasicFlow simulation snapshot and visualized using Paraview</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
### Hardware Specifications
|
||||
|
||||
<div align="center">
|
||||
Table 1. Hardware specifications used for benchmarking.
|
||||
</div>
|
||||
|
||||
| System | CPU | GPU | Operating System |
|
||||
| :---------: | :----------------------: | :--------------------------: | :--------------: |
|
||||
| Laptop | Intel i9-13900HX 2.2 GHz | NVIDIA GeForce RTX 4050Ti 6G | Windows 11 24H2 |
|
||||
| Workstation | Intel Xeon 4210 2.2 GHz | NVIDIA RTX A4000 16G | Ubuntu 22.04 |
|
||||
|
||||
### Simulation Parameters
|
||||
|
||||
<div align="center">
|
||||
Table 2. Parameters for rotating drum simulations.
|
||||
</div>
|
||||
|
||||
| Case | Particle Diameter | Particle Count | Drum Length | Drum Radius |
|
||||
| :-------: | :---------------: | :--------------: | :------------------: | :------------------: |
|
||||
| 250k | 6 mm | 250,000 | 0.8 m | 0.2 m |
|
||||
| 500k | 5 mm | 500,000 | 0.8 m | 0.2 m |
|
||||
| 1M | 4 mm | 1,000,000 | 0.8 m | 0.2 m |
|
||||
| 2M | 3 mm | 2,000,000 | 1.2 m | 0.2 m |
|
||||
| 4M | 3 mm | 4,000,000 | 1.6 m | 0.2 m |
|
||||
| 8M | 2 mm | 8,000,000 | 1.6 m | 0.2 m |
|
||||
|
||||
The time step for all simulations was set to 1.0e-5 seconds and the simulation ran for 4 seconds.
|
||||
|
||||
## Performance Comparison
|
||||
|
||||
### Execution Time
|
||||
|
||||
<div align="center">
|
||||
Table 3. Total calculation time (minutes) for different configurations.
|
||||
</div>
|
||||
|
||||
| Software | 250k | 500k | 1M | 2M | 4M | 8M |
|
||||
| :---------------: | :----: | :-----: | :-----: | :-----: | :-----: | :------: |
|
||||
| phasicFlow-4050Ti | 54 min | 111 min | 216 min | 432 min | - | - |
|
||||
| Commercial DEM-4050Ti | 68 min | 136 min | 275 min | 570 min | - | - |
|
||||
| phasicFlow-A4000 | 38 min | 73 min | 146 min | 293 min | 589 min | 1188 min |
|
||||
|
||||
The execution time scales linearly with particle count. phasicFlow demonstrates approximately:
|
||||
|
||||
- 20% faster calculation than the well-established commercial DEM software on the same hardware
|
||||
- 30% performance improvement when using the NVIDIA RTX A4000 compared to the RTX 4050Ti
|
||||
|
||||
<div align="center">
|
||||
<img src="./images/performance1.png"/>
|
||||
<p>Figure 3. Calculation time comparison between phasicFlow and the well-established commercial DEM software.</p>
|
||||
</div>
|
||||
|
||||
### Memory Usage
|
||||
|
||||
<div align="center">
|
||||
Table 4. Memory consumption for different configurations.
|
||||
</div>
|
||||
|
||||
| Software | 250k | 500k | 1M | 2M | 4M | 8M |
|
||||
| :---------------: | :-----: | :-----: | :-----: | :-----: | :-----: | :-----: |
|
||||
| phasicFlow-4050Ti | 252 MB | 412 MB | 710 MB | 1292 MB | - | - |
|
||||
| Commercial DEM-4050Ti | 485 MB | 897 MB | 1525 MB | 2724 MB | - | - |
|
||||
| phasicFlow-A4000 | 344 MB | 480 MB | 802 MB | 1386 MB | 2590 MB | 4966 MB |
|
||||
|
||||
Memory efficiency comparison:
|
||||
|
||||
- phasicFlow uses approximately 0.7 GB of memory per million particles
|
||||
- Commercial DEM software uses approximately 1.2 GB of memory per million particles
|
||||
- phasicFlow shows ~42% lower memory consumption compared to the commercial alternative
|
||||
- The memory usage scales linearly with particle count in both software packages. But due to memory limitations on GPUs, it is possible to run larger simulation on GPUs with phasicFlow.
|
||||
|
||||
## Run Your Own Benchmarks
|
||||
|
||||
The simulation case setup files are available in this folder for users interested in performing similar benchmarks on their own hardware. These files can be used to reproduce the tests and compare performance across different systems.
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
0
tutorials/sphereGranFlow/toteblender/cleanThisCase → benchmarks/rotatingDrum/rotatingDrum_250kParticles/cleanThisCase
Normal file → Executable file
0
tutorials/sphereGranFlow/toteblender/cleanThisCase → benchmarks/rotatingDrum/rotatingDrum_250kParticles/cleanThisCase
Normal file → Executable file
0
tutorials/sphereGranFlow/toteblender/runThisCase → benchmarks/rotatingDrum/rotatingDrum_250kParticles/runThisCase
Normal file → Executable file
0
tutorials/sphereGranFlow/toteblender/runThisCase → benchmarks/rotatingDrum/rotatingDrum_250kParticles/runThisCase
Normal file → Executable file
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
7
benchmarks/rotatingDrum/rotatingDrum_2mParticles/cleanThisCase
Executable file
7
benchmarks/rotatingDrum/rotatingDrum_2mParticles/cleanThisCase
Executable file
@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
|
||||
#------------------------------------------------------------------------------
|
21
benchmarks/rotatingDrum/rotatingDrum_2mParticles/runThisCase
Executable file
21
benchmarks/rotatingDrum/rotatingDrum_2mParticles/runThisCase
Executable file
@ -0,0 +1,21 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
7
benchmarks/rotatingDrum/rotatingDrum_4mParticles/cleanThisCase
Executable file
7
benchmarks/rotatingDrum/rotatingDrum_4mParticles/cleanThisCase
Executable file
@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
|
||||
#------------------------------------------------------------------------------
|
21
benchmarks/rotatingDrum/rotatingDrum_4mParticles/runThisCase
Executable file
21
benchmarks/rotatingDrum/rotatingDrum_4mParticles/runThisCase
Executable file
@ -0,0 +1,21 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
7
benchmarks/rotatingDrum/rotatingDrum_500kParticles/cleanThisCase
Executable file
7
benchmarks/rotatingDrum/rotatingDrum_500kParticles/cleanThisCase
Executable file
@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
|
||||
#------------------------------------------------------------------------------
|
21
benchmarks/rotatingDrum/rotatingDrum_500kParticles/runThisCase
Executable file
21
benchmarks/rotatingDrum/rotatingDrum_500kParticles/runThisCase
Executable file
@ -0,0 +1,21 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -0,0 +1,60 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
/* -------------------------------*- 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
|
7
benchmarks/rotatingDrum/rotatingDrum_8mParticles/cleanThisCase
Executable file
7
benchmarks/rotatingDrum/rotatingDrum_8mParticles/cleanThisCase
Executable file
@ -0,0 +1,7 @@
|
||||
#!/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
|
||||
|
||||
#------------------------------------------------------------------------------
|
21
benchmarks/rotatingDrum/rotatingDrum_8mParticles/runThisCase
Executable file
21
benchmarks/rotatingDrum/rotatingDrum_8mParticles/runThisCase
Executable file
@ -0,0 +1,21 @@
|
||||
#!/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
|
||||
|
||||
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------
|
@ -0,0 +1,50 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
/* -------------------------------*- 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 60; // 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
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* -------------------------------*- 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
|
||||
{
|
||||
distance 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
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
/* -------------------------------*- 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;
|
@ -1,59 +0,0 @@
|
||||
/* -------------------------------*- 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)
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
/* -------------------------------*- C++ -*--------------------------------- *\
|
||||
| phasicFlow File |
|
||||
| copyright: www.cemf.ir |
|
||||
\* ------------------------------------------------------------------------- */
|
||||
|
||||
objectName particleInsertion;
|
||||
objectType dicrionary;
|
||||
|
||||
|
||||
active no; // is insertion active?
|
||||
|
||||
collisionCheck No; // not implemented for yes
|
||||
|
||||
|
@ -1,11 +0,0 @@
|
||||
/* -------------------------------*- 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
|
@ -1,63 +0,0 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
/* -------------------------------*- 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
|
||||
}
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
/* -------------------------------*- 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;
|
@ -1,17 +1,96 @@
|
||||
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(){
|
||||
if [ "$3" == "--time" ]; then
|
||||
COMPREPLY=( $(ls) )
|
||||
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
|
||||
# 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
|
||||
COMPREPLY=( $(compgen -W "$PF_cFlags --binary --no-geometry --no-particles --out-folder --time --separate-surfaces --fields" -- "$2") )
|
||||
COMPREPLY=( $(compgen -W "$PF_cFlags --binary --no-geometry --no-particles --out-folder --time --separate-surfaces --fields" -- "$cur") )
|
||||
fi
|
||||
}
|
||||
complete -F _pFlowToVTK pFlowToVTK
|
||||
|
||||
_postprocessPhasicFlow(){
|
||||
if [ "$3" == "--time" ]; then
|
||||
COMPREPLY=( $(ls) )
|
||||
__getAllTime
|
||||
else
|
||||
COMPREPLY=( $(compgen -W "$PF_cFlags --out-folder --time --zeroFolder" -- "$2") )
|
||||
fi
|
||||
|
@ -19,7 +19,7 @@ export pFlow_SRC_DIR="$pFlow_PROJECT_DIR/src"
|
||||
|
||||
export Kokkos_DIR="$kokkosDir"
|
||||
|
||||
export Zoltan_DIR="$projectDir/Zoltan"
|
||||
#export Zoltan_DIR="$projectDir/Zoltan"
|
||||
|
||||
# Cleanup variables (done as final statement for a clean exit code)
|
||||
unset projectDir
|
||||
|
54
cmake/preReq.cmake
Normal file
54
cmake/preReq.cmake
Normal file
@ -0,0 +1,54 @@
|
||||
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()
|
||||
|
44
cmake/zoltanInstallCheck.cmake
Normal file
44
cmake/zoltanInstallCheck.cmake
Normal file
@ -0,0 +1,44 @@
|
||||
# Macro to check for Zoltan installation and build it if needed
|
||||
# Usage: zoltan_find_or_build(ZOLTAN_DIR)
|
||||
# Returns: ZOLTAN_INCLUDE_DIR, ZOLTAN_LIBRARY
|
||||
|
||||
macro(zoltan_find_or_build ZOLTAN_DIR)
|
||||
# Set the Zoltan directory
|
||||
set(ZOLTAN_PREFIX "${ZOLTAN_DIR}" CACHE STRING "Zoltan install directory")
|
||||
message(STATUS "Zoltan install directory is ${ZOLTAN_PREFIX}")
|
||||
|
||||
# Check if the Zoltan library is already built
|
||||
find_path(ZOLTAN_INCLUDE_DIR zoltan.h PATHS "${ZOLTAN_PREFIX}/include")
|
||||
message(STATUS "Zoltan include path: ${ZOLTAN_INCLUDE_DIR}")
|
||||
|
||||
find_library(ZOLTAN_LIBRARY zoltan PATHS "${ZOLTAN_PREFIX}/lib")
|
||||
message(STATUS "Zoltan lib path: ${ZOLTAN_LIBRARY}")
|
||||
|
||||
# Check if Zoltan library exists, if not compile it using buildlib script
|
||||
if(NOT ZOLTAN_LIBRARY)
|
||||
message(STATUS "Zoltan library not found. Compiling from source using buildlib script...")
|
||||
|
||||
# Execute the buildlib bash script
|
||||
execute_process(
|
||||
COMMAND bash ${ZOLTAN_PREFIX}/buildlib
|
||||
WORKING_DIRECTORY ${ZOLTAN_PREFIX}
|
||||
RESULT_VARIABLE ZOLTAN_BUILD_RESULT
|
||||
OUTPUT_VARIABLE ZOLTAN_BUILD_OUTPUT
|
||||
ERROR_VARIABLE ZOLTAN_BUILD_ERROR
|
||||
)
|
||||
|
||||
if(NOT ZOLTAN_BUILD_RESULT EQUAL 0)
|
||||
message(FATAL_ERROR "Failed to build Zoltan library using buildlib script. Error: ${ZOLTAN_BUILD_ERROR}")
|
||||
endif()
|
||||
|
||||
# Try to find the library again after building
|
||||
find_library(ZOLTAN_LIBRARY zoltan PATHS "${ZOLTAN_PREFIX}/lib" NO_DEFAULT_PATH)
|
||||
find_path(ZOLTAN_INCLUDE_DIR zoltan.h PATHS "${ZOLTAN_PREFIX}/include" NO_DEFAULT_PATH)
|
||||
|
||||
if(NOT ZOLTAN_LIBRARY)
|
||||
message(FATAL_ERROR "Failed to locate Zoltan library after building")
|
||||
endif()
|
||||
|
||||
message(STATUS "Successfully built Zoltan library at ${ZOLTAN_LIBRARY}")
|
||||
endif()
|
||||
endmacro()
|
@ -1,146 +0,0 @@
|
||||
<!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&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&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&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> |
|
||||
<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">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:namespacepFlow_1_1AB2Kernels"><td class="memItemLeft" align="right" valign="top">  </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow_1_1AB2Kernels.html#a1d3752d19417e5f211093381ef34cbc9">intAllActive</a> (const word &name, real dt, rangeU32 activeRng, const deviceViewType1D< realx3 > &y, const deviceViewType1D< realx3 > &dy, const deviceViewType1D< realx3 > &dy1)</td></tr>
|
||||
<tr class="separator:a1d3752d19417e5f211093381ef34cbc9"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a0e684a0c67df0388c9ab00a8abea55c4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow_1_1AB2Kernels.html#a0e684a0c67df0388c9ab00a8abea55c4">intScattered</a> (const word &name, real dt, const pFlagTypeDevice &activePoints, const deviceViewType1D< realx3 > &y, const deviceViewType1D< realx3 > &dy, const deviceViewType1D< realx3 > &dy1)</td></tr>
|
||||
<tr class="separator:a0e684a0c67df0388c9ab00a8abea55c4"><td class="memSeparator" colspan="2"> </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>
|
@ -1,5 +0,0 @@
|
||||
var AB2Kernels_8hpp =
|
||||
[
|
||||
[ "intAllActive", "AB2Kernels_8hpp.html#a1d3752d19417e5f211093381ef34cbc9", null ],
|
||||
[ "intScattered", "AB2Kernels_8hpp.html#a0e684a0c67df0388c9ab00a8abea55c4", null ]
|
||||
];
|
@ -1,11 +0,0 @@
|
||||
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=" "];
|
||||
}
|
@ -1,198 +0,0 @@
|
||||
<!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&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&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&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>  </div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>  </div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="preprocessor">#ifndef __AB2Kernels_hpp__</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#define __AB2Kernels_hpp__</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>  </div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="KokkosTypes_8hpp.html">KokkosTypes.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="types_8hpp.html">types.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="namespacepFlow_1_1AB2Kernels.html"> 9</a></span> <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> {</div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& name,</div>
|
||||
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  <a class="code" href="structpFlow_1_1Range.html">rangeU32</a> activeRng,</div>
|
||||
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& y, </div>
|
||||
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& dy,</div>
|
||||
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& dy1</div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> )</div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  Kokkos::parallel_for(</div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  name,</div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <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>  <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>  y[i] += dt*(<span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(1.5) * dy[i] - <span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(0.5) * dy1[i]);</div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  dy1[i] = dy[i];</div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  });</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  Kokkos::fence();</div>
|
||||
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> }</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">inline</span></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <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> (</div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& name,</div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1pointFlag.html">pFlagTypeDevice</a>& activePoints,</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& y, </div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& dy,</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#aa5276597d4016d6696f1f265a13d2164">deviceViewType1D<realx3></a>& dy1</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> )</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
||||
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  Kokkos::parallel_for(</div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  name,</div>
|
||||
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <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>  <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>  <span class="keywordflow">if</span>( activePoints(i))</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  {</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  y[i] += dt*(<span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(1.5) * dy[i] - <span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(0.5) * dy1[i]);</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  dy1[i] = dy[i];</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  });</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Kokkos::fence();</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> }</div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> }</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <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 & 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 & 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< T * > 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 &name, real dt, rangeU32 activeRng, const deviceViewType1D< realx3 > &y, const deviceViewType1D< realx3 > &dy, const deviceViewType1D< realx3 > &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 & 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< uint32 ></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 &name, real dt, const pFlagTypeDevice &activePoints, const deviceViewType1D< realx3 > &y, const deviceViewType1D< realx3 > &dy, const deviceViewType1D< realx3 > &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< Kokkos::DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< pFlow::uint32 > > 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< DefaultExecutionSpace ></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>
|
@ -1,151 +0,0 @@
|
||||
<!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&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&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&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> |
|
||||
<a href="#typedef-members">Typedefs</a> |
|
||||
<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">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> = Kokkos::RangePolicy< DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< uint32 > ></td></tr>
|
||||
<tr class="memdesc:a42ff9b272180d6b5b128aafacd50a411"><td class="mdescLeft"> </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"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b">intAllActive</a> (real dt, realx3Field_D &y, realx3PointField_D &dy, realx3PointField_D &dy1)</td></tr>
|
||||
<tr class="separator:ad07d1cb3572f2d482cdf0e9f2868071b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:a19c4c4ae40e7e332c50f85bcf8fb93d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html#a19c4c4ae40e7e332c50f85bcf8fb93d9">intScattered</a> (real dt, realx3Field_D &y, realx3PointField_D &dy, realx3PointField_D &dy1)</td></tr>
|
||||
<tr class="separator:a19c4c4ae40e7e332c50f85bcf8fb93d9"><td class="memSeparator" colspan="2"> </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>
|
@ -1,6 +0,0 @@
|
||||
var AdamsBashforth2_8cpp =
|
||||
[
|
||||
[ "rpIntegration", "AdamsBashforth2_8cpp.html#a42ff9b272180d6b5b128aafacd50a411", null ],
|
||||
[ "intAllActive", "AdamsBashforth2_8cpp.html#ad07d1cb3572f2d482cdf0e9f2868071b", null ],
|
||||
[ "intScattered", "AdamsBashforth2_8cpp.html#a19c4c4ae40e7e332c50f85bcf8fb93d9", null ]
|
||||
];
|
@ -1,15 +0,0 @@
|
||||
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=" "];
|
||||
}
|
@ -1,349 +0,0 @@
|
||||
<!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&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&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&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> <span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> O C enter of</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> O O E ngineering and</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> O O M ultiscale modeling of</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> OOOOOOO F luid flow </span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> Copyright (C): www.cemf.ir</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">------------------------------------------------------------------------------ </span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">Licence:</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <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> <span class="comment"> </span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <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> <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> <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> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">-----------------------------------------------------------------------------*/</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "<a class="code" href="AdamsBashforth2_8hpp.html">AdamsBashforth2.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "<a class="code" href="pointStructure_8hpp.html">pointStructure.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="Time_8hpp.html">Time.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="vocabs_8hpp.html">vocabs.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <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> {</div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">using</span> <a class="code" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411">rpIntegration</a> = Kokkos::RangePolicy<</div>
|
||||
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="namespacepFlow.html#aa3a14d3c76643399fc4edd8eca14944a">DefaultExecutionSpace</a>,</div>
|
||||
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  Kokkos::Schedule<Kokkos::Static>,</div>
|
||||
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  Kokkos::IndexType<uint32></div>
|
||||
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespacepFlow.html#a42ff9b272180d6b5b128aafacd50a411"> 34</a></span>  >;</div>
|
||||
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  </div>
|
||||
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="namespacepFlow.html#ad07d1cb3572f2d482cdf0e9f2868071b"> 36</a></span> <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>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>& y, </div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy,</div>
|
||||
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy1)</div>
|
||||
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <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>  <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>  <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>  <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>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  Kokkos::parallel_for(</div>
|
||||
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="stringliteral">"AdamsBashforth2::correct"</span>,</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <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>  <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>  d_y[i] += dt*(<span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(1.5) * d_dy[i] - <span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(0.5) * d_dy1[i]);</div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  d_dy1[i] = d_dy[i];</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  });</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Kokkos::fence();</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>; </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <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> (</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>& y,</div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy,</div>
|
||||
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy1</div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> )</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <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>  <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>  <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>  <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>  <span class="keyword">const</span> <span class="keyword">auto</span>& 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>  </div>
|
||||
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  Kokkos::parallel_for(</div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="stringliteral">"AdamsBashforth2::correct"</span>,</div>
|
||||
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <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>  <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>  <span class="keywordflow">if</span>( activeP(i))</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  {</div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  d_y[i] += dt*(<span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(1.5) * d_dy[i] - <span class="keyword">static_cast<</span><a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a><span class="keyword">></span>(0.5) * d_dy1[i]);</div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  d_dy1[i] = d_dy[i];</div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  });</div>
|
||||
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  Kokkos::fence();</div>
|
||||
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
|
||||
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> }</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> }</div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
||||
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <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> (</div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& <a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,</div>
|
||||
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>& <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& method,</div>
|
||||
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>& initialValField</div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> )</div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> :</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <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>  <a class="code" href="namespacepFlow.html#af547b8e736ebac3297672aff612d426a">realx3PointField_D</a></div>
|
||||
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  (</div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classpFlow_1_1objectFile.html">objectFile</a></div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  (</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="namespacepFlow.html#a12b4d93aa9730629403d73e84386bff5">groupNames</a>(<a class="code" href="namespacepFlow.html#a16a2137651b2c6b8ea4a8daf1d89ff61">baseName</a>,<span class="stringliteral">"dy1"</span>),</div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <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>  objectFile::READ_IF_PRESENT,</div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  objectFile::WRITE_ALWAYS</div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  ),</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>,</div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a>,</div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="namespacepFlow.html#a477d522d35403bd985ae105bd759e9d1">zero3</a></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  ),</div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  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> {}</div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#abd77556ae6ba5220c472e06b2ef2da31"> 118</a></span> <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> {</div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <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> }</div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
|
||||
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a5595208ecd7c3d8fdc960c8d2fd9bb69"> 123</a></span> <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>  <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>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &<a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y),</div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &<a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(dy))</div>
|
||||
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> {</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> }</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <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> (</div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a> &y, </div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &dy</div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> )</div>
|
||||
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> {</div>
|
||||
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span> }</div>
|
||||
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
||||
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <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> (</div>
|
||||
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt,</div>
|
||||
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& y,</div>
|
||||
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy</div>
|
||||
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> )</div>
|
||||
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> {</div>
|
||||
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">auto</span>& dy1l = dy1();</div>
|
||||
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">if</span>(dy1l.isAllActive())</div>
|
||||
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  {</div>
|
||||
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  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>  }</div>
|
||||
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div>
|
||||
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  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>  }</div>
|
||||
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
||||
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  success = success && boundaryList_.correct(dt, y, dy);</div>
|
||||
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div>
|
||||
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> success;</div>
|
||||
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  </div>
|
||||
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> }</div>
|
||||
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </div>
|
||||
<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a2dfa8f3fb9e8b803ed22d20d63e2f094"> 165</a></span> <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>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a> &<a class="code" href="setPointStructure_8hpp.html#a385e32971df44b131e4498181a949a91">pStruct</a>, </div>
|
||||
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a> &vel)</div>
|
||||
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div>
|
||||
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">auto</span>& dy1l = dy1();</div>
|
||||
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordtype">bool</span> success = <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">if</span>(dy1l.isAllActive())</div>
|
||||
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  {</div>
|
||||
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  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>  }</div>
|
||||
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">else</span></div>
|
||||
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div>
|
||||
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  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>  }</div>
|
||||
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
||||
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  success = success && 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>  </div>
|
||||
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> success;</div>
|
||||
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> }</div>
|
||||
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  </div>
|
||||
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  </div>
|
||||
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#ad114a4a04b76ea8e10d4388756912a7e"> 187</a></span> <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>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>& newIndices,</div>
|
||||
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>& y)</div>
|
||||
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div>
|
||||
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
||||
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> }</div>
|
||||
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </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 &UNUSED(y), realx3PointField_D &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 &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &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 & 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< realx3 > 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 &y, realx3PointField_D &dy, realx3PointField_D &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< realx3 ></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 &y, realx3PointField_D &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 &y, realx3PointField_D &dy, realx3PointField_D &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 &w, char sep='.')</div><div class="ttdoc">Find the base in a group separated by "." 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 &pStruct, realx3PointField_D &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 & 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< DefaultExecutionSpace, Kokkos::Schedule< Kokkos::Static >, Kokkos::IndexType< uint32 > > 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 &newIndices, const realx3Vector &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 & 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 &bw, const word &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< realx3 ></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>
|
@ -1,150 +0,0 @@
|
||||
<!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&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&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&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> |
|
||||
<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  </td><td class="memItemRight" valign="bottom"><a class="el" href="classpFlow_1_1AdamsBashforth2.html">AdamsBashforth2</a></td></tr>
|
||||
<tr class="memdesc:"><td class="mdescLeft"> </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"> </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">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacepFlow.html">pFlow</a></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </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>
|
@ -1,9 +0,0 @@
|
||||
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=" "];
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
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=" "];
|
||||
}
|
@ -1,276 +0,0 @@
|
||||
<!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&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&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&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> <span class="comment">/*------------------------------- phasicFlow ---------------------------------</span></div>
|
||||
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> O C enter of</span></div>
|
||||
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> O O E ngineering and</span></div>
|
||||
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> O O M ultiscale modeling of</span></div>
|
||||
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> OOOOOOO F luid flow </span></div>
|
||||
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">------------------------------------------------------------------------------</span></div>
|
||||
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> Copyright (C): www.cemf.ir</span></div>
|
||||
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> email: hamid.r.norouzi AT gmail.com</span></div>
|
||||
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">------------------------------------------------------------------------------ </span></div>
|
||||
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">Licence:</span></div>
|
||||
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <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> <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> <span class="comment"> </span></div>
|
||||
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <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> <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> <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> <span class="comment"></span> </div>
|
||||
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">-----------------------------------------------------------------------------*/</span></div>
|
||||
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef __AdamsBashforth2_hpp__</span></div>
|
||||
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define __AdamsBashforth2_hpp__</span></div>
|
||||
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  </div>
|
||||
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  </div>
|
||||
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="integration_8hpp.html">integration.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="pointFields_8hpp.html">pointFields.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="boundaryIntegrationList_8hpp.html">boundaryIntegrationList.hpp</a>"</span></div>
|
||||
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div>
|
||||
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <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> {</div>
|
||||
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
|
||||
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html"> 37</a></span> <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> :</div>
|
||||
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <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>  <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> {</div>
|
||||
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  </div>
|
||||
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#aac898ef26b84e559b552fb63b187e4a3"> 44</a></span>  <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>  </div>
|
||||
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#acfc416287e9f31450d930160b1ccaef3"> 46</a></span>  <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>  </div>
|
||||
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#aec90bedeff0a2a031a0d310526a33f3b"> 48</a></span>  <span class="keyword">const</span> <span class="keyword">auto</span>& <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> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keyword">const </span><a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&<span class="keyword">></span>(*this);</div>
|
||||
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div>
|
||||
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
|
||||
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a08830f3ac97ae61ab7971024f5bfc99f"> 53</a></span>  <span class="keyword">auto</span>& <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a08830f3ac97ae61ab7971024f5bfc99f">dy1</a>()</div>
|
||||
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div>
|
||||
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>&<span class="keyword">></span>(*this);</div>
|
||||
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div>
|
||||
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </div>
|
||||
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  </div>
|
||||
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a4db1a4db4a3c5af1dc7037acec0e40a9">ClassInfo</a>(<span class="stringliteral">"AdamsBashforth2"</span>);</div>
|
||||
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  </div>
|
||||
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// - Constructors</span></div>
|
||||
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
||||
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a1e7473dc6951c5718277fadf484d4c7d">AdamsBashforth2</a>(</div>
|
||||
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& <a class="code" href="classpFlow_1_1integration.html#a4e30df3927ef1cdd2490cd85018518f5">baseName</a>,</div>
|
||||
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>& <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>,</div>
|
||||
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>& <a class="code" href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e">method</a>,</div>
|
||||
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>& initialValField);</div>
|
||||
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </div>
|
||||
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <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>  </div>
|
||||
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <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>  <a class="code" href="classpFlow_1_1integration.html">integration</a>,</div>
|
||||
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classpFlow_1_1AdamsBashforth2.html">AdamsBashforth2</a>,</div>
|
||||
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="namespacepFlow.html#a0ebe792a293e8c717bddf60070c0fe99">word</a>);</div>
|
||||
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  </div>
|
||||
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  </div>
|
||||
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// - Methods</span></div>
|
||||
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
|
||||
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <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>  </div>
|
||||
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a307a24e988c782099db9fc49291efe1e"> 87</a></span>  <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> <span class="keyword"> </span>{</div>
|
||||
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <span class="stringliteral">"AdamsBashforth2"</span>;</div>
|
||||
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div>
|
||||
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
|
||||
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <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>  <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>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& <a class="code" href="pFlowMacros_8hpp.html#a86d500a34c624c2cae56bc25a31b12f3">UNUSED</a>(y), </div>
|
||||
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& <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>  </div>
|
||||
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <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>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classpFlow_1_1Field.html">realx3Field_D</a>& y, </div>
|
||||
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy) <span class="keyword">final</span>;</div>
|
||||
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
||||
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <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>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& y, </div>
|
||||
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& dy) <span class="keyword">final</span>;</div>
|
||||
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
||||
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <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>  <a class="code" href="namespacepFlow.html#a6192191c0e9c178a44ee1ac350fde476">real</a> dt, </div>
|
||||
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classpFlow_1_1pointStructure.html">pointStructure</a>& <a class="code" href="classpFlow_1_1integration.html#a5a622149e803f0fa292a95784c12a7b8">pStruct</a>, </div>
|
||||
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classpFlow_1_1pointField.html">realx3PointField_D</a>& vel) <span class="keyword">final</span>;</div>
|
||||
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
||||
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
||||
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">/*bool hearChanges</span></div>
|
||||
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> (</span></div>
|
||||
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> real t,</span></div>
|
||||
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment"> real dt,</span></div>
|
||||
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment"> uint32 iter,</span></div>
|
||||
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment"> const message& msg, </span></div>
|
||||
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment"> const anyList& varList</span></div>
|
||||
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment"> ) override;*/</span></div>
|
||||
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  </div>
|
||||
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <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>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1indexContainer.html">int32IndexContainer</a>& newIndices,</div>
|
||||
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="classpFlow_1_1Vector.html">realx3Vector</a>& y) <span class="keyword">final</span>;</div>
|
||||
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
||||
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classpFlow_1_1AdamsBashforth2.html#a5fd0dfea4bc213a1a941358d72bedde0"> 126</a></span>  <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>  {</div>
|
||||
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
|
||||
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div>
|
||||
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  </div>
|
||||
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> };</div>
|
||||
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
|
||||
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div>
|
||||
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> } <span class="comment">// pFlow</span></div>
|
||||
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
|
||||
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <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 &UNUSED(y), realx3PointField_D &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 & 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 &baseName, pointStructure &pStruct, const word &method, const realx3Field_D &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("AdamsBashforth2")</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 & 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< realx3 ></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 &y, realx3PointField_D &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 & 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 &pStruct, realx3PointField_D &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 & 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 &newIndices, const realx3Vector &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< realx3 ></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>
|
@ -1,128 +0,0 @@
|
||||
<!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&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&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&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>
|
@ -1,9 +0,0 @@
|
||||
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=" "];
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user