diff --git a/acc/mhd_solver/stencil_defines.h b/acc/mhd_solver/stencil_defines.h index c807401..ed67f5f 100644 --- a/acc/mhd_solver/stencil_defines.h +++ b/acc/mhd_solver/stencil_defines.h @@ -78,6 +78,7 @@ FUNC(AC_sink_pos_y),\ FUNC(AC_sink_pos_z),\ FUNC(AC_M_sink),\ + FUNC(AC_soft),\ /* Run params */\ FUNC(AC_cdt), \ FUNC(AC_cdtv), \ @@ -120,7 +121,7 @@ FUNC(AC_ff_hel_imz),\ /* Additional helper params */\ /* (deduced from other params do not set these directly!) */\ - FUNC(AC_G_CONST),\ + FUNC(AC_G_const),\ FUNC(AC_GM_star),\ FUNC(AC_sq2GM_star),\ FUNC(AC_cs2_sound), \ diff --git a/acc/mhd_solver/stencil_process.sps b/acc/mhd_solver/stencil_process.sps index 0d47dad..6ac6e4f 100644 --- a/acc/mhd_solver/stencil_process.sps +++ b/acc/mhd_solver/stencil_process.sps @@ -21,7 +21,6 @@ uniform int nz_min; uniform int nx; uniform int ny; uniform int nz; -//Added declaration for constants used for sink particle. Vector value(in Vector uu) @@ -69,8 +68,8 @@ sink_gravity(int3 globalVertexIdx){ DCONST_REAL(AC_sink_pos_y), DCONST_REAL(AC_sink_pos_z)}; const Scalar distance = length(grid_pos - sink_pos); - const Scalar soft = 0.12; - const Scalar gravity_magnitude = (Scalar(0.01) * sink_mass) / pow(((distance * distance) + soft*soft), 1.5); + const Scalar soft = DCONST_REAL(AC_soft); + const Scalar gravity_magnitude = (AC_G_const * sink_mass) / pow(((distance * distance) + soft*soft), 1.5); const Vector direction = (Vector){(sink_pos.x - grid_pos.x) / distance, (sink_pos.y - grid_pos.y) / distance, (sink_pos.z - grid_pos.z) / distance}; diff --git a/config/astaroth.conf b/config/astaroth.conf index 7235811..747b8e9 100644 --- a/config/astaroth.conf +++ b/config/astaroth.conf @@ -54,6 +54,12 @@ AC_sink_pos_x = 3.14 AC_sink_pos_y = 0.0 AC_sink_pos_z = 0.0 AC_M_sink = 1.0 +AC_soft = 0.12 + +// Physical properties of the domain +AC_unit_velocity = 1.0 +AC_unit_density = 1.0 +AC_unit_length = 1.0 /* * ============================================================================= diff --git a/src/standalone/config_loader.cc b/src/standalone/config_loader.cc index 7a0a509..f3d7aa3 100644 --- a/src/standalone/config_loader.cc +++ b/src/standalone/config_loader.cc @@ -137,19 +137,17 @@ update_config(AcMeshInfo* config) 6.674e-8); // g/cm3/s GGS definition //TODO define in a separate module AcReal M_sun = AcReal(1.989e33); // g solar mass - config->real_params[AC_M_star] = config->real_params[AC_M_star] * M_sun / + config->real_params[AC_M_sink] = config->real_params[AC_M_sink] * M_sun / ((config->real_params[AC_unit_length] * config->real_params[AC_unit_length] * config->real_params[AC_unit_length]) * config->real_params[AC_unit_density]); - config->real_params[AC_G_CONST] = G_CONST_CGS / ((config->real_params[AC_unit_velocity] * + config->real_params[AC_G_const] = G_CONST_CGS / ((config->real_params[AC_unit_velocity] * config->real_params[AC_unit_velocity]) / (config->real_params[AC_unit_density] * config->real_params[AC_unit_length])); - config->real_params[AC_GM_star] = config->real_params[AC_M_star] * - config->real_params[AC_G_CONST]; config->real_params[AC_sq2GM_star] = AcReal(sqrt(AcReal(2) * config->real_params[AC_GM_star])); #if VERBOSE_PRINTING // Defined in astaroth.h diff --git a/src/standalone/simulation.cc b/src/standalone/simulation.cc index 1b553d5..ff131f5 100644 --- a/src/standalone/simulation.cc +++ b/src/standalone/simulation.cc @@ -95,6 +95,9 @@ write_mesh_info(const AcMeshInfo* config) fprintf(infotxt, "real AC_sink_pos_y %e \n", (double)config->real_params[AC_sink_pos_y]); fprintf(infotxt, "real AC_sink_pos_z %e \n", (double)config->real_params[AC_sink_pos_z]); fprintf(infotxt, "real AC_M_sink %e \n", (double)config->real_params[AC_M_sink]); + fprintf(infotxt, "real AC_soft %e \n", (double)config->real_params[AC_soft]); + + fprintf(infotxt, "real AC_G_const %e \n", (double)config->real_params[AC_G_const]); fclose(infotxt); }