Giter Club home page Giter Club logo

luma's Issues

Troubles to build

Dear @aharwood2 as suggested I open this issue, regarding my building problem.

Hello, I have read the previous closed issues concerning the installation and execution of LUMA.

I have installed the serial version of hdf5, and its
located in the next address: /usr/include/hdf5

As you can see I exported the path, no errors came out,
I assume it was ok.

(base) valdez@lmpnote05:/media/valdez/data/LUMA/LUMA$ export HDF5_HOME=/usr/include/hdf5

I assume the previous export command was well executed, no errors or warnings appeared.

Then I call the make command and I get the next terminal output:

(base) valdez@lmpnote05:/media/valdez/data/LUMA/LUMA$ make
mkdir -p obj
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridObj_init_grids.o src/GridObj_init_grids.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/ObjectManager.o src/ObjectManager.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/MpiManager_fem.o src/MpiManager_fem.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/IBMarker.o src/IBMarker.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/FEMNode.o src/FEMNode.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/ObjectManager_ops_io.o src/ObjectManager_ops_io.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/IBInfo.o src/IBInfo.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/FEMBody.o src/FEMBody.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/BFLBody.o src/BFLBody.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/IBBody.o src/IBBody.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridManager.o src/GridManager.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/ObjectManager_ops_ibm_debug.o src/ObjectManager_ops_ibm_debug.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/BFLMarker.o src/BFLMarker.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/Mpi_buffer_size_send.o src/Mpi_buffer_size_send.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/main_lbm.o src/main_lbm.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridObj_ops_lbm.o src/GridObj_ops_lbm.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/Mpi_buffer_size_recv.o src/Mpi_buffer_size_recv.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/stdafx.o src/stdafx.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/ObjectManager_ops_ibm_mpi.o src/ObjectManager_ops_ibm_mpi.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridObj_ops_lbm_optimised.o src/GridObj_ops_lbm_optimised.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/Mpi_buffer_unpk.o src/Mpi_buffer_unpk.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridObj.o src/GridObj.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/Mpi_buffer_pack.o src/Mpi_buffer_pack.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/MpiManager.o src/MpiManager.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/FEMElement.o src/FEMElement.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridUtils.o src/GridUtils.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/MpiManager_ibm.o src/MpiManager_ibm.cpp
mpicxx -O3 -std=c++0x -w -fopenmp -I/usr/include/hdf5/include -c -o obj/GridObj_ops_io.o src/GridObj_ops_io.cpp
In file included from src/GridObj_ops_io.cpp:28:0:
src/../inc/hdf5luma.h:31:10: fatal error: hdf5.h: No such file or directory
#include "hdf5.h" // Load C API
^~~~~~~~
compilation terminated.
makefile:37: recipe for target 'obj/GridObj_ops_io.o' failed
make: *** [obj/GridObj_ops_io.o] Error 1

Looking after the comments and responses from the community I salute you.

Build fails with GCC 6.4.0

When building using GCC 6.4.0 and OpenMPI 3.1.3 make throws the following error:

mpicxx -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/MpiManager_fem.o src/MpiManager_fem.cpp
In file included from src/../inc/FEMBody.h:29:0,
                 from src/../inc/IBBody.h:30,
                 from src/../inc/ObjectManager.h:30,
                 from src/MpiManager_fem.cpp:24:
src/../inc/FEMElement.h:72:21: error: expected ‘)’ before ‘*’ token
  FEMElement(FEMBody *fPtr, int i, int DOFs, double spacing, double height, double depth,
                     ^
std::vector<double> &angles, double density, double E);

In file included from src/../inc/FEMBody.h:29:0,
                 from src/../inc/IBBody.h:30,
                 from src/../inc/ObjectManager.h:30,
                 from src/MpiManager_fem.cpp:24:
src/../inc/FEMElement.h:79:2: error: ‘FEMBody’ does not name a type
  FEMBody *fPtr;
  ^~~~~~~
make: *** [obj/MpiManager_fem.o] Error 1

when compiling the source file MpiManager_fem.cpp.

Run tests automatically

Once the tests work again (#27), they should be set up to run automatically, for example with GitHub Actions.

Make tests work again

The tests no longer run, as they have not kept up with changes in the rest of the codebase. They should be updated to match the current code.

Conflict in corners while using eSlip and ePressure BCs

Hi,

I am trying to validate a benchmark problem (flexible filament attached to a square cylinder) in a rectangular domain.

The inlet is constant velocity, top and bottom are slip boundaries and the outflow is p=0 boundary condition. So I am using eVelocity at inlet, eSlip at top and bottom while ePressure at outlet.

But the simulation crashes as the velocity values start getting NaN, and it propagates from the outlet.

Please help.
Screenshot from 2021-10-04 11-45-13

Issue when IBM body moves from one processor core to other

Hi,
I have to assign some motion in y to a flexible filament, and the
filament's x position has to be determined dynamically. Everything works
fine, but as filament enters another processor, the simulation hangs up
and doesn't proceed further.
Here is the simulation result:-

result_0.mp4

result_0 0223

The video contains the Ux field, and the picture consists of the Mpiblock
number.
Currently, I am dividing the domain into two parts in the x-direction.
I am using filament as an IBM body.
I am simulating LINUX-UBUNTU 20.04.

In issue#9 you had talked about a
partial solution. So, can you tell me what I should do to avoid the
hanging of simulation when the body moves from one proc to another?

I also like to add that when I start the simulation at the position where
the body lies on the boundary of the two procs, it gives me a segmentation
fault.

I hope you will reply to me at my earliest convenience.

Thank You.

Prescribed Motion to Flexible Filaments

Hello, hope you are all doing well. Previously there had been an issue regarding giving prescribed motion to rigid bodies which was answered. We implemented it in code and are glad to say that it worked well as expected. We wanted to try and extend this functionality to flexible bodies as well (say a filament for example). Is there any way by which we can give prescribed motion to a flexible filament? For starters, we can try to implement heaving motion given to the leading edge of a filament.

MPI issue

I am trying to benchmark the LUMA with 3D sphere flow case, similiar to those in JAS Munoz's thesis. The code always get error bellow when the grids exceed 20 million nodes.

Is that means the memory or MPI exceeds the limits? If it is, what is the limit for current code? It seems the grid system is not distributed storaged.

Best,

Zhaohui

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Fatal error in PMPI_Barrier: Unknown error class, error stack:
PMPI_Barrier(425).....................: MPI_Barrier(comm=0x84000004) failed
MPIR_Barrier_impl(332)................: Failure during collective
MPIR_Barrier_impl(327)................:
MPIR_Barrier(292).....................:
MPIR_Barrier_intra(150)...............:
barrier_smp_intra(96).................:

Installation failed after recompilation

Hi,

I'd like to continue the problem regarding the installation of LUMA in another poster.

I tried the installation on two computers. One is Windows 10 with Ubuntu 18.04.3 LTS. The other is Redhat (see the info below).

LSB Version: :core-4.1-amd64:core-4.1-ia32:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-ia32:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-ia32:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-ia32:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-ia32:printing-4.1-noarch
Distributor ID: RedHatEnterpriseWorkstation
Description: Red Hat Enterprise Linux Workstation release 7.5 (Maipo)
Release: 7.5
Codename: Maipo

No other third party software for LUMA is installed beforehand.

  1. The source code was downloaded and compiled with the commands:
    git clone https://github.com/aharwood2/LUMA.git
    cd LUMA/LUMA
    make

  2. The path of HDF5 was added in ~/.bashrc as below:
    export HDF5_HOME=/usr/lib/x86_64-linux-gnu/hdf5/mpich/

  3. There is no problem to run the code serially in the root (namely, LUMA/LUMA/, see above):
    ./LUMA

  4. When running the code using mpirun:
    a) In ./inc/definitions.h, uncomment Line 82 '#define L_BUILD_FOR_MPI'
    b) run **mpirun -np 4 --allow-run-as-root ./LUMA **
    c) an error is shown. Below is from Ubuntu, but Redhat gives the same error.

[DESKTOP-THCJMDM:1785] *** An error occurred in MPI_Cart_create [DESKTOP-THCJMDM:1785] *** reported by process [3214082049,0] [DESKTOP-THCJMDM:1785] *** on communicator MPI_COMM_WORLD [DESKTOP-THCJMDM:1785] *** MPI_ERR_ARG: invalid argument of some other kind [DESKTOP-THCJMDM:1785] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort, [DESKTOP-THCJMDM:1785] *** and potentially your MPI job) [DESKTOP-THCJMDM:01780] 3 more processes have sent help message help-mpi-errors.txt / mpi_errors_are_fatal [DESKTOP-THCJMDM:01780] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages

  1. Although an error was shown above, I skipped to run the test cases:
    a) cd cases/testsuite/scripts/
    b) ./runTestSuite.sh
    c) an error is shown below. The log file for case000 is attached for your reference.
    compile.log

********** LUMA TEST SUITE ********** Beginning test suite -> there are 10 cases to test Starting case 0 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 1 of 9... cp: cannot stat '/restart*': No such file or directory Compiling...failed (check compile log file)...skipping case\n\n Starting case 2 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 3 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 4 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 5 of 9... Compiling... failed (check compile log file)...skipping case\n\n Starting case 6 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 7 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 8 of 9... Compiling...failed (check compile log file)...skipping case\n\n Starting case 9 of 9... cp: cannot stat '/restart*': No such file or directory Compiling...failed (check compile log file)...skipping case\n\n Finished test suite

  1. Going back to the root directory LUMA/LUMA
    a) make clean
    b) make
    c) the compilation failed this time. The log file 'make.log' is attached for your reference.
    make.log

Issue while making h5mgm merge tool

Hello,

I am trying to configure the merge tool h5mgm. I changed the version of the VTK in the makefile with the version present in my system.

But while making I am getting an error msg:

g++    -c -o src/h5mgm.o src/h5mgm.cpp
In file included from src/VelocitySorter.h:16,
                 from src/h5mgm.cpp:16:
src/h5mgm.h:20:10: fatal error: hdf5.h: No such file or directory
   20 | #include "hdf5.h"
      |          ^~~~~~~~
compilation terminated.
make: *** [<builtin>: src/h5mgm.o] Error 1

While making the file in the LUMA source directory, it is working without errors. I believe the h5mgm makefile also uses the same definition HDF5_HOME definition that the LUMA makefile does. Correct me if I am wrong.

Any help would be highly appreciated

Multi-phase flow

It would be nice to also simulate multi-phase flow. We can use an existing model like Shan-Chen and incorporate a second population function. The MPI and EGR parts of the code would need upgrading to facilitate this.

Importing flexible geometry from pointcloud

Hello hope all of you are doing well.
We are trying to import an airfoil for our 2-D simulations. We kept the chord length as more than 20 times the thickness of the foil and mentioned it to be flexible. We got an error while we do this. However when we specify it to be rigid there is no error.
This is how we are calling the pointcloud-
FROM_FILE IBM pointcloud_NACA0004_2D.in 0 0 START 0.5 START 0.98 CENTRE 0.0 1 X FLEXIBLE CLAMPED
Our domain size is 4 x 2.

For our purpose we want to be able to specify the foil to be flexible and mention the Young's Modulus if possible. Is there any condition that is used to categorize if a pointcloud object can be specified flexible or not?

Another issue is that even after specifying the airfoil geometry in the pointcloud once it is actually imported to LUMA, the IB markers do not converge on the trailing edge. Below I have attached images of this, second image is the zoomed in view.

airfoil
airfoil_zoomed

Out of Range crash when using 1 Core in a given direction

A recently-discovered issue relating to the use of a single core in a given direction for MPI-enable simulations with sub-grids. To reproduce, simply create a simulation with at least one sub-grid and set the number of MPI cores to be 1 in one of the active directions.

Problem running LUMA in parallel mode

I have recently installed LUMA on my device and tried to run the test case as described in
https://github.com/aharwood2/LUMA/wiki/Test-Cases. However, I received the following error:
Screenshot from 2020-01-07 11-46-38
When running in serial mode, 1 processor only, the test case is run without any problem. I think this is due to HDF5 settings but I don't know how to solve it. this is what i found about configuration of HDF5 on my device:
Screenshot from 2020-01-07 11-59-10
Anyone can help?

Simulating Flexible filaments with gravity ON

Hello,

Hope you are doing well.

I have a doubt regarding the usage of Gravity force. Can we simulate flexible filaments (pinned) and subjected to uniform flow and gravity turned ON in the flow direction ?

I was trying to validate a benchmark case. But the simulation crashes at an initial timestep of 27 saying "position is off entire grid hierarchy". I can see that the simulation runs fine when I mention the filament as RIGID but fails when I make it FLEXIBLE.

There is no change in the source code. I am only giving inputs in the definitions.h and geometry.config file.

I am attaching the definitions.h and geometry.config file for reference.
link

Any help would be highly appreciated.

Thank You
Akash

Picking definitions in tests does not work

In file included from ../../../src/../inc/stdafx.h:205,
                 from ../../../src/BFLBody.cpp:23:
../../../src/../inc/GridManager.h:59:28: error: 'L_NUM_LEVELS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                            ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:59:43: error: 'L_NUM_REGIONS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                           ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:32: error: 'L_NUM_LEVELS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:47: error: 'L_NUM_REGIONS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:32: error: 'L_NUM_LEVELS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:47: error: 'L_NUM_REGIONS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:207:
../../../src/../inc/MpiManager.h:115:28: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  115 |         int neighbour_rank[L_MPI_DIRS];                         ///< Neighbour rank number for each direction in Cartesian topology
      |                            ^~~~~~~~~~
      |                            L_MPI_dir
../../../src/../inc/MpiManager.h:116:30: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                              ^~~~~~
      |                              L_dims
../../../src/../inc/MpiManager.h:116:38: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                                      ^~~~~~~~~~
      |                                      L_MPI_dir
../../../src/../inc/MpiManager.h:139:25: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  139 |         int rank_coords[L_DIMS];        ///< Coordinates in MPI Cartesian topology
      |                         ^~~~~~
      |                         L_dims
../../../src/../inc/MpiManager.h:172:35: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  172 |         MPI_Request send_requests[L_MPI_DIRS];  ///< Array of request structures for handles to posted ISends
      |                                   ^~~~~~~~~~
      |                                   L_MPI_dir
../../../src/../inc/MpiManager.h:173:30: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  173 |         MPI_Status send_stat[L_MPI_DIRS];               ///< Array of statuses for each ISend
      |                              ^~~~~~~~~~
      |                              L_MPI_dir
../../../src/../inc/MpiManager.h:179:26: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  179 |                 int size[L_MPI_DIRS];   ///< Buffer sizes for each direction
      |                          ^~~~~~~~~~
      |                          L_MPI_dir
In file included from ../../../src/../inc/GridUtils.h:27,
                 from ../../../src/../inc/stdafx.h:208:
../../../src/../inc/GridObj.h:185:93: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  185 |                         std::vector<int> direction, int order, int i, int j, int k, int p = NULL, int max = 1);
      |                                                                                             ^~~~
../../../src/../inc/GridUtils.h:44:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                      ^~~~~~
      |                                      L_dims
../../../src/../inc/GridUtils.h:44:46: error: 'L_NUM_VELS' was not declared in this scope
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                              ^~~~~~~~~~
../../../src/../inc/GridUtils.h:45:40: error: 'L_NUM_VELS' was not declared in this scope
   45 |         static const int dir_opposites[L_NUM_VELS];                     ///< Array with hardcoded direction numbering for bounce-back opposites
      |                                        ^~~~~~~~~~
../../../src/../inc/GridUtils.h:62:42: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   62 |         static double vecnorm(double vec[L_DIMS]);                                                              // Function: vecnorm + overloads
      |                                          ^~~~~~
      |                                          L_dims
In file included from ../../../src/../inc/stdafx.h:209:
../../../src/../inc/GridUnits.h: In static member function 'static double GridUnits::ulat2uphys(T, GridObj*)':
../../../src/../inc/GridUnits.h:58:55: error: 'L_PHYSICAL_U' was not declared in this scope
   58 |                 return (u_lattice * currentGrid->dh * L_PHYSICAL_U) / currentGrid->dt;
      |                                                       ^~~~~~~~~~~~
../../../src/../inc/stdafx.h: At global scope:
../../../src/../inc/stdafx.h:217:23: error: 'L_NUM_VELS' was not declared in this scope
  217 | extern const int c[3][L_NUM_VELS];                              ///< Lattice velocities
      |                       ^~~~~~~~~~
../../../src/../inc/stdafx.h:218:24: error: 'L_NUM_VELS' was not declared in this scope
  218 | extern const int c_opt[L_NUM_VELS][3];                  ///< Lattice velocities optimised arrangement
      |                        ^~~~~~~~~~
