aboutsummaryrefslogtreecommitdiff
path: root/src/Initialisation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Initialisation.c')
-rw-r--r--src/Initialisation.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/Initialisation.c b/src/Initialisation.c
index 4ed861f..9c6e366 100644
--- a/src/Initialisation.c
+++ b/src/Initialisation.c
@@ -213,6 +213,106 @@ void HydroBase_Bvec_zero (CCTK_ARGUMENTS)
}
}
+void HydroBase_Avec_zero (CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ int const np = cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
+
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Avec[i] = 0.0;
+ Avec[i+ np] = 0.0;
+ Avec[i+2*np] = 0.0;
+ }
+
+ if (CCTK_EQUALS (initial_data_setup_method, "init_some_levels") ||
+ CCTK_EQUALS (initial_data_setup_method, "init_single_level"))
+ {
+ /* do nothing */
+ }
+ else if (CCTK_EQUALS (initial_data_setup_method, "init_all_levels"))
+ {
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Avec") >= 2) {
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Avec_p[i] = 0.0;
+ Avec_p[i+ np] = 0.0;
+ Avec_p[i+2*np] = 0.0;
+ }
+ }
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Avec") >= 3) {
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Avec_p_p[i] = 0.0;
+ Avec_p_p[i+ np] = 0.0;
+ Avec_p_p[i+2*np] = 0.0;
+ }
+ }
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Avec") >= 4) {
+ CCTK_WARN (CCTK_WARN_ABORT,
+ "Too many active time levels for HydroBase::Avec");
+ }
+
+ }
+ else
+ {
+ CCTK_WARN (CCTK_WARN_ABORT,
+ "Unsupported parameter value for InitBase::initial_data_setup_method");
+ }
+}
+
+void HydroBase_Aphi_zero (CCTK_ARGUMENTS)
+{
+ DECLARE_CCTK_ARGUMENTS;
+ DECLARE_CCTK_PARAMETERS;
+
+ int const np = cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
+
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Aphi[i] = 0.0;
+ }
+
+ if (CCTK_EQUALS (initial_data_setup_method, "init_some_levels") ||
+ CCTK_EQUALS (initial_data_setup_method, "init_single_level"))
+ {
+ /* do nothing */
+ }
+ else if (CCTK_EQUALS (initial_data_setup_method, "init_all_levels"))
+ {
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Aphi") >= 2) {
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Aphi_p[i] = 0.0;
+ }
+ }
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Aphi") >= 3) {
+#pragma omp parallel for
+ for (int i=0; i<np; ++i) {
+ Aphi_p_p[i] = 0.0;
+ }
+ }
+
+ if (CCTK_ActiveTimeLevels(cctkGH, "HydroBase::Aphi") >= 4) {
+ CCTK_WARN (CCTK_WARN_ABORT,
+ "Too many active time levels for HydroBase::Aphi");
+ }
+
+ }
+ else
+ {
+ CCTK_WARN (CCTK_WARN_ABORT,
+ "Unsupported parameter value for InitBase::initial_data_setup_method");
+ }
+}
+
void HydroBase_InitExcisionMask (CCTK_ARGUMENTS)
{
DECLARE_CCTK_ARGUMENTS;