Skip to content

Commit

Permalink
Merge pull request #183 from Oden-EAG/next
Browse files Browse the repository at this point in the history
Merging development branch into master for hp3D's JOSS paper release version.
  • Loading branch information
stefanhenneking committed Mar 2, 2024
2 parents 62af052 + a290fc1 commit 4a3d393
Show file tree
Hide file tree
Showing 673 changed files with 33,459 additions and 33,401 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ fort.20
*~
m_options
log.txt
*__genmod.f90

# Data files
history
Expand Down
31 changes: 31 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@

=================
Version 1.0 (dev)
=================

- Renamed preprocessor flags:
`C_MODE` --> `HP3D_COMPLEX`, `DEBUG_MODE` --> `HP3D_DEBUG`

- Added preprocessor flag `HP3D_USE_X11` and `HP3D_USE_MPI_F08`

- Added CI via GitHub actions for Linux and macOS.

- New default configuration files in `m_options_linux` and `m_options_macos`.
Both m_options files use PETSc's configuration for setting compiler options,
library paths, and include paths. The user only needs to provide the
corresponding PETSC_DIR and PETSC_ARCH.

- Introduced global parameter `MAX_NRINDEX_HEV=31` used for binary-encoding
Dirichlet flags of (at most 31) H1, H(div), and H(curl) components.
This parameter replaces the previous global parameter MAX_NRINDEX.

- Updated all of the remaining fixed-format (F77) legacy code.

==========================================
Version 1.0-beta, released on Sep 24, 2023
==========================================

- Release tag:
https://github.com/Oden-EAG/hp3d/releases/tag/v1.0-beta

- Initial pre-release.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,13 @@ Note: PETSc can also install MPI libraries if needed,
e.g. `--download-openmpi=yes` or `--download-mpich=yes`.

## Compiler options
Compilation is governed by preprocessing flags `COMPLEX` and `DEBUG`.
- `COMPLEX = 0` , stiffness matrix, load vector(s) and solution DOFs are real-valued
- `COMPLEX = 1` , stiffness matrix, load vector(s) and solution DOFs are complex-valued
- `DEBUG = 0` , compiler uses optimization flags, and the library performs only minimal checks during the computation
- `DEBUG = 1` , compiler uses debug flags, and the library performs additional checks during the computation
Compilation is governed by preprocessing flags `HP3D_COMPLEX` and `HP3D_DEBUG`.
- `HP3D_COMPLEX = 0` , stiffness matrix, load vector(s) and solution DOFs are real-valued
- `HP3D_COMPLEX = 1` , stiffness matrix, load vector(s) and solution DOFs are complex-valued
- `HP3D_DEBUG = 0` , compiler uses optimization flags, and the library performs only minimal checks during the computation
- `HP3D_DEBUG = 1` , compiler uses debug flags, and the library performs additional checks during the computation

Library will be created under either `hp3d/complex/` or `hp3d/real/`.
Library will be created under either `hp3d/trunk/complex/` or `hp3d/trunk/real/`.

Additional preprocessing flags for enabling/disabling dependencies on third-party libraries:
- `HP3D_USE_INTEL_MKL = 0/1` , disable/enable dependency on Intel MKL package
Expand Down
17 changes: 8 additions & 9 deletions trunk/m_options_files/custom/m_options_LC
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ HP3D_BASE_PATH = /g/g92/keith10/Work/quartz/par_hp3d/trunk
#------------------------------------------------------------------
# PREPROCESSOR VARIABLES
#------------------------------------------------------------------
COMPLEX ?= 0
DEBUG ?= 0
HP3D_COMPLEX ?= 0
HP3D_DEBUG ?= 0

# Dependencies
HP3D_USE_INTEL_MKL ?= 0
Expand Down Expand Up @@ -41,12 +41,12 @@ endif
#FFLAGS += -Wpedantic

# Optimization flags
ifeq ($(DEBUG),0)
ifeq ($(HP3D_DEBUG),0)
FFLAGS += -O3
endif

# Debug flags
ifeq ($(DEBUG),1)
ifeq ($(HP3D_DEBUG),1)
FFLAGS += -Og -g -fbacktrace -fcheck=all
endif