../../../src/../inc/stdafx.h:219:23: error: 'L_NUM_VELS' was not declared in this scope
  219 | extern const double w[L_NUM_VELS];                              ///< Quadrature weights
      |                       ^~~~~~~~~~
In file included from ../../../src/../inc/BFLBody.h:27,
                 from ../../../src/BFLBody.cpp:24:
../../../src/../inc/Body.h: In constructor 'Body<MarkerType>::Body(GridObj*, int, std::vector<double>&, double, double, std::vector<double>&)':
../../../src/../inc/Body.h:463:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  463 |         std::vector<double> position(L_DIMS, 0);
      |                                      ^~~~~~
      |                                      L_dims
../../../src/BFLBody.cpp: In member function 'void BFLBody::initialise()':
../../../src/BFLBody.cpp:100:18: error: 'L_NUM_VELS' was not declared in this scope
  100 |         Q.resize(L_NUM_VELS * markers.size(), -1.0);
      |                  ^~~~~~~~~~
../../../src/BFLBody.cpp: In member function 'void BFLBody::computeQ(int, int, int, GridObj*)':
../../../src/BFLBody.cpp:337:41: error: 'L_NUM_VELS' was not declared in this scope
  337 |                 for (int vel = 0; vel < L_NUM_VELS - 1; vel+=2) {
      |                                         ^~~~~~~~~~
../../../src/BFLBody.cpp:340:39: error: 'c' was not declared in this scope; did you mean 'cs'?
  340 |                         dest_i = (i + c[0][vel] + g->N_lim) % g->N_lim;
      |                                       ^
      |                                       cs
../../../src/BFLBody.cpp: In member function 'void BFLBody::computeQ(int, int, GridObj*)':
../../../src/BFLBody.cpp:490:41: error: 'L_NUM_VELS' was not declared in this scope
  490 |                 for (int vel = 0; vel < L_NUM_VELS - 1; vel++) {
      |                                         ^~~~~~~~~~
../../../src/BFLBody.cpp:493:39: error: 'c' was not declared in this scope; did you mean 'cs'?
  493 |                         dest_i = (i + c[0][vel] + g->N_lim) % g->N_lim;
      |                                       ^
      |                                       cs
In file included from ../../../src/../inc/stdafx.h:205,
                 from ../../../src/BFLMarker.cpp:23:
../../../src/../inc/GridManager.h:59:28: error: 'L_NUM_LEVELS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                            ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:59:43: error: 'L_NUM_REGIONS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                           ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:32: error: 'L_NUM_LEVELS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:47: error: 'L_NUM_REGIONS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:32: error: 'L_NUM_LEVELS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:47: error: 'L_NUM_REGIONS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:207:
../../../src/../inc/MpiManager.h:115:28: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  115 |         int neighbour_rank[L_MPI_DIRS];                         ///< Neighbour rank number for each direction in Cartesian topology
      |                            ^~~~~~~~~~
      |                            L_MPI_dir
../../../src/../inc/MpiManager.h:116:30: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                              ^~~~~~
      |                              L_dims
../../../src/../inc/MpiManager.h:116:38: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                                      ^~~~~~~~~~
      |                                      L_MPI_dir
../../../src/../inc/MpiManager.h:139:25: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  139 |         int rank_coords[L_DIMS];        ///< Coordinates in MPI Cartesian topology
      |                         ^~~~~~
      |                         L_dims
../../../src/../inc/MpiManager.h:172:35: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  172 |         MPI_Request send_requests[L_MPI_DIRS];  ///< Array of request structures for handles to posted ISends
      |                                   ^~~~~~~~~~
      |                                   L_MPI_dir
../../../src/../inc/MpiManager.h:173:30: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  173 |         MPI_Status send_stat[L_MPI_DIRS];               ///< Array of statuses for each ISend
      |                              ^~~~~~~~~~
      |                              L_MPI_dir
../../../src/../inc/MpiManager.h:179:26: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  179 |                 int size[L_MPI_DIRS];   ///< Buffer sizes for each direction
      |                          ^~~~~~~~~~
      |                          L_MPI_dir
In file included from ../../../src/../inc/GridUtils.h:27,
                 from ../../../src/../inc/stdafx.h:208:
../../../src/../inc/GridObj.h:185:93: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  185 |                         std::vector<int> direction, int order, int i, int j, int k, int p = NULL, int max = 1);
      |                                                                                             ^~~~
../../../src/../inc/GridUtils.h:44:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                      ^~~~~~
      |                                      L_dims
../../../src/../inc/GridUtils.h:44:46: error: 'L_NUM_VELS' was not declared in this scope
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                              ^~~~~~~~~~
../../../src/../inc/GridUtils.h:45:40: error: 'L_NUM_VELS' was not declared in this scope
   45 |         static const int dir_opposites[L_NUM_VELS];                     ///< Array with hardcoded direction numbering for bounce-back opposites
      |                                        ^~~~~~~~~~
../../../src/../inc/GridUtils.h:62:42: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   62 |         static double vecnorm(double vec[L_DIMS]);                                                              // Function: vecnorm + overloads
      |                                          ^~~~~~
      |                                          L_dims
In file included from ../../../src/../inc/stdafx.h:209:
../../../src/../inc/GridUnits.h: In static member function 'static double GridUnits::ulat2uphys(T, GridObj*)':
../../../src/../inc/GridUnits.h:58:55: error: 'L_PHYSICAL_U' was not declared in this scope
   58 |                 return (u_lattice * currentGrid->dh * L_PHYSICAL_U) / currentGrid->dt;
      |                                                       ^~~~~~~~~~~~
../../../src/../inc/stdafx.h: At global scope:
../../../src/../inc/stdafx.h:217:23: error: 'L_NUM_VELS' was not declared in this scope
  217 | extern const int c[3][L_NUM_VELS];                              ///< Lattice velocities
      |                       ^~~~~~~~~~
../../../src/../inc/stdafx.h:218:24: error: 'L_NUM_VELS' was not declared in this scope
  218 | extern const int c_opt[L_NUM_VELS][3];                  ///< Lattice velocities optimised arrangement
      |                        ^~~~~~~~~~
../../../src/../inc/stdafx.h:219:23: error: 'L_NUM_VELS' was not declared in this scope
  219 | extern const double w[L_NUM_VELS];                              ///< Quadrature weights
      |                       ^~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:205,
                 from ../../../src/FEMBody.cpp:23:
../../../src/../inc/GridManager.h:59:28: error: 'L_NUM_LEVELS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                            ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:59:43: error: 'L_NUM_REGIONS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                           ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:32: error: 'L_NUM_LEVELS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:47: error: 'L_NUM_REGIONS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:32: error: 'L_NUM_LEVELS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:47: error: 'L_NUM_REGIONS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:207:
../../../src/../inc/MpiManager.h:115:28: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  115 |         int neighbour_rank[L_MPI_DIRS];                         ///< Neighbour rank number for each direction in Cartesian topology
      |                            ^~~~~~~~~~
      |                            L_MPI_dir
../../../src/../inc/MpiManager.h:116:30: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                              ^~~~~~
      |                              L_dims
../../../src/../inc/MpiManager.h:116:38: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                                      ^~~~~~~~~~
      |                                      L_MPI_dir
../../../src/../inc/MpiManager.h:139:25: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  139 |         int rank_coords[L_DIMS];        ///< Coordinates in MPI Cartesian topology
      |                         ^~~~~~
      |                         L_dims
../../../src/../inc/MpiManager.h:172:35: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  172 |         MPI_Request send_requests[L_MPI_DIRS];  ///< Array of request structures for handles to posted ISends
      |                                   ^~~~~~~~~~
      |                                   L_MPI_dir
../../../src/../inc/MpiManager.h:173:30: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  173 |         MPI_Status send_stat[L_MPI_DIRS];               ///< Array of statuses for each ISend
      |                              ^~~~~~~~~~
      |                              L_MPI_dir
../../../src/../inc/MpiManager.h:179:26: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  179 |                 int size[L_MPI_DIRS];   ///< Buffer sizes for each direction
      |                          ^~~~~~~~~~
      |                          L_MPI_dir
In file included from ../../../src/../inc/GridUtils.h:27,
                 from ../../../src/../inc/stdafx.h:208:
../../../src/../inc/GridObj.h:185:93: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  185 |                         std::vector<int> direction, int order, int i, int j, int k, int p = NULL, int max = 1);
      |                                                                                             ^~~~
