This is a 2D cloud-resolving model based on the vorticity equation.
The following dependencies are required:
- C++ compiler (version >= C++11)
- CMake (version >= 3.18.0)
- hdf5 1.8.14 (can be automatically downloaded via CMake)
- netcdf-c 4.3.3.1 (can be automatically downloaded via CMake)
- netcdf-cxx4 4.2.1 (can be automatically downloaded via CMake)
- Eigen (pre-installed in the include folder)
- PETSc (optional) - Required for solving the Poisson equation if enabled in ./src/Config.hpp. However, Eigen generally suffices.
- nvhpc 21.3 (required for GPU usage) - Installable from the NVIDIA website.
- AMGX 2.4.0 (required for GPU usage, can be automatically downloaded via CMake)
> Note > If you encounter errors while downloading AMGX, you may need to specify the NVHPC path and library paths manually.
> Warning > If you do not want to use GPU, ensure that the GPU_POISSON flag in ./src/Config.hpp is disabled.
Installing dependencies for the first time may take approximately 20 minutes.
Clone the project repository:
git clone https://github.com/Aaron-Hsieh-0129/2D-Vector-Vorticity-Model.git 2DVVM
Modify model settings as needed in ./vvm_configs.txt.
Building the Project:
If you want to use GPU, install NVHPC and specify paths for NVHPC and GCC when configuring with CMake.
mkdir build && cd build # Example (CPU): Ensure the `GPU_POISSON` flag is **commented out** in `src/Config.hpp` cmake -DGCC_HOME=/home/Aaron/gcc9 .. # Example (GPU): cmake -DNVHPC_HOME=/home/Aaron/nvhpc/Linux_x86_64/21.3 -DGCC_HOME=/home/Aaron/gcc9 .. make # Running the model: # CPU Execution: ./vvm2d # GPU Execution: mpirun -np 1 -mca btl_base_warn_component_unused 0 -np 1 -x CUDA_VISIBLE_DEVICES=0 ./vvm2d
Tip
Choose the correct CMake file from the scripts/ directory: - CMakeLists_CPU.txt for CPU execution. - CMakeLists_GPU.txt for GPU execution.
Copy the appropriate file to the project root:
cp scripts/CMakeLists_GPU.txt CMakeLists.txt
On first execution, CMake will download dependencies to the _deps/ directory automatically.
Ensure the GPU_POISSON flag is commented out in src/Config.hpp if using CPU only.
You can use the run.sh script to automate these steps.
- If dependency installation fails via CMake, installing GCC 9.4 is recommended.
- Refer to the official documentation for GCC installation steps.
For more details, visit: