Skip to content

Commit

Permalink
Merge branch 'master' into fix/cf
Browse files Browse the repository at this point in the history
  • Loading branch information
loganoz committed Nov 8, 2023
2 parents ee942d3 + 7df024a commit d462599
Show file tree
Hide file tree
Showing 14 changed files with 239 additions and 218 deletions.
130 changes: 75 additions & 55 deletions .github/workflows/CI_parallel.yml

Large diffs are not rendered by default.

16 changes: 0 additions & 16 deletions .github/workflows/CI_sequential 1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,8 @@ jobs:
mkl: ['YES','NO']
exclude:
- compiler: gfortran
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: gfortran
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: ifort
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
- compiler: ifort
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
# Steps represent a sequence of tasks that will be executed as part of the job

Expand Down
85 changes: 37 additions & 48 deletions .github/workflows/CI_sequential 2.yml

Large diffs are not rendered by default.

16 changes: 0 additions & 16 deletions .github/workflows/CI_sequential 3.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,8 @@ jobs:
mkl: ['YES','NO']
exclude:
- compiler: gfortran
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: gfortran
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: ifort
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
- compiler: ifort
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
# Steps represent a sequence of tasks that will be executed as part of the job

Expand Down
16 changes: 0 additions & 16 deletions .github/workflows/CI_sequential 4.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,8 @@ jobs:
mkl: ['YES','NO']
exclude:
- compiler: gfortran
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: gfortran
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'YES'
- compiler: ifort
mode: RELEASE
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
- compiler: ifort
mode: DEBUG
comm: SEQUENTIAL
enable_threads: YES
mkl: 'NO'
# Steps represent a sequence of tasks that will be executed as part of the job

Expand Down
47 changes: 47 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
preferred-citation:
authors:
- family-names: Ferrer
given-names: Esteban
- family-names: Rubio
given-names: Gonzalo
- family-names: Ntoukas
given-names: Gerasimos
- family-names: Laskowski
given-names: Wojciech
- family-names: Mariño
given-names: Óscar A.
- family-names: Colombo
given-names: Stefano
- family-names: Mateo-Gabín
given-names: Andrés
- family-names: Marbona
given-names: Himpu
- family-names: Manrique de Lara
given-names: Fernando
- family-names: Huergo
given-names: David
- family-names: Manzanero
given-names: Juan
- family-names: Rueda-Ramírez
given-names: Andrés M.
- family-names: Kopriva
given-names: David A.
- family-names: Valero
given-names: Eusebio
doi: 10.1016/j.cpc.2023.108700
journal: "Computer Physics Communications"
keywords:
- Navier-Stokes
- Discontinuous Galerkin
- High-order method
- Multiphase
- Aeroacoustics
- Immersed boundary method
month: 6
start: 108700
title: "HORSES3D: A high-order discontinuous Galerkin solver for flow simulations and multi-physics applications"
type: article
volume: 287
year: 2023
6 changes: 2 additions & 4 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
################################################################################
# **List of Contributors** #
################################################################################
# List of Contributors

This is a (possibly incomplete) list of the people who has contributed to HORSES3D (or older versions).

Expand All @@ -18,4 +16,4 @@ This is a (possibly incomplete) list of the people who has contributed to HORSES
- Fernando Manrique de Lara
- David Huergo
- Oliver Browne
- Moritz Kompenhans
- Moritz Kompenhans
5 changes: 1 addition & 4 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
################################################################################
# HORSES3D High-Order (DG) Spectral Element Solver #
# **MIT License** #
################################################################################
MIT License

Copyright (c) 2021 NUMATH https://numath.dmae.upm.es

Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down
28 changes: 19 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# HORSES3D High-Order (DG) Spectral Element Solver

MIT License

Copyright (c) 2021 NUMATH https://numath.dmae.upm.es


Expand Down Expand Up @@ -55,9 +56,15 @@ The following external routines/libraries can be used with **HORSES3D**, but are

