Linked the defines used by the DSL and astaroth.h. Now f.ex. LENTROPY has to be set only once in acc/mhd_solver/stencil_defines.h and it is propagated throughout the whole project. The name for stencil_defines.h is not final and may change if I come up with a better name. In any case, there is now a standard header associated with each DSL solver where the user can set defines, and declare arrays (VTXBUF_LNRHO) and device constants (uniforms).
This commit is contained in:
@@ -21,4 +21,4 @@ else
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${ACC_DIR}/preprocess.sh $1 | ${ACC_DIR}/build/acc ${COMPILE_FLAGS} > ${CUH_FILENAME}
|
${ACC_DIR}/preprocess.sh $2 $1 | ${ACC_DIR}/build/acc ${COMPILE_FLAGS} > ${CUH_FILENAME}
|
||||||
|
9
acc/mhd_solver/stencil_defines.h
Normal file
9
acc/mhd_solver/stencil_defines.h
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#define STENCIL_ORDER (6)
|
||||||
|
#define NGHOST (STENCIL_ORDER / 2)
|
||||||
|
#define LDENSITY (1)
|
||||||
|
#define LHYDRO (1)
|
||||||
|
#define LMAGNETIC (0)
|
||||||
|
#define LENTROPY (0)
|
||||||
|
#define LTEMPERATURE (0)
|
||||||
|
#define LFORCING (0)
|
||||||
|
#define LUPWD (0)
|
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Preprocesses the give file using GCC. This script is usually automatically called in
|
# Preprocesses the give file using GCC. This script is usually automatically called in
|
||||||
# ./compile.sh, but may be called also individually for debugging purposes.
|
# ./compile.sh, but may be called also individually for debugging purposes.
|
||||||
gcc -E -x c ${@} | sed "s/#.*//g"
|
cat ${@} | gcc -x c -E - | sed "s/#.*//g"
|
||||||
|
@@ -69,14 +69,7 @@ extern "C" {
|
|||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#ifndef USER_PROVIDED_DEFINES
|
#ifndef USER_PROVIDED_DEFINES
|
||||||
#define STENCIL_ORDER (6)
|
#include "acc/mhd_solver/stencil_defines.h" // TODO: this should be in a standard location
|
||||||
#define NGHOST (STENCIL_ORDER / 2)
|
|
||||||
#define LDENSITY (1)
|
|
||||||
#define LHYDRO (1)
|
|
||||||
#define LMAGNETIC (1)
|
|
||||||
#define LENTROPY (1)
|
|
||||||
#define LTEMPERATURE (0)
|
|
||||||
#define LFORCING (1)
|
|
||||||
#endif
|
#endif
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ fi
|
|||||||
|
|
||||||
KERNEL_DIR=${AC_HOME}"/src/core/kernels"
|
KERNEL_DIR=${AC_HOME}"/src/core/kernels"
|
||||||
ACC_DIR=${AC_HOME}"/acc"
|
ACC_DIR=${AC_HOME}"/acc"
|
||||||
|
ACC_DEFAULT_HEADER="mhd_solver/stencil_defines.h"
|
||||||
ACC_DEFAULT_SAS="mhd_solver/stencil_assembly.sas"
|
ACC_DEFAULT_SAS="mhd_solver/stencil_assembly.sas"
|
||||||
ACC_DEFAULT_SPS="mhd_solver/stencil_process.sps"
|
ACC_DEFAULT_SPS="mhd_solver/stencil_process.sps"
|
||||||
|
|
||||||
@@ -15,12 +16,13 @@ ${ACC_DIR}/clean.sh
|
|||||||
${ACC_DIR}/build_acc.sh
|
${ACC_DIR}/build_acc.sh
|
||||||
|
|
||||||
|
|
||||||
|
ACC_HEADER=${ACC_DEFAULT_HEADER}
|
||||||
ACC_SAS=${ACC_DEFAULT_SAS}
|
ACC_SAS=${ACC_DEFAULT_SAS}
|
||||||
ACC_SPS=${ACC_DEFAULT_SPS}
|
ACC_SPS=${ACC_DEFAULT_SPS}
|
||||||
|
|
||||||
while [ "$#" -gt 0 ]
|
while [ "$#" -gt 0 ]
|
||||||
do
|
do
|
||||||
case $1 in
|
case $1 in
|
||||||
-h|--help)
|
-h|--help)
|
||||||
echo "You can set a custom files for DSL under the path $AC_HOME/"
|
echo "You can set a custom files for DSL under the path $AC_HOME/"
|
||||||
echo "Example:"
|
echo "Example:"
|
||||||
@@ -44,9 +46,10 @@ do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
echo "Header file:" ${ACC_DIR}/${ACC_HEADER}
|
||||||
echo "Assembly file: ${ACC_DIR}/${ACC_SAS}"
|
echo "Assembly file: ${ACC_DIR}/${ACC_SAS}"
|
||||||
echo "Process file: ${ACC_DIR}/${ACC_SPS}"
|
echo "Process file: ${ACC_DIR}/${ACC_SPS}"
|
||||||
|
|
||||||
cd ${KERNEL_DIR}
|
cd ${KERNEL_DIR}
|
||||||
${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SAS}
|
${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SAS} ${ACC_DIR}/${ACC_HEADER}
|
||||||
${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SPS}
|
${ACC_DIR}/compile.sh ${ACC_DIR}/${ACC_SPS} ${ACC_DIR}/${ACC_HEADER}
|
||||||
|
Reference in New Issue
Block a user