Expand Down Expand Up @@ -78,7 +78,7 @@ MKL_INCS = -I/opt/intel/mkl/include
# also adding Zoltan library dependence
# also adding PETSC library dependence (petsc needs phdf5)

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
PETSC_LIB = /Users/stefan/hp3D/LIBS/petsc-3.13.1/arch-darwin-c-complex/lib
PETSC_INC = /Users/stefan/hp3D/LIBS/petsc-3.13.1/arch-darwin-c-complex/include
else
Expand Down Expand Up @@ -124,7 +124,7 @@ SRC_PATH = src
MODULE_PATH = module
LIB_PATH = lib

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
HP3D_PATH = $(HP3D_PATH_COMPLEX)
OBJ_PATH = $(OBJ_PATH_COMPLEX)
else
Expand Down Expand Up @@ -159,7 +159,6 @@ HP3D_GMP = $(HP3D_PATH)/lib/libhp3d_gmp.a

HP3D_LINK_LIBS = $(HP3D_LIB) $(HP3D_FRONTAL)
HP3D_LINK_INCS = -I$(HP3D_PATH)/common/hp3d \
-I$(HP3D_PATH)/common/graphics \
-I$(HP3D_PATH)/module

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down Expand Up @@ -191,7 +190,7 @@ PROB_INCS += $(HP3D_LINK_INCS) \
# Files with ending in .F and .F90 (not .f and .f90)
# are preprocessed according to certain directives

PROB_PP_DEFS = -D"C_MODE=$(COMPLEX)" \
-D"DEBUG_MODE=$(DEBUG)" \
PROB_PP_DEFS = -D"HP3D_COMPLEX=$(HP3D_COMPLEX)" \
-D"HP3D_DEBUG=$(HP3D_DEBUG)" \
-D"HP3D_USE_OPENMP=$(HP3D_USE_OPENMP)" \
-D"HP3D_USE_INTEL_MKL=$(HP3D_USE_INTEL_MKL)"
17 changes: 8 additions & 9 deletions trunk/m_options_files/custom/m_options_TACC_intel18
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ HP3D_BASE_PATH = ${WORK}/hp3d/trunk
#------------------------------------------------------------------
# PREPROCESSOR VARIABLES
#------------------------------------------------------------------
COMPLEX ?= 0
DEBUG ?= 0
HP3D_COMPLEX ?= 0
HP3D_DEBUG ?= 0

#------------------------------------------------------------------
# COMPILER SETTINGS (a 64bit processor architecture is assumed)
Expand Down Expand Up @@ -43,12 +43,12 @@ ifeq ($(HP3D_USE_OPENMP),1)
endif

# Optimization flags
ifeq ($(DEBUG),0)
ifeq ($(HP3D_DEBUG),0)
FFLAGS += -O3 -xCORE-AVX512
endif

# Debug flags
ifeq ($(DEBUG),1)
ifeq ($(HP3D_DEBUG),1)
FFLAGS += -O0 -g -traceback -check all -debug all
FFLAGS += -check noarg_temp_created -assume noprotect_constants
endif
Expand Down Expand Up @@ -92,7 +92,7 @@ MKL_INCS = -I${MKLROOT}/include/intel64/lp64 -I${MKLROOT}/include
# also adding Zoltan library dependence
# also adding PETSC library dependence (petsc needs phdf5)

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
TACC_PETSC32_LIB = /home1/apps/intel18/impi18_0/petsc/3.11/skylake-complex/lib
TACC_PETSC32_INC = /home1/apps/intel18/impi18_0/petsc/3.11/skylake-complex/include
TACC_PETSC64_LIB = /home1/apps/intel18/impi18_0/petsc/3.11/skylake-complexi64/lib
Expand Down Expand Up @@ -143,7 +143,7 @@ SRC_PATH = src
MODULE_PATH = module
LIB_PATH = lib

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
HP3D_PATH = $(HP3D_PATH_COMPLEX)
OBJ_PATH = $(OBJ_PATH_COMPLEX)
else
Expand Down Expand Up @@ -174,7 +174,6 @@ HP3D_LINK_LIBS = -Wl,--start-group \
#HP3D_LINK_LIBS += $(HP3D_COMMON) $(HP3D_GMP)
HP3D_LINK_LIBS += -Wl,--end-group
HP3D_LINK_INCS = -I$(HP3D_PATH)/common/hp3d \
-I$(HP3D_PATH)/common/graphics \
-I$(HP3D_PATH)/module

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down Expand Up @@ -217,7 +216,7 @@ PROB_INCS += $(HP3D_LINK_INCS) \
# are preprocessed according to certain directives

