我想用chrono进行沙土的仿真,首先学习demo_GPU_ballCosim.cpp,这个例子仿真了一些沙土的沉降过程。
首先,运行编辑完成的文件demo_GPU_ballCosim:
bash
(base) eowyn@eowyn-MS-7D20:~/build_chrono/bin$ ./demo_GPU_ballCosim
运行完得到一些数据,存放在DEMO_OUTPUT/GPU/ballCosim/checkpoint.dat中:
bash
Reading parameters: ../data/gpu/ballCosim.json
--- Parsing JSON ---
params.sphere_radius 1.000000
params.sphere_density 1.000000
...
params.step_size 0.000050
--------------------
Now run_mode == FRICTIONLESS, this run is particle settling phase.
After it is done, you will have a settled bed of granular material.
A checkpoint file will be generated in the output directory to store this state.
Next, edit the JSON file, change 'run_mode' from 0 (FRICTIONLESS) to 1 (ONE_STEP),
then run this demo again to proceed with the ball drop part of this demo.
622476 particles sampled!
Output frame 1 of 100
Output frame 2 of 100
Output frame 3 of 100
...
Output frame 101 of 100
Writing checkpoint data to file "DEMO_OUTPUT/GPU/ballCosim/checkpoint.dat"
然后,根据运行文件中的提示,将/build_chrono/data/gpu/ballCosim.json文件中的'run_mode'变量从frictionless改成one_step. 然后,重新运行demo_GPU_ballCosim,将会展示沉降后的沙土。
bash
(base) eowyn@eowyn-MS-7D20:~/build_chrono/bin$ ./demo_GPU_ballCosim
Reading parameters: ../data/gpu/ballCosim.json
--- Parsing JSON ---
params.sphere_radius 1.000000
params.sphere_density 1.000000
...
params.step_size 0.000050
--------------------
Reading checkpoint data from file "DEMO_OUTPUT/GPU/ballCosim/checkpoint.dat"...
1 meshes
Version: 3.3.0
NVIDIA Corporation : NVIDIA GeForce RTX 3060/PCIe/SSE2 (3.3.0 NVIDIA 470.199.02)
GLSL: 3.30 NVIDIA via Cg compiler
Initialize Viewer : GL_INVALID_ENUM
Output at 50 FPS
Rendering at 2000 FPS
Output frame 1 of 100
Output frame 2 of 100
...
Output frame 10 of 100
Time: 67.6678 seconds