../../../src/../inc/GridUtils.h:44:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                      ^~~~~~
      |                                      L_dims
../../../src/../inc/GridUtils.h:44:46: error: 'L_NUM_VELS' was not declared in this scope
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                              ^~~~~~~~~~
../../../src/../inc/GridUtils.h:45:40: error: 'L_NUM_VELS' was not declared in this scope
   45 |         static const int dir_opposites[L_NUM_VELS];                     ///< Array with hardcoded direction numbering for bounce-back opposites
      |                                        ^~~~~~~~~~
../../../src/../inc/GridUtils.h:62:42: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   62 |         static double vecnorm(double vec[L_DIMS]);                                                              // Function: vecnorm + overloads
      |                                          ^~~~~~
      |                                          L_dims

. . .

../../../src/GridObj_init_grids.cpp:1021:100: error: 'L_WALL_RIGHT' was not declared in this scope
 1021 |                                                 LBM_setBCPrecedence(LatTyp(i, j, k, M_lim, K_lim), L_WALL_RIGHT);
      |                                                                                                    ^~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1068:32: error: 'L_WALL_THICKNESS_BOTTOM' was not declared in this scope
 1068 |                 if (YPos[j] <= L_WALL_THICKNESS_BOTTOM)
      |                                ^~~~~~~~~~~~~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1075:100: error: 'L_WALL_BOTTOM' was not declared in this scope
 1075 |                                                 LBM_setBCPrecedence(LatTyp(i, j, k, M_lim, K_lim), L_WALL_BOTTOM);
      |                                                                                                    ^~~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1085:60: error: 'class GridManager' has no member named 'global_edges'
 1085 |                 if (YPos[j] >= GridManager::getInstance()->global_edges[eYMax][0] - L_WALL_THICKNESS_TOP)
      |                                                            ^~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1085:85: error: 'L_WALL_THICKNESS_TOP' was not declared in this scope
 1085 |                 if (YPos[j] >= GridManager::getInstance()->global_edges[eYMax][0] - L_WALL_THICKNESS_TOP)
      |                                                                                     ^~~~~~~~~~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1092:100: error: 'L_WALL_TOP' was not declared in this scope
 1092 |                                                 LBM_setBCPrecedence(LatTyp(i, j, k, M_lim, K_lim), L_WALL_TOP);
      |                                                                                                    ^~~~~~~~~~
../../../src/GridObj_init_grids.cpp: In member function 'void GridObj::LBM_initRefinedLab(GridObj&)':
../../../src/GridObj_init_grids.cpp:1119:46: error: 'L_NUM_LEVELS' was not declared in this scope
 1119 |         int gm_idx = level + region_number * L_NUM_LEVELS;
      |                                              ^~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp:1123:32: error: 'class GridManager' has no member named 'global_edges'
 1123 |                 edges[d] = gm->global_edges[d][gm_idx];
      |                                ^~~~~~~~~~~~
../../../src/GridObj_init_grids.cpp: In member function 'void GridObj::_LBM_initSetInletProfile()':
../../../src/GridObj_init_grids.cpp:1354:47: error: 'L_UX0' was not declared in this scope
 1354 |                 ux_in[j] = GridUnits::ud2ulbm(L_UX0, this);
      |                                               ^~~~~
../../../src/GridObj_init_grids.cpp:1355:47: error: 'L_UY0' was not declared in this scope
 1355 |                 uy_in[j] = GridUnits::ud2ulbm(L_UY0, this);
      |                                               ^~~~~
../../../src/GridObj_init_grids.cpp:1356:47: error: 'L_UZ0' was not declared in this scope
 1356 |                 uz_in[j] = GridUnits::ud2ulbm(L_UZ0, this);
      |                                               ^~~~~
In file included from ../../../src/../inc/stdafx.h:205,
                 from ../../../src/GridObj_ops_io.cpp:25:
../../../src/../inc/GridManager.h:59:28: error: 'L_NUM_LEVELS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                            ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:59:43: error: 'L_NUM_REGIONS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                           ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:32: error: 'L_NUM_LEVELS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:47: error: 'L_NUM_REGIONS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:32: error: 'L_NUM_LEVELS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:47: error: 'L_NUM_REGIONS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:207:
../../../src/../inc/MpiManager.h:115:28: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  115 |         int neighbour_rank[L_MPI_DIRS];                         ///< Neighbour rank number for each direction in Cartesian topology
      |                            ^~~~~~~~~~
      |                            L_MPI_dir
../../../src/../inc/MpiManager.h:116:30: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                              ^~~~~~
      |                              L_dims
../../../src/../inc/MpiManager.h:116:38: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                                      ^~~~~~~~~~
      |                                      L_MPI_dir
../../../src/../inc/MpiManager.h:139:25: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  139 |         int rank_coords[L_DIMS];        ///< Coordinates in MPI Cartesian topology
      |                         ^~~~~~
      |                         L_dims
../../../src/../inc/MpiManager.h:172:35: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  172 |         MPI_Request send_requests[L_MPI_DIRS];  ///< Array of request structures for handles to posted ISends
      |                                   ^~~~~~~~~~
      |                                   L_MPI_dir
../../../src/../inc/MpiManager.h:173:30: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  173 |         MPI_Status send_stat[L_MPI_DIRS];               ///< Array of statuses for each ISend
      |                              ^~~~~~~~~~
      |                              L_MPI_dir
../../../src/../inc/MpiManager.h:179:26: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  179 |                 int size[L_MPI_DIRS];   ///< Buffer sizes for each direction
      |                          ^~~~~~~~~~
      |                          L_MPI_dir
In file included from ../../../src/../inc/GridUtils.h:27,
                 from ../../../src/../inc/stdafx.h:208:
../../../src/../inc/GridObj.h:185:93: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  185 |                         std::vector<int> direction, int order, int i, int j, int k, int p = NULL, int max = 1);
      |                                                                                             ^~~~
../../../src/../inc/GridUtils.h:44:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                      ^~~~~~
      |                                      L_dims
../../../src/../inc/GridUtils.h:44:46: error: 'L_NUM_VELS' was not declared in this scope
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                              ^~~~~~~~~~
../../../src/../inc/GridUtils.h:45:40: error: 'L_NUM_VELS' was not declared in this scope
   45 |         static const int dir_opposites[L_NUM_VELS];                     ///< Array with hardcoded direction numbering for bounce-back opposites
      |                                        ^~~~~~~~~~
../../../src/../inc/GridUtils.h:62:42: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   62 |         static double vecnorm(double vec[L_DIMS]);                                                              // Function: vecnorm + overloads
      |                                          ^~~~~~
      |                                          L_dims
In file included from ../../../src/../inc/stdafx.h:209:
../../../src/../inc/GridUnits.h: In static member function 'static double GridUnits::ulat2uphys(T, GridObj*)':
../../../src/../inc/GridUnits.h:58:55: error: 'L_PHYSICAL_U' was not declared in this scope
   58 |                 return (u_lattice * currentGrid->dh * L_PHYSICAL_U) / currentGrid->dt;
      |                                                       ^~~~~~~~~~~~
../../../src/../inc/stdafx.h: At global scope:
../../../src/../inc/stdafx.h:217:23: error: 'L_NUM_VELS' was not declared in this scope
  217 | extern const int c[3][L_NUM_VELS];                              ///< Lattice velocities
      |                       ^~~~~~~~~~
../../../src/../inc/stdafx.h:218:24: error: 'L_NUM_VELS' was not declared in this scope
  218 | extern const int c_opt[L_NUM_VELS][3];                  ///< Lattice velocities optimised arrangement
      |                        ^~~~~~~~~~
../../../src/../inc/stdafx.h:219:23: error: 'L_NUM_VELS' was not declared in this scope
  219 | extern const double w[L_NUM_VELS];                              ///< Quadrature weights
      |                       ^~~~~~~~~~
In file included from ../../../src/../inc/IBBody.h:29,
                 from ../../../src/../inc/ObjectManager.h:30,
                 from ../../../src/GridObj_ops_io.cpp:27:
../../../src/../inc/Body.h: In constructor 'Body<MarkerType>::Body(GridObj*, int, std::vector<double>&, double, double, std::vector<double>&)':
../../../src/../inc/Body.h:463:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  463 |         std::vector<double> position(L_DIMS, 0);
      |                                      ^~~~~~
      |                                      L_dims
