MA Alexander Grunewald/Code-Fragmente: Difference between revisions

From Arbeitsgruppe Kuiper
Jump to navigation Jump to search
m (→‎in body_force.c: Einrückung)
m (.h)
Line 34: Line 34:
</syntaxhighlight>
</syntaxhighlight>


== in userdefined_parameters ==
== in userdefined_parameters.h ==


<syntaxhighlight lang="C">
<syntaxhighlight lang="C">

Revision as of 12:45, 12 February 2026

Störung in der Beschleunigung

in init.c

Die Zeile

data->Vc[VX2][kl][jl][il] += perturbation_amplitude * sin(perturbation_mode * 2.0*M_PI * x1 / (Xmax-Xmin)) * ampy;

muss natürlich raus. (Und alles was dazugehört, auch raus.)

in body_force.c

    //
    // Costant gravitational field in the x2-direction:
    //
    g[JDIR] = - G_GravityConstant * SolarMass / (SolarRadius*SolarRadius);

    // perturbation
    if (g_time < g_inputParam[IC_Perturbation_Duration_cu]) {
      // code time unit = 1 year (see user_defined_parameters.h)

      double g_grav = G_GravityConstant * SolarMass / (SolarRadius*SolarRadius),
	    perturbation_mode  = g_inputParam[IC_Perturbation_mode], // dimensionless and integer
	    perturbation_amplitude  = g_inputParam[IC_Perturbation_Amplitude_g]*g_grav,
	    Xmin = grid->xl_glob[IDIR][grid->gbeg[IDIR]],
	    Xmax = grid->xr_glob[IDIR][grid->gend[IDIR]],
	    Ymin = grid->xl_glob[JDIR][grid->gbeg[JDIR]],
	    Ymax = grid->xr_glob[JDIR][grid->gend[JDIR]],
	    ampy = perturbation_amplitude * exp(- 10.0 * fabs(0.5 - (x2-Ymin) / (Ymax-Ymin)));

      g[JDIR] += ampy * sin(perturbation_mode * 2.0*M_PI * x1 / (Xmax-Xmin));
    }

in userdefined_parameters.h

//
// Specify names of user defined parameters:
//
#define IC_Temperature_X2BEG_K          0
#define IC_Temperature_X2END_K          1
#define IC_Perturbation_mode            2
#define IC_Perturbation_Amplitude_g     3
#define IC_Perturbation_Duration_cu     4


//
// Specify number of user defined parameters:
//
#define USER_DEF_PARAMETERS             5