ERROR in double array allocation of qxk : for 3d simulation - D-Flow Flexible Mesh - Delft3D
intro story D-Flow FM
D-Flow Flexible MeshD-Flow Flexible Mesh (D-Flow FM) is the new software engine for hydrodynamical simulations on unstructured grids in 1D-2D-3D. Together with the familiar curvilinear meshes from Delft3D 4, the unstructured grid can consist of triangles, pentagons (etc.) and 1D channel networks, all in one single mesh. It combines proven technology from the hydrodynamic engines of Delft3D 4 and SOBEK 2 and adds flexible administration, resulting in:
An overview of the current developments can be found here. The D-Flow FM - team would be delighted if you would participate in discussions on the generation of meshes, the specification of boundary conditions, the running of computations, and all kinds of other relevant topics. Feel free to share your smart questions and/or brilliant solutions!
======================================================= | Sub groups
|
Message Boards
ERROR in double array allocation of qxk : for 3d simulation
Kazi Sadid, modified 8 Years ago.
ERROR in double array allocation of qxk : for 3d simulation
Youngling Posts: 4 Join Date: 2/2/12 Recent Posts 00
I tried to run a 3d simulation for my model with 180,000 grid cells and 40 layers. I even tried different number of layers like 10/20/30 layers. Each time I had the same error message as below:
"Part I - Initialisation Time Dep. Data module...
runid : bs-st-lake-lptp-3d
Part II - Creating intermediate files...
Part III - Initialisation of the Execution module...
*** ERROR in double array allocation of qXk
Contact Deltares
Flow exited abnormally
Check diagnosis file"
Then I coarsened my grid and now I have 27,000 grid cells in my model. For this number of grid cells the model successfully completed 3d simulation.After having a complete 3D simulation with coarser grid I assume that the problem might be one of those two reasons below:
1) Delft3D may have a limitation for array allocation for high number of grid cells (it used to show an error message saying: qXk ...Array Allocation..)
2) also might be a a problem of my computer system which has 4 GB Ram. It may require more power to run this big simulation.
If anybody have some idea on this issue, please respond to this thread. I need to run a finer grid with 180,000 grid cells for my purpose.So I need a solution for this problem.
"Part I - Initialisation Time Dep. Data module...
runid : bs-st-lake-lptp-3d
Part II - Creating intermediate files...
Part III - Initialisation of the Execution module...
*** ERROR in double array allocation of qXk
Contact Deltares
Flow exited abnormally
Check diagnosis file"
Then I coarsened my grid and now I have 27,000 grid cells in my model. For this number of grid cells the model successfully completed 3d simulation.After having a complete 3D simulation with coarser grid I assume that the problem might be one of those two reasons below:
1) Delft3D may have a limitation for array allocation for high number of grid cells (it used to show an error message saying: qXk ...Array Allocation..)
2) also might be a a problem of my computer system which has 4 GB Ram. It may require more power to run this big simulation.
If anybody have some idea on this issue, please respond to this thread. I need to run a finer grid with 180,000 grid cells for my purpose.So I need a solution for this problem.
Bert Jagers, modified 8 Years ago.
RE: ERROR in double array allocation of qxk : for 3d simulation (Answer)
Jedi Knight Posts: 201 Join Date: 12/22/10 Recent Posts 00
Dear Kazi,
These are indeed the two possible reasons; which one is difficult to say because they become both restrictive at about the same amount of memory usage. Delft3D-FLOW is compiled as a 32bit executable** which introduces a limit on the maximum amount of memory available to the program. By default the maximum is 2GB, but we have set a large memory aware flag in the linker such that the program should allow for memory up to about 3GB or a bit more. The exact amount of memory that the program can access depends on the Windows version and settings that you're using (maximum amount of memory is on a 64bit Windows version). If the 180,000 cell x 10 layer model doesn't run then the 40 layer will require both a 64bit executable and much more memory.
You may be able to check with the process manager how much memory the 27,000 cell x 10 layer model needs (I guessed that the coarsened model used 10 layers -- you didn't indicate). As a rough estimate you can multiply that number by 7 (hor: 27,000 -> 180,000) * 4 (10 -> 40 layers) = 28 to indicate how much memory you'll need for the detailed simulation. You may very well end up with 28GB or more memory required. If that's the case, you either need a really big computer or a Linux cluster (you may then want to run the simulation in parallel to speed up the simulation as well).
Do you really need that amount of detail in the simulation?
Bert
** On Linux starting with Delft3D-FLOW 5.xx, the software is compiled as 64bit removing the memory limit from the software, so hardware will be the only limit then.
These are indeed the two possible reasons; which one is difficult to say because they become both restrictive at about the same amount of memory usage. Delft3D-FLOW is compiled as a 32bit executable** which introduces a limit on the maximum amount of memory available to the program. By default the maximum is 2GB, but we have set a large memory aware flag in the linker such that the program should allow for memory up to about 3GB or a bit more. The exact amount of memory that the program can access depends on the Windows version and settings that you're using (maximum amount of memory is on a 64bit Windows version). If the 180,000 cell x 10 layer model doesn't run then the 40 layer will require both a 64bit executable and much more memory.
You may be able to check with the process manager how much memory the 27,000 cell x 10 layer model needs (I guessed that the coarsened model used 10 layers -- you didn't indicate). As a rough estimate you can multiply that number by 7 (hor: 27,000 -> 180,000) * 4 (10 -> 40 layers) = 28 to indicate how much memory you'll need for the detailed simulation. You may very well end up with 28GB or more memory required. If that's the case, you either need a really big computer or a Linux cluster (you may then want to run the simulation in parallel to speed up the simulation as well).
Do you really need that amount of detail in the simulation?
Bert
** On Linux starting with Delft3D-FLOW 5.xx, the software is compiled as 64bit removing the memory limit from the software, so hardware will be the only limit then.
Adri Mourits, modified 8 Years ago.
RE: ERROR in double array allocation of qxk : for 3d simulation
Yoda Posts: 1221 Join Date: 1/3/11 Recent Posts 00
Hi Kazi,
One addition to Bert's answer:
Optionally you can build and use a single precision binary, using less memory:
Regards,
Adri
One addition to Bert's answer:
Optionally you can build and use a single precision binary, using less memory:
- Execute "...\src\utils_lgpl\precision\scripts\singleprecision.bat"
This will modify some source code and project files - Compile the source code
This will result in dynamic library flow2d3d_sp.dll/libflow2d3d_sp.so being generated - Edit the file "config_flow2d3d.ini" in your input directory:
Replace "Name = flow2d3d" by "Name = flow2d3d_sp" - Run your calculation
Check the tri-diag file. It should contain the line:
*** MESSAGE Single precision computation using reals of kind 4
instead of:
*** MESSAGE Double precision computation using reals of kind 8
Regards,
Adri