- COMM=PARALLEL/**SEQUENTIAL**

- ENABLE THREADS=NO/**YES**
- ENABLE_THREADS=NO/**YES**

- WITH_PETSC=y/**n**

- WITH_METIS=y/**n**

- WITH_HDF5=y/**n**

- WITH MKL=y/**n**
- WITH_MKL=y/**n**

For example:

Expand All @@ -76,21 +83,24 @@ The following external routines/libraries can be used with **HORSES3D**, but are

## Additional libraries

- HDF5:
- PETSc:

```shell
export HDF5_ROOT=path_to_hdf5
export HDF5_DIR=$HDF5_ROOT
export PETSC_DIR=path_to_petsc
```

- PETSc:
- METIS:

```shell
export PETSC_DIR=path_to_petsc
export METIS_DIR=path_to_metis
```

- METIS:
- HDF5:

```shell
export METIS_HOME=path_to_metis
export HDF5_DIR=path_to_hdf5
```




18 changes: 0 additions & 18 deletions REFERENCES.md

This file was deleted.

77 changes: 49 additions & 28 deletions Solver/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ MODE?=RELEASE
COMM?=SEQUENTIAL
ENABLE_THREADS?=YES
WITH_PETSC?=NO
WITH_METIS?=NO
WITH_HDF5?=NO
WITH_MKL?=NO

MAKE=make
AR=ar
Expand Down Expand Up @@ -117,19 +120,6 @@ else ifeq ($(MODE),DEBUG)
endif
endif

##########################
## Link MKL ##
##########################
ifeq '$(WITH_MKL)''YES'
ifeq '$(FC)''gfortran'
MACROS+= -DHAS_MKL -DHAS_LAPACK
LIBS += $(LIB_BLAS) $(LIB_LAPACK)
else #ifort
MACROS+= -DHAS_MKL -DHAS_LAPACK
FFLAGS+= -mkl
endif
endif

##########################
## MPI ##
##########################
Expand All @@ -150,42 +140,73 @@ ifeq ($(ENABLE_THREADS),YES)
FFLAGS+=-fopenmp
endif

##########################
## Link MKL ##
##########################
ifeq '$(WITH_MKL)''YES'
ifeq '$(FC)''gfortran'
ifeq '$(strip $(LIB_BLAS)$(LIB_LAPACK))'''
$(error option WITH_MKL = YES with gfortran requires defining path to blas and lapack with LIB_BLAS and LIB_LAPACK)
endif
LIB_BLAS := $(strip $(LIB_BLAS))
LIB_LAPACK := $(strip $(LIB_LAPACK))
MACROS+= -DHAS_MKL -DHAS_LAPACK
LIBS += $(LIB_BLAS) $(LIB_LAPACK)
else #ifort
MACROS+= -DHAS_MKL -DHAS_LAPACK
FFLAGS+= -qmkl
endif
endif

################
## Link METIS ##
################
ifeq ($(COMM),PARALLEL)
ifdef METIS_HOME
ifeq ($(WITH_METIS),YES)
METIS_DIR ?= $(METIS_HOME) #keep this for retrocompatibility
METIS_DIR := $(strip $(METIS_DIR))
ifdef METIS_DIR
MACROS+= -D_HAS_METIS_
LIBS+=-L$(METIS_HOME)/lib -lmetis
endif
LIBS+=-L$(METIS_DIR)/lib -lmetis
else
$(error option WITH_METIS = YES requires defining path to METIS with METIS_DIR)
endif
endif

##########################
## Link PETSc ##
##########################
ifeq ($(WITH_PETSC),YES)
ifdef PETSC_DIR
PETSC_DIR := $(strip $(PETSC_DIR))
MACROS+= -DHAS_PETSC
LIBS += -L$(PETSC_DIR)/lib -lpetsc
EXTLIB_INC+= -I$(PETSC_DIR)/include
endif
else
$(error option WITH_PETSC = YES requires defining path to PETSC with PETSC_DIR)
endif
endif

##########################
## Link HDF5 ##
##########################
ifdef HDF5_ROOT
ifneq ("$(wildcard $(HDF5_ROOT)/lib/libhdf5_fortran-shared.so)","")
LIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran-shared
MACROS+= -DHAS_HDF5
EXTLIB_INC += -I$(HDF5_ROOT)/include/shared -I$(HDF5_ROOT)/include
else ifneq ("$(wildcard $(HDF5_ROOT)/lib/libhdf5_fortran.*)","")
LIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
MACROS+= -DHAS_HDF5
EXTLIB_INC += -I$(HDF5_ROOT)/include/shared -I$(HDF5_ROOT)/include
ifeq ($(WITH_HDF5),YES)
HDF5_DIR ?= $(HDF5_ROOT) #keep this for retrocompatibility
HDF5_DIR := $(strip $(HDF5_DIR))
ifdef HDF5_DIR
ifneq ("$(wildcard $(HDF5_DIR)/lib/libhdf5_fortran-shared.so)","")
LIBS += -L$(HDF5_DIR)/lib -lhdf5_fortran-shared
MACROS+= -DHAS_HDF5
EXTLIB_INC += -I$(HDF5_DIR)/include/shared -I$(HDF5_DIR)/include
else ifneq ("$(wildcard $(HDF5_DIR)/lib/libhdf5_fortran.*)","")
LIBS += -L$(HDF5_DIR)/lib -lhdf5_fortran
MACROS+= -DHAS_HDF5
EXTLIB_INC += -I$(HDF5_DIR)/include/shared -I$(HDF5_DIR)/include
endif
## FC = $(HDF5_EXE)
endif
else
$(error option WITH_HDF5 = YES requires defining path to HDF5 with HDF5_DIR)
endif
endif

##########################################
## Select HORSES libraries ##
Expand Down
4 changes: 2 additions & 2 deletions Solver/src/libs/mesh/HexMesh.f90
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ MODULE HexMeshClass
class(Zone_t), dimension(:), allocatable :: zones
logical :: child = .FALSE. ! Is this a (multigrid) child mesh? default .FALSE.
logical :: meshIs2D = .FALSE. ! Is this a 2D mesh? default .FALSE.
integer :: dir2D ! If it is in fact a 2D mesh, dir 2D stores the global direction IX, IY or IZ
integer :: dir2D_ctrl ! dir2D as in the control file
integer :: dir2D = 0 ! If it is in fact a 2D mesh, dir 2D stores the global direction IX, IY or IZ
integer :: dir2D_ctrl = 0 ! dir2D as in the control file
logical :: anisotropic = .FALSE. ! Is the mesh composed by elements with anisotropic polynomial orders? default false
logical :: ignoreBCnonConformities = .FALSE.
contains
Expand Down
Binary file modified doc/UserManual.pdf
Binary file not shown.
9 changes: 7 additions & 2 deletions doc/UserManual.tex
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ \chapter{Compiling the code} \label{sect:compiling}
\item COMPILER=ifort/\textbf{gfortran}
\item COMM=PARALLEL/\textbf{SEQUENTIAL}
\item ENABLE\_THREADS=NO/\textbf{YES}
\item WITH\_PETSC=YES/\textbf{NO}
\item WITH\_METIS=YES/\textbf{NO}
\item WITH\_HDF5=YES/\textbf{NO}
\item WITH\_MKL=YES/\textbf{NO}
\end{itemize}

Expand All @@ -86,9 +89,11 @@ \chapter{Compiling the code} \label{sect:compiling}

\item The COM=PARALLEL flag enables distributed memory simulations using MPI.

\item To compile the code linking it with METIS (that is an option for creating the mesh partitions of MPI runs), it is needed that before compilation and running, an environment variable called METIS\_HOME is found. This variable must contain the path to the HDF5 installation folder (it must have been compiled with the same compiler as HORSES3D).
\item The WITH\_METIS=YES flag activates METIS linking. To compile the code linking it with METIS (that is an option for creating the mesh partitions of MPI runs), it is needed that before compilation and running, an environment variable called METIS\_DIR is found. This variable must contain the path to the METIS installation folder (it must have been compiled with the same compiler as HORSES3D).

\item To compile the code linking it with HDF5 (necessary for reading HOPR meshes), it is needed that before compilation and running, an environment variable called HDF5\_ROOT is found. This variable must contain the path to the METIS installation folder (it must have been compiled with the same compiler as HORSES3D). In addition, the lib folder must be added to the environment variable LD\_LIBRARY\_PATH.
\item The WITH\_HDF5=YES flag activates HDF5 linking. To compile the code linking it with HDF5 (necessary for reading HOPR meshes), it is needed that before compilation and running, an environment variable called HDF5\_DIR is found. This variable must contain the path to the HDF5 installation folder (it must have been compiled with the same compiler as HORSES3D). In addition, the lib folder must be added to the environment variable LD\_LIBRARY\_PATH.

\item The WITH\_PETSC=YES flag activates PETSC linking. To compile the code linking it with PETSC, it is needed that before compilation and running, an environment variable called PETSC\_DIR is found. This variable must contain the path to the PETSC installation folder.

\item If you use \textit{environment modules}, it is advised to use the HORSES3D module file:\\
\begin{lstlisting}[language=bash]
Expand Down

0 comments on commit d462599

Please sign in to comment.