PLUTO
split_source.c File Reference

Include source terms using operator splitting. More...

#include "pluto.h"
Include dependency graph for split_source.c:

Go to the source code of this file.

Functions

void SplitSource (const Data *d, double dt, Time_Step *Dts, Grid *grid)
 

Detailed Description

Include source terms using operator splitting.

The SplitSource() function handles source terms in a separate step using operator splitting. It is called from Integrate() between standard hydro advances. At present these source terms are one or more of the following:

  • optically thin radiative losses (cooling)
  • Diffusion operators:
    • resistivity
    • Thermal conduction
    • Viscosity
  • additional user-defined terms may also be included here.
Authors
A. Mignone (migno.nosp@m.ne@p.nosp@m.h.uni.nosp@m.to.i.nosp@m.t)
Date
May 10, 2013

Definition in file split_source.c.

Function Documentation

void SplitSource ( const Data d,
double  dt,
Time_Step Dts,
Grid grid 
)

Take one step on operator-split source terms.

Parameters
[in,out]dpointer to PLUTO Data structure containing the solution array updated from the most recent call
[in]dtthe time step used to integrate the source terms
[in]Dtspointer to the time step structure
[in]gridpointer to an array of grid structures

Definition at line 25 of file split_source.c.

38 {
39 /* ---- GLM source term treated in main ---- */
40 /*
41  #ifdef GLM_MHD
42  GLM_SOURCE (d->Vc, dt, grid);
43  #endif
44 */
45 /* ---------------------------------------------
46  Cooling/Heating losses
47  --------------------------------------------- */
48 
49  #if COOLING != NO
50  #if COOLING == POWER_LAW /* -- solve exactly -- */
51  PowerLawCooling (d->Vc, dt, Dts, grid);
52  #else
53  CoolingSource (d, dt, Dts, grid);
54  #endif
55  #endif
56 
57 /* ----------------------------------------------
58  Parabolic terms using STS:
59 
60  - resistivity
61  - thermal conduction
62  - viscosity
63  ---------------------------------------------- */
64 
65  #if (PARABOLIC_FLUX & SUPER_TIME_STEPPING)
66  STS (d, Dts, grid);
67  #endif
68 
69  #if (PARABOLIC_FLUX & RK_CHEBYSHEV)
70  RKC (d, Dts, grid);
71  #endif
72 }
void RKC(const Data *d, Time_Step *, Grid *)
Definition: rkc.c:58
double **** Vc
The main four-index data array used for cell-centered primitive variables.
Definition: structs.h:31
void CoolingSource(const Data *d, double dt, Time_Step *Dts, Grid *GXYZ)
void PowerLawCooling(Data_Arr VV, double dt, Time_Step *Dts, Grid *grid)
Definition: cooling.c:50
void STS(const Data *d, Time_Step *, Grid *)
Definition: sts.c:55

Here is the call graph for this function:

Here is the caller graph for this function: