Skip to content

Commit

Permalink
Merge pull request #118 from brittonsmith/grtype
Browse files Browse the repository at this point in the history
Embed compiled precision into grackle header.
  • Loading branch information
brittonsmith committed Nov 25, 2022
2 parents 237e02c + 76f57b3 commit c59f7e4
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 17 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Make.config.override
src/clib/auto_show_config.c
src/clib/auto_show_flags.c
src/clib/auto_get_version.c
src/clib/grackle_float.h
src/clib/libgrackle.so
src/example/cxx_example
src/example/cxx_table_example
Expand Down
5 changes: 3 additions & 2 deletions src/clib/Make.config.assemble
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,13 @@

ifeq ($(CONFIG_PRECISION),32)
ERROR_PRECISION = 0
ASSEMBLE_PRECISION_DEFINES = -DCONFIG_BFLOAT_4
ASSEMBLE_PRECISION_NUMBER = 4
endif

# Settings for 64-bit floating point baryon precision

ifeq ($(CONFIG_PRECISION),64)
ERROR_PRECISION = 0
ASSEMBLE_PRECISION_DEFINES = -DCONFIG_BFLOAT_8
ASSEMBLE_PRECISION_NUMBER = 8
endif

Expand All @@ -67,6 +65,9 @@
$(error Illegal value '$(CONFIG_PRECISION)' for $$(CONFIG_PRECISION))
endif

PRECISION_DEFINE = GRACKLE_FLOAT_$(ASSEMBLE_PRECISION_NUMBER)
ASSEMBLE_PRECISION_DEFINES = -D$(PRECISION_DEFINE)

#=======================================================================
# COMPILERS
#=======================================================================
Expand Down
13 changes: 10 additions & 3 deletions src/clib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,14 @@ verbose: VERBOSE = 1
#-----------------------------------------------------------------------

.PHONY: autogen
autogen: auto_show_config.c auto_show_flags.c auto_get_version.c
autogen: config_type auto_show_config.c auto_show_flags.c auto_get_version.c

.PHONY: config_type
config_type:
-@echo "#ifndef __GRACKLE_FLOAT_H__" > grackle_float.h
-@echo "#define __GRACKLE_FLOAT_H__" >> grackle_float.h
-@echo "#define $(PRECISION_DEFINE)" >> grackle_float.h
-@echo "#endif" >> grackle_float.h

# Force update of auto_show_config.c

Expand Down Expand Up @@ -286,7 +293,7 @@ install:
@(if [ ! -d $(INSTALL_INCLUDE_DIR) ]; then \
mkdir $(INSTALL_INCLUDE_DIR); \
fi)
@cp grackle.h grackle_macros.h grackle_types.h grackle_chemistry_data.h grackle_rate_functions.h grackle.def grackle_fortran_types.def grackle_fortran_interface.def $(INSTALL_INCLUDE_DIR)
@cp grackle.h grackle_macros.h grackle_float.h grackle_types.h grackle_chemistry_data.h grackle_rate_functions.h grackle.def grackle_fortran_types.def grackle_fortran_interface.def $(INSTALL_INCLUDE_DIR)
@(if [ ! -d $(INSTALL_LIB_DIR) ]; then \
mkdir $(INSTALL_LIB_DIR); \
fi)
Expand All @@ -296,7 +303,7 @@ install:
#-----------------------------------------------------------------------

clean:
-@rm -f *.la .libs/* *.o *.lo DEPEND.bak *~ $(OUTPUT) *.exe auto_show*.c DEPEND out.make.DEPEND
-@rm -f *.la .libs/* *.o *.lo DEPEND.bak *~ $(OUTPUT) grackle_float.h *.exe auto_show*.c DEPEND out.make.DEPEND
-@touch DEPEND

#-----------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions src/clib/grackle_fortran_types.def
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
! software.
!=======================================================================

#ifdef CONFIG_BFLOAT_4
#ifdef GRACKLE_FLOAT_4
#define tiny 1.e-20
#define huge 1.e+20
#define R_PREC real*4
integer, parameter :: RKIND=4
#endif

#ifdef CONFIG_BFLOAT_8
#ifdef GRACKLE_FLOAT_8
#define tiny 1.d-20
#define huge 1.d+20
#define R_PREC real*8
Expand Down
4 changes: 2 additions & 2 deletions src/clib/grackle_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@

/* Precision-dependent definitions */

#ifdef CONFIG_BFLOAT_4
#ifdef GRACKLE_FLOAT_4
#define FSYM "f"
#define ESYM "e"
#endif

#ifdef CONFIG_BFLOAT_8
#ifdef GRACKLE_FLOAT_8
#define FSYM "lf"
#define ESYM "le"
#endif
Expand Down
14 changes: 10 additions & 4 deletions src/clib/grackle_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,28 @@
/ software.
************************************************************************/

#ifndef __GRACKLE_TYPES_H_
#define __GRACKLE_TYPES_H_
#ifndef __GRACKLE_TYPES_H__
#define __GRACKLE_TYPES_H__
/***********************************************************************
/
/ VARIABLE TYPES
/
************************************************************************/

#ifdef CONFIG_BFLOAT_4
#include "grackle_float.h"

#ifdef GRACKLE_FLOAT_4
#define gr_float float
#endif

#ifdef CONFIG_BFLOAT_8
#ifdef GRACKLE_FLOAT_8
#define gr_float double
#endif

#if defined(GRACKLE_FLOAT_4) == defined(GRACKLE_FLOAT_8)
#error "Both GRACKLE_FLOAT_4 and GRACKLE_FLOAT_8 are defined. Only one can be defined."
#endif

typedef struct
{

Expand Down
6 changes: 4 additions & 2 deletions src/clib/phys_const.def
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

#ifdef CONFIG_BFLOAT_4
#ifdef GRACKLE_FLOAT_4

#define kboltz 1.3806504e-16
#define mass_h 1.67262171e-24
Expand All @@ -15,7 +15,9 @@
#define kpc 3.0857e21
#define pc 3.0857e18

#else
#endif

#ifdef GRACKLE_FLOAT_8

#define kboltz 1.3806504d-16
#define mass_h 1.67262171d-24
Expand Down
4 changes: 2 additions & 2 deletions src/clib/solve_rate_cool_g.F
Original file line number Diff line number Diff line change
Expand Up @@ -253,12 +253,12 @@ subroutine solve_rate_cool_g(icool, d, e, u, v, w, de,
integer itmax
parameter (itmax = 10000)

#ifdef CONFIG_BFLOAT_4
#ifdef GRACKLE_FLOAT_4
R_PREC tolerance
parameter (tolerance = 1.0e-05_RKIND)
#endif

#ifdef CONFIG_BFLOAT_8
#ifdef GRACKLE_FLOAT_8
R_PREC tolerance
parameter (tolerance = 1.0e-10_RKIND)
#endif
Expand Down

0 comments on commit c59f7e4

Please sign in to comment.