In file included from ../../../src/GridObj_ops_io.cpp:28:
../../../src/../inc/hdf5luma.h: In function 'void hdf5_writeDataSet(hid_t&, hid_t&, hid_t&, eHdf5SlabType, GridObj*, T*, hid_t, bool*, int, double*, HDFstruct)':
../../../src/../inc/hdf5luma.h:74:50: error: 'L_NUM_LEVELS' was not declared in this scope
   74 |         else idx = g->level + g->region_number * L_NUM_LEVELS;
      |                                                  ^~~~~~~~~~~~
../../../src/../inc/hdf5luma.h:128:26: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  128 |         hsize_t f_offset[L_DIMS], f_block[L_DIMS], f_count[L_DIMS], f_stride[L_DIMS];
      |                          ^~~~~~
      |                          L_dims
../../../src/../inc/hdf5luma.h:150:42: error: 'f_offset' was not declared in this scope; did you mean 'm_offset'?
  150 |         for (int d = 0; d < L_DIMS; d++) f_offset[d] = 0;
      |                                          ^~~~~~~~
      |                                          m_offset
../../../src/../inc/hdf5luma.h:155:9: error: 'f_block' was not declared in this scope; did you mean 'm_block'?
  155 |         f_block[0] = i_end - i_start + 1;
      |         ^~~~~~~
      |         m_block
../../../src/../inc/hdf5luma.h:158:9: error: 'f_count' was not declared in this scope; did you mean 'm_count'?
  158 |         f_count[0] = 1;
      |         ^~~~~~~
      |         m_count
../../../src/../inc/hdf5luma.h:161:9: error: 'f_stride' was not declared in this scope; did you mean 'm_stride'?
  161 |         f_stride[0] = f_block[0];
      |         ^~~~~~~~
      |         m_stride
../../../src/../inc/hdf5luma.h:187:65: error: 'f_offset' was not declared in this scope; did you mean 'm_offset'?
  187 |         status = H5Sselect_hyperslab(filespace, H5S_SELECT_SET, f_offset, f_stride, f_count, f_block);
      |                                                                 ^~~~~~~~
      |                                                                 m_offset
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::io_textout(std::string)':
../../../src/GridObj_ops_io.cpp:45:30: error: 'L_OUTPUT_PRECISION' was not declared in this scope
   45 |         gridoutput.precision(L_OUTPUT_PRECISION);
      |                              ^~~~~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:53:13: error: 'L_NUM_LEVELS' was not declared in this scope
   53 |         if (L_NUM_LEVELS == 0) ex_str = to_string(0);
      |             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:55:13: error: 'L_NUM_LEVELS' was not declared in this scope
   55 |         if (L_NUM_LEVELS == 0) NumReg_str = to_string(0);
      |             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:60:52: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   60 |                         + string("D") +  to_string(L_DIMS)
      |                                                    ^~~~~~
      |                                                    L_dims
