diff options
author | knarf <knarf@a192deed-9f5d-41fb-bb60-7f59df5b1b8d> | 2009-12-02 22:22:53 +0000 |
---|---|---|
committer | knarf <knarf@a192deed-9f5d-41fb-bb60-7f59df5b1b8d> | 2009-12-02 22:22:53 +0000 |
commit | 9bdbc9209f0004429393aad47d0973046a4ee0dc (patch) | |
tree | 1468bb1aa622e40126a1f25dd42b7ffe6b23ccdc /src/EOS_GP.c | |
parent | 794e79d409732b82bb8871444d6e17c80b0e879c (diff) |
thorns for general eos interface (moved from Whisky_Dev repositories)
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinEOS/EOSG_Polytrope/trunk@2 a192deed-9f5d-41fb-bb60-7f59df5b1b8d
Diffstat (limited to 'src/EOS_GP.c')
-rwxr-xr-x | src/EOS_GP.c | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/src/EOS_GP.c b/src/EOS_GP.c new file mode 100755 index 0000000..a9ea0b6 --- /dev/null +++ b/src/EOS_GP.c @@ -0,0 +1,140 @@ +#include <ctype.h> +#include <string.h> +#include <stdlib.h> +#include <stdio.h> + +#include "cctk.h" +#include "cctk_Parameters.h" +#include "cctk_Arguments.h" + +#include "EOS_GP.h" + +void CCTK_FCALL CCTK_FNAME(EOS_GP_Pressure) (const CCTK_INT* nelems, + const CCTK_REAL* rho, + const CCTK_REAL* press); +void CCTK_FCALL CCTK_FNAME(EOS_GP_IntEn) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* inten); +void CCTK_FCALL CCTK_FNAME(EOS_GP_DPDRho) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* dpdrho); +void CCTK_FCALL CCTK_FNAME(EOS_GP_DPDIE) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* dpdie); +void CCTK_FCALL CCTK_FNAME(EOS_GP_cs2) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* cs2); + +CCTK_INT EOS_GP_SetArray(const CCTK_INT param_table, + const CCTK_INT n_elems, + const CCTK_POINTER* indep_vars, + const CCTK_INT* which_deps_to_set, + CCTK_POINTER* dep_vars) +{ + + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0, var; + + for (var = 0; var < N_DEPS; ++var) + { + if (which_deps_to_set[var]) + { + switch (var) + { + case (0): + CCTK_FNAME(EOS_GP_Pressure) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[0]); + break; + case (1): + CCTK_FNAME(EOS_GP_IntEn) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[1]); + break; + case (2): + CCTK_FNAME(EOS_GP_DPDRho) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[2]); + break; + case (3): + CCTK_FNAME(EOS_GP_DPDIE) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[3]); + break; + case (4): + CCTK_FNAME(EOS_GP_cs2) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[4]); + break; + } + } + } + + return ierr; +} + +void CCTK_FCALL CCTK_FNAME(EOS_GP_Inv_Rho) (const CCTK_INT* nelems, + const CCTK_REAL* rho, + const CCTK_REAL* press); +void CCTK_FCALL CCTK_FNAME(EOS_GP_Inv_IntEn) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* inten); +void CCTK_FCALL CCTK_FNAME(EOS_GP_Inv_DPDRho) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* dpdrho); +void CCTK_FCALL CCTK_FNAME(EOS_GP_Inv_DPDIE) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* dpdie); +void CCTK_FCALL CCTK_FNAME(EOS_GP_Inv_cs2) (const CCTK_INT* nelems, + const CCTK_REAL* const rho, + const CCTK_REAL* cs2); + +CCTK_INT EOS_GP_Inverse_SetArray(const CCTK_INT param_table, + const CCTK_INT n_elems, + const CCTK_POINTER* indep_vars, + const CCTK_INT* which_deps_to_set, + CCTK_POINTER* dep_vars) +{ + + DECLARE_CCTK_PARAMETERS; + + CCTK_INT ierr = 0, var, dim; + + for (var = 0; var < N_DEPS; ++var) + { + if (which_deps_to_set[var]) + { + switch (var) + { + case (0): + CCTK_FNAME(EOS_GP_Inv_Rho) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[0]); + break; + case (1): + CCTK_FNAME(EOS_GP_Inv_IntEn) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[1]); + break; + case (2): + CCTK_FNAME(EOS_GP_Inv_DPDRho) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[2]); + break; + case (3): + CCTK_FNAME(EOS_GP_Inv_DPDIE) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[3]); + break; + case (4): + CCTK_FNAME(EOS_GP_Inv_cs2) (&n_elems, + (const CCTK_REAL*)indep_vars[0], + (const CCTK_REAL*)dep_vars[4]); + break; + } + } + } + + return ierr; +} |