HP3D_USE_INTEL_MKL = 1
PROB_PP_DEFS = -D"C_MODE=$(COMPLEX)" \
-D"DEBUG_MODE=$(DEBUG)" \
PROB_PP_DEFS = -D"HP3D_COMPLEX=$(HP3D_COMPLEX)" \
-D"HP3D_DEBUG=$(HP3D_DEBUG)" \
-D"HP3D_USE_OPENMP=$(HP3D_USE_OPENMP)" \
-D"HP3D_USE_INTEL_MKL=$(HP3D_USE_INTEL_MKL)"
17 changes: 8 additions & 9 deletions trunk/m_options_files/custom/m_options_TACC_intel19
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ HP3D_BASE_PATH = ${WORK2}/hp3d/trunk
#------------------------------------------------------------------
# PREPROCESSOR VARIABLES
#------------------------------------------------------------------
COMPLEX ?= 0
DEBUG ?= 0
HP3D_COMPLEX ?= 0
HP3D_DEBUG ?= 0

#------------------------------------------------------------------
# COMPILER SETTINGS (a 64bit processor architecture is assumed)
Expand Down Expand Up @@ -43,12 +43,12 @@ ifeq ($(HP3D_USE_OPENMP),1)
endif

# Optimization flags
ifeq ($(DEBUG),0)
ifeq ($(HP3D_DEBUG),0)
FFLAGS += -O3 -xCORE-AVX512
endif

# Debug flags
ifeq ($(DEBUG),1)
ifeq ($(HP3D_DEBUG),1)
FFLAGS += -O0 -g -traceback -check all -debug all
FFLAGS += -check noarg_temp_created -assume noprotect_constants
endif
Expand Down Expand Up @@ -91,7 +91,7 @@ MKL_INCS = -I${MKLROOT}/include/intel64/lp64 -I${MKLROOT}/include
# also adding Zoltan library dependence
# also adding PETSC library dependence (petsc needs phdf5)

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
TACC_PETSC32_LIB = /home1/apps/intel19/impi19_0/petsc/3.15/clx-complex/lib
TACC_PETSC32_INC = /home1/apps/intel19/impi19_0/petsc/3.15/clx-complex/include
TACC_PETSC64_LIB = /home1/apps/intel19/impi19_0/petsc/3.15/clx-complexi64/lib
Expand Down Expand Up @@ -142,7 +142,7 @@ SRC_PATH = src
MODULE_PATH = module
LIB_PATH = lib

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
HP3D_PATH = $(HP3D_PATH_COMPLEX)
OBJ_PATH = $(OBJ_PATH_COMPLEX)
else
Expand Down Expand Up @@ -173,7 +173,6 @@ HP3D_LINK_LIBS = -Wl,--start-group \
#HP3D_LINK_LIBS += $(HP3D_COMMON) $(HP3D_GMP)
HP3D_LINK_LIBS += -Wl,--end-group
HP3D_LINK_INCS = -I$(HP3D_PATH)/common/hp3d \
-I$(HP3D_PATH)/common/graphics \
-I$(HP3D_PATH)/module

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down Expand Up @@ -216,7 +215,7 @@ PROB_INCS += $(HP3D_LINK_INCS) \
# are preprocessed according to certain directives

HP3D_USE_INTEL_MKL = 1
PROB_PP_DEFS = -D"C_MODE=$(COMPLEX)" \
-D"DEBUG_MODE=$(DEBUG)" \
PROB_PP_DEFS = -D"HP3D_COMPLEX=$(HP3D_COMPLEX)" \
-D"HP3D_DEBUG=$(HP3D_DEBUG)" \
-D"HP3D_USE_OPENMP=$(HP3D_USE_OPENMP)" \
-D"HP3D_USE_INTEL_MKL=$(HP3D_USE_INTEL_MKL)"
17 changes: 8 additions & 9 deletions trunk/m_options_files/custom/m_options_cent_os_7
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ HP3D_BASE_PATH = /home/stefan/hp3D/LIBS/hp3d/trunk
#------------------------------------------------------------------
# PREPROCESSOR VARIABLES
#------------------------------------------------------------------
COMPLEX ?= 0
DEBUG ?= 0
HP3D_COMPLEX ?= 0
HP3D_DEBUG ?= 0

# Dependencies
HP3D_USE_INTEL_MKL ?= 0
Expand Down Expand Up @@ -39,12 +39,12 @@ endif
#FFLAGS += -Wpedantic

# Optimization flags
ifeq ($(DEBUG),0)
ifeq ($(HP3D_DEBUG),0)
FFLAGS += -O3
endif

# Debug flags
ifeq ($(DEBUG),1)
ifeq ($(HP3D_DEBUG),1)
FFLAGS += -Og -g -fbacktrace -fcheck=all
endif