../../../src/GridObj_ops_io.cpp:153:40: error: 'L_NUM_VELS' was not declared in this scope
  153 |                 for (size_t v = 0; v < L_NUM_VELS; v++) {
      |                                        ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp:176:40: error: 'L_NUM_VELS' was not declared in this scope
  176 |                 for (size_t v = 0; v < L_NUM_VELS; v++) {
      |                                        ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::io_fgaout()':
../../../src/GridObj_ops_io.cpp:278:14: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  278 |         if ((L_DIMS == 2) || (L_DIMS == 3)){
      |              ^~~~~~
      |              L_dims
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::_io_fgaout(int)':
../../../src/GridObj_ops_io.cpp:304:30: error: 'L_OUTPUT_PRECISION' was not declared in this scope
  304 |         gridoutput.precision(L_OUTPUT_PRECISION);
      |                              ^~~~~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:315:13: error: 'L_NUM_LEVELS' was not declared in this scope
  315 |         if (L_NUM_LEVELS == 0) NumReg_str = to_string(0);
      |             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:320:43: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  320 |                 + string("D") + to_string(L_DIMS)
      |                                           ^~~~~~
      |                                           L_dims
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::io_restart(eIOFlag)':
../../../src/GridObj_ops_io.cpp:455:57: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  455 |                                         for (v = 0; v < L_DIMS; v++) {
      |                                                         ^~~~~~
      |                                                         L_dims
../../../src/GridObj_ops_io.cpp:464:57: error: 'L_NUM_VELS' was not declared in this scope
  464 |                                         for (v = 0; v < L_NUM_VELS; v++) {
      |                                                         ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp:491:29: error: 'L_NUM_LEVELS' was not declared in this scope
  491 |                 if (level < L_NUM_LEVELS && subGrid.size()) {
      |                             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:553:41: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  553 |                         for (v = 0; v < L_DIMS; v++) {
      |                                         ^~~~~~
      |                                         L_dims
../../../src/GridObj_ops_io.cpp:563:41: error: 'L_NUM_VELS' was not declared in this scope
  563 |                         for (v = 0; v < L_NUM_VELS; v++) {
      |                                         ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::io_probeOutput()':
../../../src/GridObj_ops_io.cpp:612:29: error: 'L_OUTPUT_PRECISION' was not declared in this scope
  612 |         probefile.precision(L_OUTPUT_PRECISION);
      |                             ^~~~~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:623:23: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  623 |         double pspace[L_DIMS];
      |                       ^~~~~~
      |                       L_dims
../../../src/GridObj_ops_io.cpp:624:13: error: 'cNumProbes' was not declared in this scope; did you mean 'nProbes'?
  624 |         if (cNumProbes[0] > 1)
      |             ^~~~~~~~~~
      |             nProbes
../../../src/GridObj_ops_io.cpp:625:17: error: 'pspace' was not declared in this scope; did you mean 'isspace'?
  625 |                 pspace[0] = abs(cProbeLimsX[1] - cProbeLimsX[0]) / (cNumProbes[0] - 1);
      |                 ^~~~~~
      |                 isspace
../../../src/GridObj_ops_io.cpp:625:33: error: 'cProbeLimsX' was not declared in this scope; did you mean 'zProbeLims'?
  625 |                 pspace[0] = abs(cProbeLimsX[1] - cProbeLimsX[0]) / (cNumProbes[0] - 1);
      |                                 ^~~~~~~~~~~
      |                                 zProbeLims
../../../src/GridObj_ops_io.cpp:626:13: error: 'cNumProbes' was not declared in this scope; did you mean 'nProbes'?
  626 |         if (cNumProbes[1] > 1)
      |             ^~~~~~~~~~
      |             nProbes
../../../src/GridObj_ops_io.cpp:627:17: error: 'pspace' was not declared in this scope; did you mean 'isspace'?
  627 |                 pspace[1] = abs(cProbeLimsY[1] - cProbeLimsY[0]) / (cNumProbes[1] - 1);
      |                 ^~~~~~
      |                 isspace
../../../src/GridObj_ops_io.cpp:627:33: error: 'cProbeLimsY' was not declared in this scope; did you mean 'zProbeLims'?
  627 |                 pspace[1] = abs(cProbeLimsY[1] - cProbeLimsY[0]) / (cNumProbes[1] - 1);
      |                                 ^~~~~~~~~~~
      |                                 zProbeLims
../../../src/GridObj_ops_io.cpp:634:25: error: 'cNumProbes' was not declared in this scope; did you mean 'nProbes'?
  634 |         for (i = 0; i < cNumProbes[0]; i++) {
      |                         ^~~~~~~~~~
      |                         nProbes
../../../src/GridObj_ops_io.cpp:635:21: error: 'cProbeLimsX' was not declared in this scope; did you mean 'zProbeLims'?
  635 |                 x = cProbeLimsX[0] + i*pspace[0];
      |                     ^~~~~~~~~~~
      |                     zProbeLims
../../../src/GridObj_ops_io.cpp:635:40: error: 'pspace' was not declared in this scope; did you mean 'isspace'?
  635 |                 x = cProbeLimsX[0] + i*pspace[0];
      |                                        ^~~~~~
      |                                        isspace
../../../src/GridObj_ops_io.cpp:638:29: error: 'cProbeLimsY' was not declared in this scope; did you mean 'zProbeLims'?
  638 |                         y = cProbeLimsY[0] + j*pspace[1];
      |                             ^~~~~~~~~~~
      |                             zProbeLims
../../../src/GridObj_ops_io.cpp:650:48: error: 'L_NUM_LEVELS' was not declared in this scope
  650 |                                 for (int lev = L_NUM_LEVELS; lev >= 0; --lev)
      |                                                ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:652:65: error: 'L_NUM_REGIONS' was not declared in this scope
  652 |                                         for (int reg = 0; reg < L_NUM_REGIONS; ++reg)
      |                                                                 ^~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp: In member function 'void GridObj::io_lite(double, std::string)':
../../../src/GridObj_ops_io.cpp:718:28: error: 'L_OUTPUT_PRECISION' was not declared in this scope
  718 |         litefile.precision(L_OUTPUT_PRECISION);
      |                            ^~~~~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:748:57: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  748 |                                         for (v = 0; v < L_DIMS; v++) {
      |                                                         ^~~~~~
      |                                                         L_dims
../../../src/GridObj_ops_io.cpp:756:57: error: 'L_NUM_VELS' was not declared in this scope
  756 |                                         for (v = 0; v < L_NUM_VELS; v++) {
      |                                                         ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp:759:57: error: 'L_NUM_VELS' was not declared in this scope
  759 |                                         for (v = 0; v < L_NUM_VELS; v++) {
      |                                                         ^~~~~~~~~~
../../../src/GridObj_ops_io.cpp:803:13: error: 'L_NUM_LEVELS' was not declared in this scope
  803 |         if (L_NUM_LEVELS > level) {
      |             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp: In member function 'int GridObj::io_hdf5(double)':
../../../src/GridObj_ops_io.cpp:830:45: error: 'class GridManager' has no member named 'global_edges'
  830 |                 minEdges[eXDirection] = gm->global_edges[eXMin][level + region_number * L_NUM_LEVELS];
      |                                             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:830:89: error: 'L_NUM_LEVELS' was not declared in this scope
  830 |                 minEdges[eXDirection] = gm->global_edges[eXMin][level + region_number * L_NUM_LEVELS];
      |                                                                                         ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:831:45: error: 'class GridManager' has no member named 'global_edges'
  831 |                 minEdges[eYDirection] = gm->global_edges[eYMin][level + region_number * L_NUM_LEVELS];
      |                                             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:832:45: error: 'class GridManager' has no member named 'global_edges'
  832 |                 minEdges[eZDirection] = gm->global_edges[eZMin][level + region_number * L_NUM_LEVELS];
      |                                             ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:865:23: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  865 |         hsize_t dimsf[L_DIMS];
      |                       ^~~~~~
      |                       L_dims
../../../src/GridObj_ops_io.cpp:893:97: error: 'L_NUM_LEVELS' was not declared in this scope
  893 |                 TL_present[eXDirection] = gm->subgrid_tlayer_key[eXMin][level + region_number * L_NUM_LEVELS - 1];
      |                                                                                                 ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:965:51: error: 'L_NUM_LEVELS' was not declared in this scope
  965 |                 int idx = level + region_number * L_NUM_LEVELS;
      |                                                   ^~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:966:17: error: 'dimsf' was not declared in this scope; did you mean 'dimsa'?
  966 |                 dimsf[0] = gm->global_size[eXDirection][idx];
      |                 ^~~~~
      |                 dimsa
../../../src/GridObj_ops_io.cpp:966:32: error: 'class GridManager' has no member named 'global_size'; did you mean 'local_size'?
  966 |                 dimsf[0] = gm->global_size[eXDirection][idx];
      |                                ^~~~~~~~~~~
      |                                local_size
../../../src/GridObj_ops_io.cpp:967:32: error: 'class GridManager' has no member named 'global_size'; did you mean 'local_size'?
  967 |                 dimsf[1] = gm->global_size[eYDirection][idx];
      |                                ^~~~~~~~~~~
      |                                local_size
../../../src/GridObj_ops_io.cpp:1040:25: error: 'buffer_int_array' was not declared in this scope; did you mean 'buffer_int'?
 1040 |                         buffer_int_array[0] = static_cast<int>(dimsf[0]);
      |                         ^~~~~~~~~~~~~~~~
      |                         buffer_int
../../../src/GridObj_ops_io.cpp:1058:38: error: 'L_TOTAL_TIMESTEPS' was not declared in this scope
 1058 |                         buffer_int = L_TOTAL_TIMESTEPS;
      |                                      ^~~~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:1068:38: error: 'L_GRID_OUT_FREQ' was not declared in this scope
 1068 |                         buffer_int = L_GRID_OUT_FREQ;
      |                                      ^~~~~~~~~~~~~~~
../../../src/GridObj_ops_io.cpp:1092:38: error: 'L_NUM_REGIONS' was not declared in this scope
 1092 |                         buffer_int = L_NUM_REGIONS;
      |                                      ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:205,
                 from ../../../src/GridObj_ops_lbm.cpp:27:
../../../src/../inc/GridManager.h:59:28: error: 'L_NUM_LEVELS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                            ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:59:43: error: 'L_NUM_REGIONS' was not declared in this scope
   59 |         int global_size[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                           ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:32: error: 'L_NUM_LEVELS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:68:47: error: 'L_NUM_REGIONS' was not declared in this scope
   68 |         double global_edges[6][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:32: error: 'L_NUM_LEVELS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                ^~~~~~~~~~~~
../../../src/../inc/GridManager.h:87:47: error: 'L_NUM_REGIONS' was not declared in this scope
   87 |         bool periodic_flags[3][L_NUM_LEVELS * L_NUM_REGIONS + 1];
      |                                               ^~~~~~~~~~~~~
In file included from ../../../src/../inc/stdafx.h:207:
../../../src/../inc/MpiManager.h:115:28: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  115 |         int neighbour_rank[L_MPI_DIRS];                         ///< Neighbour rank number for each direction in Cartesian topology
      |                            ^~~~~~~~~~
      |                            L_MPI_dir
../../../src/../inc/MpiManager.h:116:30: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                              ^~~~~~
      |                              L_dims
../../../src/../inc/MpiManager.h:116:38: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  116 |         int neighbour_coords[L_DIMS][L_MPI_DIRS];       ///< Coordinates in MPI topology of neighbour ranks
      |                                      ^~~~~~~~~~
      |                                      L_MPI_dir
../../../src/../inc/MpiManager.h:139:25: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  139 |         int rank_coords[L_DIMS];        ///< Coordinates in MPI Cartesian topology
      |                         ^~~~~~
      |                         L_dims
../../../src/../inc/MpiManager.h:172:35: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  172 |         MPI_Request send_requests[L_MPI_DIRS];  ///< Array of request structures for handles to posted ISends
      |                                   ^~~~~~~~~~
      |                                   L_MPI_dir
../../../src/../inc/MpiManager.h:173:30: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  173 |         MPI_Status send_stat[L_MPI_DIRS];               ///< Array of statuses for each ISend
      |                              ^~~~~~~~~~
      |                              L_MPI_dir
../../../src/../inc/MpiManager.h:179:26: error: 'L_MPI_DIRS' was not declared in this scope; did you mean 'L_MPI_dir'?
  179 |                 int size[L_MPI_DIRS];   ///< Buffer sizes for each direction
      |                          ^~~~~~~~~~
      |                          L_MPI_dir
In file included from ../../../src/../inc/GridUtils.h:27,
                 from ../../../src/../inc/stdafx.h:208:
../../../src/../inc/GridObj.h:185:93: warning: converting to non-pointer type 'int' from NULL [-Wconversion-null]
  185 |                         std::vector<int> direction, int order, int i, int j, int k, int p = NULL, int max = 1);
      |                                                                                             ^~~~
../../../src/../inc/GridUtils.h:44:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                      ^~~~~~
      |                                      L_dims
../../../src/../inc/GridUtils.h:44:46: error: 'L_NUM_VELS' was not declared in this scope
   44 |         static const int dir_reflect[L_DIMS][L_NUM_VELS];       ///< Array with hardcoded direction numbering for specular reflection
      |                                              ^~~~~~~~~~
../../../src/../inc/GridUtils.h:45:40: error: 'L_NUM_VELS' was not declared in this scope
   45 |         static const int dir_opposites[L_NUM_VELS];                     ///< Array with hardcoded direction numbering for bounce-back opposites
      |                                        ^~~~~~~~~~
../../../src/../inc/GridUtils.h:62:42: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
   62 |         static double vecnorm(double vec[L_DIMS]);                                                              // Function: vecnorm + overloads
      |                                          ^~~~~~
      |                                          L_dims
In file included from ../../../src/../inc/stdafx.h:209:
../../../src/../inc/GridUnits.h: In static member function 'static double GridUnits::ulat2uphys(T, GridObj*)':
../../../src/../inc/GridUnits.h:58:55: error: 'L_PHYSICAL_U' was not declared in this scope
   58 |                 return (u_lattice * currentGrid->dh * L_PHYSICAL_U) / currentGrid->dt;
      |                                                       ^~~~~~~~~~~~
../../../src/../inc/stdafx.h: At global scope:
../../../src/../inc/stdafx.h:217:23: error: 'L_NUM_VELS' was not declared in this scope
  217 | extern const int c[3][L_NUM_VELS];                              ///< Lattice velocities
      |                       ^~~~~~~~~~
../../../src/../inc/stdafx.h:218:24: error: 'L_NUM_VELS' was not declared in this scope
  218 | extern const int c_opt[L_NUM_VELS][3];                  ///< Lattice velocities optimised arrangement
      |                        ^~~~~~~~~~
../../../src/../inc/stdafx.h:219:23: error: 'L_NUM_VELS' was not declared in this scope
  219 | extern const double w[L_NUM_VELS];                              ///< Quadrature weights
      |                       ^~~~~~~~~~
In file included from ../../../src/../inc/IBBody.h:29,
                 from ../../../src/../inc/ObjectManager.h:30,
                 from ../../../src/GridObj_ops_lbm.cpp:30:
../../../src/../inc/Body.h: In constructor 'Body<MarkerType>::Body(GridObj*, int, std::vector<double>&, double, double, std::vector<double>&)':
../../../src/../inc/Body.h:463:38: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  463 |         std::vector<double> position(L_DIMS, 0);
      |                                      ^~~~~~
      |                                      L_dims
../../../src/GridObj_ops_lbm.cpp: In member function 'void GridObj::LBM_kbcCollide(int, int, int, IVector<double>&)':
../../../src/GridObj_ops_lbm.cpp:47:19: error: 'L_NUM_VELS' was not declared in this scope
   47 |         double ds[L_NUM_VELS], dh[L_NUM_VELS], gamma;
      |                   ^~~~~~~~~~
../../../src/GridObj_ops_lbm.cpp:181:61: error: 'c' was not declared in this scope; did you mean 'cs'?
  181 |                 M20 += f(i,j,k,v,M_lim,K_lim,L_NUM_VELS) * (c[0][v] * c[0][v]);
      |                                                             ^
      |                                                             cs
../../../src/GridObj_ops_lbm.cpp:194:21: error: 'c' was not declared in this scope; did you mean 'cs'?
  194 |                 if (c[0][v] == 0 && c[1][v] == 0) {
      |                     ^
      |                     cs
../../../src/GridObj_ops_lbm.cpp:197:25: error: 'ds' was not declared in this scope; did you mean 'dh'?
  197 |                         ds[v] = 0.0;
      |                         ^~
      |                         dh
../../../src/GridObj_ops_lbm.cpp:202:25: error: 'ds' was not declared in this scope; did you mean 'dh'?
  202 |                         ds[v] = ( 0.25 * (M20 - M02) ) -
      |                         ^~
      |                         dh
../../../src/GridObj_ops_lbm.cpp:208:25: error: 'ds' was not declared in this scope; did you mean 'dh'?
  208 |                         ds[v] = ( -0.25 * (M20 - M02) ) -
      |                         ^~
      |                         dh
../../../src/GridObj_ops_lbm.cpp:214:25: error: 'ds' was not declared in this scope; did you mean 'dh'?
  214 |                         ds[v] = ( 0.25 * c[0][v] * c[1][v] * M11 ) -
      |                         ^~
      |                         dh
../../../src/GridObj_ops_lbm.cpp:221:19: error: invalid types 'double[int]' for array subscript
  221 |                 dh[v] = f(i,j,k,v,M_lim,K_lim,L_NUM_VELS) - feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS) - ds[v];
      |                   ^
../../../src/GridObj_ops_lbm.cpp:221:99: error: 'ds' was not declared in this scope; did you mean 'dh'?
  221 |                 dh[v] = f(i,j,k,v,M_lim,K_lim,L_NUM_VELS) - feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS) - ds[v];
      |                                                                                                   ^~
      |                                                                                                   dh
../../../src/GridObj_ops_lbm.cpp:232:29: error: 'ds' was not declared in this scope; did you mean 'dh'?
  232 |                 top_prod += ds[v] * dh[v] / feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS);
      |                             ^~
      |                             dh
../../../src/GridObj_ops_lbm.cpp:232:39: error: invalid types 'double[int]' for array subscript
  232 |                 top_prod += ds[v] * dh[v] / feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS);
      |                                       ^
../../../src/GridObj_ops_lbm.cpp:233:31: error: invalid types 'double[int]' for array subscript
  233 |                 bot_prod += dh[v] * dh[v] / feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS);
      |                               ^
../../../src/GridObj_ops_lbm.cpp:233:39: error: invalid types 'double[int]' for array subscript
  233 |                 bot_prod += dh[v] * dh[v] / feq(i,j,k,v,M_lim,K_lim,L_NUM_VELS);
      |                                       ^
../../../src/GridObj_ops_lbm.cpp:247:44: error: 'ds' was not declared in this scope; did you mean 'dh'?
  247 |                         (omega / 2) * (2 * ds[v] + gamma * dh[v])
      |                                            ^~
      |                                            dh
../../../src/GridObj_ops_lbm.cpp:247:62: error: invalid types 'double[int]' for array subscript
  247 |                         (omega / 2) * (2 * ds[v] + gamma * dh[v])
      |                                                              ^
../../../src/GridObj_ops_lbm.cpp: In member function 'void GridObj::LBM_macro(int, int, int)':
../../../src/GridObj_ops_lbm.cpp:283:39: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  283 |                 u(i,j,k,0,M_lim,K_lim,L_DIMS) = 0.0;
      |                                       ^~~~~~
      |                                       L_dims
../../../src/GridObj_ops_lbm.cpp:293:39: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  293 |                 u(i,j,k,0,M_lim,K_lim,L_DIMS) = 0.0;
      |                                       ^~~~~~
      |                                       L_dims
../../../src/GridObj_ops_lbm.cpp:308:37: error: 'L_NUM_VELS' was not declared in this scope
  308 |                 for (int v = 0; v < L_NUM_VELS; v++) {
      |                                     ^~~~~~~~~~
../../../src/GridObj_ops_lbm.cpp:311:45: error: 'c' was not declared in this scope; did you mean 'cs'?
  311 |                         fux_temp += (double)c[0][v] * f(i,j,k,v,M_lim,K_lim,L_NUM_VELS);
      |                                             ^
      |                                             cs
../../../src/GridObj_ops_lbm.cpp:325:65: error: 'L_DIMS' was not declared in this scope; did you mean 'L_dims'?
  325 |                 fux_temp += 0.5 * force_xyz(i,j,k,0,M_lim,K_lim,L_DIMS);
      |                                                                 ^~~~~~
      |                                                                 L_dims

How to make it work?

Error in making LUMA

Hi,
I am trying to install LUMA in my Ubuntu 20.04 system. I had built all the dependencies.
When I start making by make command in LUMA directory everything works fine until it start using lapack libraries.
I am attaching a text file containing error I get.
input_output.txt
One more thing I like to add, the error seems to be same when I try to compile a cpp file using lapack blas libraries without using gfortran and blas, i.e., if I use g++ -o test test.cpp -llapack instead of g++ -o test test.cpp -llapack -lblas -lgfortran

Hope you may help.
Thank you.

makefile Issues

There are several issues encountered during the build which if addressed would make things more convenient:

  1. The LUMA makefile is in a sub-directory but the makefile contents expect it to be in the root directory.
  2. The h5mgm makefile does not use the HDF5_HOME definition that the LUMA makefile does, the path is hard coded.
  3. The path is also hardcoded for VTK when a variable could be used.

Build error

Error building LUMA on gcc 4.4.7

mpicxx -O3 -std=c++0x -w -fopenmp -I/chalmers/sw/sup64/hdf5-1.10.3//include -c -o obj/BFLBody.o src/BFLBody.cpp
In file included from src/../inc/MpiManager.h:27,
from src/../inc/stdafx.h:206,
from src/BFLBody.cpp:23:
src/../inc/HDFstruct.h:45: error: ISO C++ forbids initialization of member ‘writable_data_count’
src/../inc/HDFstruct.h:45: error: making ‘writable_data_count’ static
src/../inc/HDFstruct.h:45: error: ISO C++ forbids in-class initialization of non-const static member ‘writable_data_count’
In file included from src/../inc/GridUtils.h:27,
from src/../inc/stdafx.h:207,
from src/BFLBody.cpp:23:
src/../inc/GridObj.h:58: error: ‘nullptr’ was not declared in this scope
src/../inc/GridObj.h:58: error: ISO C++ forbids initialization of member ‘parentGrid’
src/../inc/GridObj.h:58: error: making ‘parentGrid’ static
src/../inc/GridObj.h:58: error: invalid in-class initialization of static data member of non-integral type ‘GridObj*’
In file included from src/../inc/stdafx.h:207,
from src/BFLBody.cpp:23:
src/../inc/GridUtils.h:95: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:95: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:96: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:98: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:98: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:98: error: ‘nullptr’ was not declared in this scope
src/../inc/GridUtils.h:116: error: ‘nullptr’ was not declared in this scope
In file included from src/../inc/BFLBody.h:27,
from src/BFLBody.cpp:24:
src/../inc/Body.h: In constructor ‘Body::Body()’:
src/../inc/Body.h:102: error: ‘nullptr’ was not declared in this scope
src/../inc/Body.h: In member function ‘MarkerData* Body::getMarkerData(double, double, double)’:
src/../inc/Body.h:584: error: ‘nullptr’ was not declared in this scope
src/../inc/Body.h: In member function ‘virtual void Body::writeVtkPosition(int)’:
src/../inc/Body.h:800: error: call of overloaded ‘to_string(int&)’ is ambiguous
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2604: note: candidates are: std::string std::to_string(long long int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2610: note: std::string std::to_string(long long unsigned int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2616: note: std::string std::to_string(long double)
src/../inc/Body.h:807: error: call of overloaded ‘to_string(int&)’ is ambiguous
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2604: note: candidates are: std::string std::to_string(long long int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2610: note: std::string std::to_string(long long unsigned int)
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/basic_string.h:2616: note: std::string std::to_string(long double)
src/../inc/Body.h:813: error: expected initializer before ‘:’ token
src/../inc/Body.h:821: error: expected primary-expression before ‘nLines’
src/../inc/Body.h:821: error: expected ‘;’ before ‘nLines’
src/../inc/Body.h:821: error: ‘nLines’ was not declared in this scope
src/../inc/Body.h:821: error: expected ‘)’ before ‘;’ token
src/../inc/Body.h:823: error: ‘nLines’ was not declared in this scope
src/../inc/Body.h:825: error: ‘nLines’ was not declared in this scope
src/../inc/Body.h:828: error: ‘nLines’ was not declared in this scope
In file included from src/../inc/BFLBody.h:28,
from src/BFLBody.cpp:24:
src/../inc/BFLMarker.h: At global scope:
src/../inc/BFLMarker.h:53: error: ISO C++ forbids initialization of member ‘forceX’
src/../inc/BFLMarker.h:53: error: making ‘forceX’ static
src/../inc/BFLMarker.h:53: error: ISO C++ forbids in-class initialization of non-const static member ‘forceX’
src/../inc/BFLMarker.h:54: error: ISO C++ forbids initialization of member ‘forceY’
src/../inc/BFLMarker.h:54: error: making ‘forceY’ static
src/../inc/BFLMarker.h:54: error: ISO C++ forbids in-class initialization of non-const static member ‘forceY’
src/../inc/BFLMarker.h:55: error: ISO C++ forbids initialization of member ‘forceZ’
src/../inc/BFLMarker.h:55: error: making ‘forceZ’ static
src/../inc/BFLMarker.h:55: error: ISO C++ forbids in-class initialization of non-const static member ‘forceZ’
src/BFLBody.cpp: In member function ‘void BFLBody::initialise()’:
src/BFLBody.cpp:73: error: expected initializer before ‘:’ token
src/BFLBody.cpp:81: error: expected ‘)’ before ‘;’ token
src/BFLBody.cpp: In constructor ‘BFLBody::BFLBody(GridObj*, int, PCpts*)’:
src/BFLBody.cpp:151: error: class ‘BFLBody’ does not have any field named ‘Body’
src/BFLBody.cpp: In constructor ‘BFLBody::BFLBody(GridObj*, int, std::vector<double, std::allocator >&, double, std::vector<double, std::allocator >&)’:
src/BFLBody.cpp:166: error: class ‘BFLBody’ does not have any field named ‘Body’
src/BFLBody.cpp: In constructor ‘BFLBody::BFLBody(GridObj*, int, std::vector<double, std::allocator >&, double)’:
src/BFLBody.cpp:180: error: class ‘BFLBody’ does not have any field named ‘Body’
src/BFLBody.cpp: In constructor ‘BFLBody::BFLBody(GridObj*, int, std::vector<double, std::allocator >&, std::vector<double, std::allocator >&, std::vector<double, std::allocator >&)’:
src/BFLBody.cpp:195: error: class ‘BFLBody’ does not have any field named ‘Body’
src/BFLBody.cpp: In constructor ‘BFLBody::BFLBody(GridObj*, int, std::vector<double, std::allocator >&, double, double, std::vector<double, std::allocator >&)’:
src/BFLBody.cpp:211: error: class ‘BFLBody’ does not have any field named ‘Body’
src/BFLBody.cpp: In member function ‘void BFLBody::computeQ(int, int, int, GridObj*)’:
src/BFLBody.cpp:314: error: expected initializer before ‘:’ token
src/BFLBody.cpp:715: error: expected primary-expression at end of input
src/BFLBody.cpp:715: error: expected ‘;’ at end of input
src/BFLBody.cpp:715: error: expected primary-expression at end of input
src/BFLBody.cpp:715: error: expected ‘)’ at end of input
src/BFLBody.cpp:715: error: expected statement at end of input
src/BFLBody.cpp:715: error: expected ‘}’ at end of input
make: *** [obj/BFLBody.o] Error 1

Incorporating Sinusoidal pitching motion in body.

Hi,
In my project I need to incorporate sinusoidal pitching of any airfoil. I was stuck in that. I have also seen issue #5 but I don't know what to upgrade. So, I was asking if it is possible to do so with LUMA and if yes how can we do so.

Hope you could help.
Thank You.

BFLBody.cpp: error: 'numeric_limits' is not a member of 'std'

Apparently the needed header has been forgotten?

make: Entering directory `/opt/local/var/macports/build/_opt_PPCRosettaPorts_science_luma/luma/work/LUMA-1.7.12/LUMA'
mkdir -p obj
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/BFLBody.o src/BFLBody.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/BFLMarker.o src/BFLMarker.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/FEMBody.o src/FEMBody.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/FEMElement.o src/FEMElement.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/FEMNode.o src/FEMNode.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/GridManager.o src/GridManager.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/GridObj.o src/GridObj.cpp
mpicxx-mpich-gcc12 -O3 -std=c++0x -w -fopenmp -I/include -c -o obj/GridObj_init_grids.o src/GridObj_init_grids.cpp
src/BFLBody.cpp: In member function 'void BFLBody::computeQ(int, int, int, GridObj*)':
src/BFLBody.cpp:391:111: error: 'numeric_limits' is not a member of 'std'
  391 |                                 if (Q[vel + L_NUM_VELS * storeID] == -1) Q[vel + L_NUM_VELS * storeID] = std::numeric_limits<double>::max();
      |                                                                                                               ^~~~~~~~~~~~~~
src/BFLBody.cpp:391:126: error: expected primary-expression before 'double'
  391 |                                 if (Q[vel + L_NUM_VELS * storeID] == -1) Q[vel + L_NUM_VELS * storeID] = std::numeric_limits<double>::max();
      |                                                                                                                              ^~~~~~
src/BFLBody.cpp: In member function 'void BFLBody::computeQ(int, int, GridObj*)':
src/BFLBody.cpp:526:78: error: 'numeric_limits' is not a member of 'std'
  526 |                                         Q[vel + L_NUM_VELS * storeID] = std::numeric_limits<double>::max();
      |                                                                              ^~~~~~~~~~~~~~
src/BFLBody.cpp:526:93: error: expected primary-expression before 'double'
  526 |                                         Q[vel + L_NUM_VELS * storeID] = std::numeric_limits<double>::max();
      |                                                                                             ^~~~~~
make: *** [obj/BFLBody.o] Error 1

Running issue on single processor

white executing below errors showing up -
Running LUMA -- Version 1.7.4
(Serial Build)
*** The MPI_Cart_create() function was called before MPI_INIT was invoked.
*** This is disallowed by the MPI standard.
*** Your MPI job will now abort.
[jupiter:7684] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.