BASEMENTBasic Simulation Environment for computation of environmental flow and natural hazard simulationLaboratory of Hydraulics, Hydrology and Glaciology (VAW)ETH Zurich |
You are not logged in.
Pages: 1
Hi
I am experiencing the following:
if I start the same simulation
(i) from the GUI,
(ii) from the PowerShell using BMv3_BASEplane_cudaC_single.exe (or BMv3_BASEplane_cudaO_single.exe),
(iii) from the PowerShell using BMv3_BASEplane_cudaC.exe (or BMv3_BASEplane_cudaO.exe)
I obtain three different behaviors:
(i) bm crashes giving mass balance problem
(ii) bm runs without any problem
(iii) bm crashes giving mass balance problem
Cheers,
Matteo
Offline
Hi Matteo
I am surprised that the single precision backend is the one that does not crash. Do you get the same behavior if you use the seq or omp backend?
Best regards
Matthias
Offline
Hi Matthias,
I am currently running some tests and at a first sight, it looks to me that the problem of the mass balance error was in the interpolation method set for the geometry.
Does it make any sense to you?
PS: you could consider making it compulsory!
Offline
Hi Matteo
Not sure if I understand. The interpolation method is determined during the Setup process and should be independent of using the GUI or the PowerShell for running the simulation, right?
Yes, we are already discussing to make it compulsory.
Best
Matthias
Offline
Sorry, my bad...I mixed up stuff
I tried to reproduce the problem under windows 10 and different backend
(i) GUI with GPU only
(ii) GUI with GPU, single-threaded on CPU
(iii) GUI with GPU, multi-threaded on CPU (4 CPUs)
(iv) from the PowerShell using BMv3_BASEplane_cudaC_single.exe (or BMv3_BASEplane_cudaO_single.exe),
(v) from the PowerShell using BMv3_BASEplane_cudaC.exe (or BMv3_BASEplane_cudaO.exe)
using the Flaz tutorial as benchmark
1. B_restart_unsteady
First, from the PowerShell I get an error on the mesh, which I do not get from the GUI and I had to put the complete path to the mesh to make it work.
Then, I had to to the same for the Inflow_transient.txt file.
(i) ok
(ii) ok
(iii) ok
(iv) crash with mass balance problem
(v) ok
2. C_morphology
(i) ok
(ii) ok
(iii) ok
(iv) crash with mass balance problem
(v) ok
Here is my batch script using BMv3_BASEplane_cudaC.exe
"C:\Program Files\BASEMENT 3.0.2\bin\BMv3_BASEplane_setup.exe" ^
-f D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\model.json ^
-o D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run.h5
"C:\Program Files\BASEMENT 3.0.2\bin\BMv3_BASEplane_cudaC.exe" ^
-f D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\simulation.json ^
-r D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run.h5 ^
-o D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run_results.h5 -p
"C:\Program Files\BASEMENT 3.0.2\bin\BMv3_BASEplane_results.exe" ^
-f D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\results.json ^
-r D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run_results.h5 ^
-o D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_output
Here is the mass balance error I get
Writing '/RESULTS/CellsAll/HydState/0000000' to file 'D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run_results.h5'
Writing '/RESULTS/CellsAll/BottomEl/0000000' to file 'D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run_results.h5'
Writing '/RESULTS/NodeStrg/StateVar/0000000' to file 'D:\03_BASEMENT\97_3p0_test\Flaz_2D_v3\C_morphology\C_morphology_run_results.h5'
-> Progress: 0/100, dt = 0.02 [s], RTS = 0
MASS BALANCE PROBLEM: h = -0.000610352 < 0.0
MASS BALANCE PROBLEM: h = -0.000610352 < 0.0
MASS BALANCE PROBLEM: h = -0.000610352 < 0.0
MASS BALANCE PROBLEM: h = -0.00012207 < 0.0
MASS BALANCE PROBLEM: h = -0.0012207 < 0.0
MASS BALANCE PROBLEM: h = -0.000732422 < 0.0
-> ERROR in kernel_GLOBAL_Update... MASS not conserved
-> ... unfortunately BASEMENT is killed!
Offline
Hi Matteo
Regarding the mass balance error: Assuming that you used double precision for (i)-(iii), my best guess is that single precision is not precise enough for the Flaz test case. Possible reason: Coordinates are represented by 10 to 12 digits.
Regarding the file paths: The GUI calls the different backends from the scenario directory. Therefore, providing a relative path (i.e. only the filename) works fine. Also, if you call the batch script from within the scenario directory, it should work with relative paths in the model.json, since the different backends are also called from the scenario directory in this case. But if you call the batch script from outside the scenario directory, the SETUP backend won't find the files with a relative path.
Best regards
Matthias
Offline
That makes perfectly sense!
In the example I sent you you can test the behavior described in the first message, i.e.
if I start the same simulation
(i) from the GUI,
(ii) from the PowerShell using BMv3_BASEplane_cudaC_single.exe (or BMv3_BASEplane_cudaO_single.exe),
(iii) from the PowerShell using BMv3_BASEplane_cudaC.exe (or BMv3_BASEplane_cudaO.exe)I obtain three different behaviors:
(i) bm crashes giving mass balance problem
(ii) bm runs without any problem
(iii) bm crashes giving mass balance problem
The problem is exactly the precision: if I run the simulation from the GUI with single precision it works, otherwise I get the mass balance problem!
Offline
Dear BASEMENT community,
I'd like to add another chapter to the MASS-BALANCE problem story: I am running a morph simulation starting from dry condition (but the problem I am experiencing occurs even with "continue" initial conditions).
If I run the simulation with a very short output time step (e.g. 1 second) I don't get any mass balance problem, while if I use a longer output time step the simulation crashes due to MASS-BALANCE issue. If I switch off the "safe_mode" I get some minor MASS-BALANCE problems at the very beginning, after which I can run my simulation without any problem.
Best,
Matteo
Offline
Pages: 1