Expand Down Expand Up @@ -81,7 +81,7 @@ MKL_INCS = -I/opt/intel/mkl/include
# also adding Zoltan library dependence
# also adding PETSC library dependence (petsc needs phdf5)

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
PETSC_LIB = /home/stefan/hp3D/LIBS/petsc-3.13.5/arch-centos-complex/lib
PETSC_INC = /home/stefan/hp3D/LIBS/petsc-3.13.5/arch-centos-complex/include
else
Expand Down Expand Up @@ -133,7 +133,7 @@ SRC_PATH = src
MODULE_PATH = module
LIB_PATH = lib

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
HP3D_PATH = $(HP3D_PATH_COMPLEX)
OBJ_PATH = $(OBJ_PATH_COMPLEX)
else
Expand Down Expand Up @@ -168,7 +168,6 @@ HP3D_LINK_LIBS += -Wl,--end-group

#HP3D_LINK_LIBS = $(HP3D_LIB) $(HP3D_FRONTAL)
HP3D_LINK_INCS = -I$(HP3D_PATH)/common/hp3d \
-I$(HP3D_PATH)/common/graphics \
-I$(HP3D_PATH)/module

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down Expand Up @@ -202,7 +201,7 @@ PROB_INCS += $(HP3D_LINK_INCS) \
# Files with ending in .F and .F90 (not .f and .f90)
# are preprocessed according to certain directives

PROB_PP_DEFS = -D"C_MODE=$(COMPLEX)" \
-D"DEBUG_MODE=$(DEBUG)" \
PROB_PP_DEFS = -D"HP3D_COMPLEX=$(HP3D_COMPLEX)" \
-D"HP3D_DEBUG=$(HP3D_DEBUG)" \
-D"HP3D_USE_OPENMP=$(HP3D_USE_OPENMP)" \
-D"HP3D_USE_INTEL_MKL=$(HP3D_USE_INTEL_MKL)"
17 changes: 8 additions & 9 deletions trunk/m_options_files/custom/m_options_debian_10
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ HP3D_BASE_PATH = /home/stefan/hp3D/LIBS/hp3d/trunk
#------------------------------------------------------------------
# PREPROCESSOR VARIABLES
#------------------------------------------------------------------
COMPLEX ?= 0
DEBUG ?= 0
HP3D_COMPLEX ?= 0
HP3D_DEBUG ?= 0

# Dependencies
HP3D_USE_INTEL_MKL ?= 0
Expand Down Expand Up @@ -39,12 +39,12 @@ endif
#FFLAGS += -Wpedantic

# Optimization flags
ifeq ($(DEBUG),0)
ifeq ($(HP3D_DEBUG),0)
FFLAGS += -O3
endif

# Debug flags
ifeq ($(DEBUG),1)
ifeq ($(HP3D_DEBUG),1)
FFLAGS += -Og -g -fbacktrace -fcheck=all
endif

Expand Down Expand Up @@ -81,7 +81,7 @@ MKL_INCS = -I/opt/intel/mkl/include
# also adding Zoltan library dependence
# also adding PETSC library dependence (petsc needs phdf5)

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
PETSC_LIB = /home/stefan/hp3D/LIBS/petsc-3.13.5/arch-debian-complex/lib
PETSC_INC = /home/stefan/hp3D/LIBS/petsc-3.13.5/arch-debian-complex/include
else
Expand Down Expand Up @@ -133,7 +133,7 @@ SRC_PATH = src
MODULE_PATH = module
LIB_PATH = lib

ifeq ($(COMPLEX),1)
ifeq ($(HP3D_COMPLEX),1)
HP3D_PATH = $(HP3D_PATH_COMPLEX)
OBJ_PATH = $(OBJ_PATH_COMPLEX)
else
Expand Down Expand Up @@ -168,7 +168,6 @@ HP3D_LINK_LIBS += -Wl,--end-group

#HP3D_LINK_LIBS = $(HP3D_LIB) $(HP3D_FRONTAL)
HP3D_LINK_INCS = -I$(HP3D_PATH)/common/hp3d \
-I$(HP3D_PATH)/common/graphics \
-I$(HP3D_PATH)/module

#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Expand Down Expand Up @@ -202,7 +201,7 @@ PROB_INCS += $(HP3D_LINK_INCS) \
# Files with ending in .F and .F90 (not .f and .f90)
# are preprocessed according to certain directives

PROB_PP_DEFS = -D"C_MODE=$(COMPLEX)" \
-D"DEBUG_MODE=$(DEBUG)" \
PROB_PP_DEFS = -D"HP3D_COMPLEX=$(HP3D_COMPLEX)" \
-D"HP3D_DEBUG=$(HP3D_DEBUG)" \
-D"HP3D_USE_OPENMP=$(HP3D_USE_OPENMP)" \
-D"HP3D_USE_INTEL_MKL=$(HP3D_USE_INTEL_MKL)"
Loading

0 comments on commit 4a3d393

Please sign in to comment.