Scrambler
1
|
Module for handling cooling source terms. More...
Data Types | |
type | CoolingDef |
Public Member Functions | |
subroutine, public | CoolingIO (i_IO) |
Cooling IO frontend subroutine i_IO Integer, 0==output, 1==input. | |
INTEGER function, public | Cooling_CountObjects () |
Returns the number of cooling objects in the firstcoolingobj list. | |
subroutine, public | Cooling (q, dqdt, x, dx, lform) |
Main cooling subroutine, loops over linked list and calls specific cooling source(s) q variable vector q dqdt update to variable vector q x location of current cell center dx size of current cell. | |
REAL(KIND=qPrec) function, public | GetCoolingStrength (q, lform) |
REAL(KIND=qPrec) function, public | GetIICoolEqTemp (rho) |
rho is in part/cc and returns a temp in K | |
REAL(KIND=qPrec) function, public | GetIICoolEqDensity (p) |
p is in units of Kelvin/cc and returns a density in part/cc | |
REAL(KIND=qPrec) function, public | IICoolingRate (T) |
REAL(KIND=qPrec) function, public | Zweight (T) |
subroutine, public | GetZvars (nvecin, neout, xout, nHout) |
REAL(KIND=qPrec) function, public | ZCoolingRate (nein, tempin, xin) |
subroutine, public | CreateCoolingObject (coolingobj, userid) |
subroutine, public | DestroyCoolingObject (coolingobj, id) |
LOGICAL function, public | CoolingCheck () |
subroutine, public | InitCoolingTracers (sources) |
subroutine, public | InitCoolingElliptics (sources) |
subroutine, public | CoolingFinalizeInit |
Finalize initialization of cooling sources, including allocating relevant tables. | |
subroutine, public | InitIICool (coolingobj) |
Allocate and fill II cooling table, finalize initialization of II cooling source. | |
subroutine, public | InitZCool |
Allocate and fill Z cooling table, finalize initialization of Z cooling source. | |
subroutine, public | Cooling_ReadObjectFromChombo (chandle, cooling_object) |
Read the data for a single cooling object in from a Chombo file. | |
subroutine, public | Cooling_InitChomboDatasets (chandle, obj_count) |
Creates datasets for cooling objects within a Chombo file. | |
subroutine, public | Cooling_WriteObjectToChombo (chandle, cooling_object) |
Writes the data from a single cooling object to a Chombo file. | |
Public Attributes | |
INTEGER, parameter, public | NoCool = 0 |
INTEGER, parameter, public | AnalyticCool = 1 |
INTEGER, parameter, public | DMCool = 2 |
INTEGER, parameter, public | IICool = 3 |
INTEGER, parameter, public | NEQCool = 4 |
INTEGER, parameter, public | ZCool = 5 |
TYPE(CoolingDef), pointer, public | firstcoolingobj |
TYPE(CoolingDef), pointer, public | lastcoolingobj |
REAL(KIND=qPREC), public | IICoolPar = (/2d-26,1d7,1.184d5,1d3,1.4d-2,9.2d1,0d0/) |
Private Member Functions | |
subroutine | OutputCooling |
Cooling output subroutine. | |
subroutine | InputCooling |
Cooling input subroutine. | |
LOGICAL function | TestRegion (coolingobj, x, dx) |
Determines if cooling source term is to be applied in this region. | |
LOGICAL function | TestRegime (coolingobj, q) |
Determines if cooling source term is to be applied in this regime. | |
subroutine | AnalyticCooling (q, dqdt, coolingobj, lform) |
Analytic cooling source term. | |
REAL(KIND=qPREC) function | AnalyticCoolingStrength (q, coolingobj, lform) |
subroutine | DMCooling (q, dqdt, coolingobj, lform) |
Dalgarno-McCray cooling source term. | |
REAL(KIND=qPrec) function | DMCoolingStrength (q, coolingobj, lform) |
subroutine | IICooling (q, dqdt, coolingobj, lform) |
Inoue-Inutsuka 2008 (arxiv only? http://arxiv.org/abs/0801.0486 ) cooling source term. | |
REAL(KIND=qPREC) function | IIHeatingStrength (q, coolingobj, lform) |
REAL(KIND=qPrec) function | IICoolingStrength (q, coolingobj, lform) |
REAL(KIND=qPrec) function | IIHeatingRate () |
subroutine | NEQCooling (q, dqdt, coolingobj, lform) |
Non-equilibrium microphysics cooling source term. | |
REAL(KIND=qPrec) function | NEQCoolingStrength (q, coolingobj, lform) |
subroutine | ZCooling (q, dqdt, coolingobj, lform) |
ZCooling source term. | |
REAL(KIND=qPrec) function | ZCoolingStrength (q, coolingobj, lform) |
REAL(KIND=qPrec) function | NEQSpeciesChange (q, lform) |
subroutine | AddCoolingObjToList (coolingobj) |
subroutine | RemoveCoolingObjFromList (coolingobj) |
subroutine | InitAnalyticCool (coolingobj) |
Finalize initialization of analytic cooling source. | |
Private Attributes | |
INTEGER | iCoolingObjID = 0 |
REAL(KIND=qPrec), dimension(:), allocatable | IICoolingTab |
REAL(KIND=qPrec), dimension(:), allocatable | lognetab |
REAL(KIND=qPrec), dimension(:), allocatable | temptab |
REAL(KIND=qPrec), dimension(:), allocatable | logxtab |
REAL(KIND=qPrec), dimension(:,:,:), allocatable | ZCoolingTab |
INTEGER | nDensities |
INTEGER | nTemps |
INTEGER | nXs |
REAL(KIND=qPrec) | lognemin |
REAL(KIND=qPrec) | lognemax |
REAL(KIND=qPrec) | tempmin |
REAL(KIND=qPrec) | tempmax |
REAL(KIND=qPrec) | logxmin |
REAL(KIND=qPrec) | logxmax |
Module for handling cooling source terms.
Definition at line 32 of file cooling.f90.
subroutine, public CoolingIO | ( | INTEGER, intent(in) | i_IO | ) |
Cooling IO frontend subroutine i_IO Integer, 0==output, 1==input.
Definition at line 91 of file cooling.f90.
subroutine OutputCooling | ( | ) | [private] |
Cooling output subroutine.
Definition at line 107 of file cooling.f90.
subroutine InputCooling | ( | ) | [private] |
Cooling input subroutine.
Definition at line 120 of file cooling.f90.
INTEGER function, public Cooling_CountObjects | ( | ) |
Returns the number of cooling objects in the firstcoolingobj list.
Definition at line 131 of file cooling.f90.
subroutine, public Cooling | ( | REAL(KIND=qPrec), dimension(:) | q, |
REAL(KIND=qPrec), dimension(:) | dqdt, | ||
REAL(KIND=qPrec), dimension(3) | x, | ||
REAL(KIND=qPrec) | dx, | ||
LOGICAL | lform | ||
) |
Main cooling subroutine, loops over linked list and calls specific cooling source(s) q variable vector q dqdt update to variable vector q x location of current cell center dx size of current cell.
Definition at line 159 of file cooling.f90.
REAL(KIND=qPrec) function, public GetCoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
LOGICAL | lform | ||
) |
Definition at line 196 of file cooling.f90.
LOGICAL function TestRegion | ( | TYPE(CoolingDef), pointer | coolingobj, |
REAL(KIND=xPrec), dimension(3) | x, | ||
REAL(KIND=xPrec) | dx | ||
) | [private] |
Determines if cooling source term is to be applied in this region.
coolingobj | Cooling source object |
x | location of center of cell |
dx | size of cell |
Definition at line 229 of file cooling.f90.
LOGICAL function TestRegime | ( | TYPE(CoolingDef), pointer | coolingobj, |
REAL(KIND=qPrec), dimension(:) | q | ||
) | [private] |
Determines if cooling source term is to be applied in this regime.
coolingobj | Cooling source object |
q | variable vector q |
Definition at line 239 of file cooling.f90.
subroutine AnalyticCooling | ( | REAL(KIND=qPrec), dimension(:) | q, |
REAL(KIND=qPrec), dimension(:), intent(inout) | dqdt, | ||
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Analytic cooling source term.
Analytic cooling source term, where the cooling function is a single power law, alpha*T^beta
q | Fluid variable vector q |
dqdt | Update to be applied to q |
coolingobj | Cooling object |
Definition at line 258 of file cooling.f90.
REAL(KIND=qPREC) function AnalyticCoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 273 of file cooling.f90.
subroutine DMCooling | ( | REAL(KIND=qPrec), dimension(:) | q, |
REAL(KIND=qPrec), dimension(:) | dqdt, | ||
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Dalgarno-McCray cooling source term.
Implementation of DM Cooling curve using piecewise-linear reconstruction of the tabulated curve in log space
q | Fluid variable vector q |
dqdt | Update to be applied to q |
coolingobj | Cooling object |
Definition at line 302 of file cooling.f90.
REAL(KIND=qPrec) function DMCoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 318 of file cooling.f90.
subroutine IICooling | ( | REAL(KIND=qPrec), dimension(:) | q, |
REAL(KIND=qPrec), dimension(:) | dqdt, | ||
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Inoue-Inutsuka 2008 (arxiv only? http://arxiv.org/abs/0801.0486 ) cooling source term.
Implementation of II Cooling curve using piecewise-linear reconstruction of the curve, itself tabulated from a functional form XMU should be 1.27
q | Fluid variable vector q |
dqdt | Update to be applied to q |
coolingobj | Cooling object |
Definition at line 342 of file cooling.f90.
REAL(KIND=qPREC) function IIHeatingStrength | ( | REAL(KIND=qPREC), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 354 of file cooling.f90.
REAL(KIND=qPrec) function IICoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 361 of file cooling.f90.
REAL(KIND=qPrec) function, public GetIICoolEqTemp | ( | REAL(KIND=qPrec) | rho | ) |
rho is in part/cc and returns a temp in K
Definition at line 375 of file cooling.f90.
REAL(KIND=qPrec) function, public GetIICoolEqDensity | ( | REAL(KIND=qPrec) | p | ) |
p is in units of Kelvin/cc and returns a density in part/cc
Definition at line 397 of file cooling.f90.
REAL(KIND=qPrec) function, public IICoolingRate | ( | REAL(KIND=qPrec) | T | ) |
Definition at line 416 of file cooling.f90.
REAL(KIND=qPrec) function IIHeatingRate | ( | ) | [private] |
Definition at line 422 of file cooling.f90.
subroutine NEQCooling | ( | REAL(KIND=qPREC), dimension(:) | q, |
REAL(KIND=qPREC), dimension(:) | dqdt, | ||
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Non-equilibrium microphysics cooling source term.
Calculates ionization and recombination effects on cooling and tracks number densities of H,H2,HI,He,HeII,HeIII
q | Fluid variable vector q |
dqdt | Update to be applied to q |
coolingobj | Cooling object |
Definition at line 433 of file cooling.f90.
REAL(KIND=qPrec) function NEQCoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 448 of file cooling.f90.
subroutine ZCooling | ( | REAL(KIND=qPREC), dimension(:) | q, |
REAL(KIND=qPREC), dimension(:) | dqdt, | ||
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
ZCooling source term.
Uses Pat's cooling tables (forbidden lines between 2000-16500 K) and uses NEQCooling to get more accurate electron density and ionization fraction
q | Fluid variable vector q |
dqdt | Update to be applied to q |
coolingobj | Cooling object |
Definition at line 480 of file cooling.f90.
REAL(KIND=qPrec) function ZCoolingStrength | ( | REAL(KIND=qPrec), dimension(:) | q, |
TYPE(CoolingDef), pointer | coolingobj, | ||
LOGICAL | lform | ||
) | [private] |
Definition at line 495 of file cooling.f90.
REAL(KIND=qPrec) function, public Zweight | ( | REAL(KIND=qPrec) | T | ) |
Definition at line 527 of file cooling.f90.
REAL(KIND=qPrec) function NEQSpeciesChange | ( | REAL(KIND=qPrec), dimension(:) | q, |
LOGICAL | lform | ||
) | [private] |
Definition at line 536 of file cooling.f90.
subroutine, public GetZvars | ( | REAL(KIND=qPrec), dimension(0:nspecieshi), intent(in) | nvecin, |
REAL(KIND=qPrec), intent(out) | neout, | ||
REAL(KIND=qPrec), intent(out) | xout, | ||
REAL(KIND=qPrec), intent(out) | nHout | ||
) |
Definition at line 555 of file cooling.f90.
REAL(KIND=qPrec) function, public ZCoolingRate | ( | REAL(KIND=qPrec), intent(in) | nein, |
REAL(KIND=qPrec), intent(in) | tempin, | ||
REAL(KIND=qPrec), intent(in) | xin | ||
) |
Definition at line 569 of file cooling.f90.
subroutine, public CreateCoolingObject | ( | TYPE(CoolingDef), pointer | coolingobj, |
INTEGER, optional | userid | ||
) |
Definition at line 631 of file cooling.f90.
subroutine, public DestroyCoolingObject | ( | TYPE(CoolingDef), pointer | coolingobj, |
INTEGER, optional | id | ||
) |
Definition at line 664 of file cooling.f90.
subroutine AddCoolingObjToList | ( | TYPE(CoolingDef), pointer | coolingobj | ) | [private] |
Definition at line 683 of file cooling.f90.
subroutine RemoveCoolingObjFromList | ( | TYPE(CoolingDef), pointer | coolingobj | ) | [private] |
Definition at line 696 of file cooling.f90.
LOGICAL function, public CoolingCheck | ( | ) |
Definition at line 713 of file cooling.f90.
subroutine, public InitCoolingTracers | ( | TYPE(SourcesDef), pointer | sources | ) |
Definition at line 734 of file cooling.f90.
subroutine, public InitCoolingElliptics | ( | TYPE(SourcesDef), pointer | sources | ) |
Definition at line 755 of file cooling.f90.
subroutine, public CoolingFinalizeInit | ( | ) |
Finalize initialization of cooling sources, including allocating relevant tables.
Definition at line 776 of file cooling.f90.
subroutine InitAnalyticCool | ( | TYPE(CoolingDef), pointer | coolingobj | ) | [private] |
Finalize initialization of analytic cooling source.
Definition at line 802 of file cooling.f90.
subroutine, public InitIICool | ( | TYPE(CoolingDef), pointer | coolingobj | ) |
Allocate and fill II cooling table, finalize initialization of II cooling source.
Definition at line 818 of file cooling.f90.
subroutine, public InitZCool | ( | ) |
Allocate and fill Z cooling table, finalize initialization of Z cooling source.
Definition at line 843 of file cooling.f90.
subroutine, public Cooling_ReadObjectFromChombo | ( | TYPE(ChomboHandle), pointer | chandle, |
TYPE(CoolingDef), pointer | cooling_object | ||
) |
Read the data for a single cooling object in from a Chombo file.
chandle | An active Chombo file handle object. |
cooling_object | An allocated CoolingDef object. |
Definition at line 856 of file cooling.f90.
subroutine, public Cooling_InitChomboDatasets | ( | TYPE(ChomboHandle), pointer | chandle, |
INTEGER | obj_count | ||
) |
Creates datasets for cooling objects within a Chombo file.
chandle | A chombo file handle. |
obj_count | The number of cooling objects for which space should be allocated. |
Definition at line 998 of file cooling.f90.
subroutine, public Cooling_WriteObjectToChombo | ( | TYPE(ChomboHandle), pointer | chandle, |
TYPE(CoolingDef), pointer | cooling_object | ||
) |
Writes the data from a single cooling object to a Chombo file.
chandle | An active Chombo handle. |
Definition at line 1060 of file cooling.f90.
INTEGER, parameter, public NoCool = 0 |
Definition at line 69 of file cooling.f90.
INTEGER, parameter, public AnalyticCool = 1 |
Definition at line 69 of file cooling.f90.
INTEGER, parameter, public DMCool = 2 |
Definition at line 69 of file cooling.f90.
INTEGER, parameter, public IICool = 3 |
Definition at line 69 of file cooling.f90.
INTEGER, parameter, public NEQCool = 4 |
Definition at line 69 of file cooling.f90.
INTEGER, parameter, public ZCool = 5 |
Definition at line 69 of file cooling.f90.
TYPE(CoolingDef), pointer, public firstcoolingobj |
Definition at line 71 of file cooling.f90.
TYPE(CoolingDef), pointer, public lastcoolingobj |
Definition at line 71 of file cooling.f90.
INTEGER iCoolingObjID = 0 [private] |
Definition at line 72 of file cooling.f90.
REAL(KIND=qPrec), dimension(:), allocatable IICoolingTab [private] |
Definition at line 75 of file cooling.f90.
REAL(KIND=qPrec), dimension(:), allocatable lognetab [private] |
Definition at line 75 of file cooling.f90.
REAL(KIND=qPrec), dimension(:), allocatable temptab [private] |
Definition at line 75 of file cooling.f90.
REAL(KIND=qPrec), dimension(:), allocatable logxtab [private] |
Definition at line 75 of file cooling.f90.
REAL(KIND=qPrec), dimension(:,:,:), allocatable ZCoolingTab [private] |
Definition at line 76 of file cooling.f90.
INTEGER nDensities [private] |
Definition at line 79 of file cooling.f90.
INTEGER nTemps [private] |
Definition at line 79 of file cooling.f90.
INTEGER nXs [private] |
Definition at line 79 of file cooling.f90.
REAL(KIND=qPrec) lognemin [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPrec) lognemax [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPrec) tempmin [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPrec) tempmax [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPrec) logxmin [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPrec) logxmax [private] |
Definition at line 80 of file cooling.f90.
REAL(KIND=qPREC), public IICoolPar = (/2d-26,1d7,1.184d5,1d3,1.4d-2,9.2d1,0d0/) |
Definition at line 81 of file cooling.f90.