Scrambler  1
CoolingSrc Module Reference

Module for handling cooling source terms. More...

+ Collaboration diagram for CoolingSrc:

List of all members.

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

Detailed Description

Module for handling cooling source terms.

Definition at line 32 of file cooling.f90.


Member Function/Subroutine Documentation

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.

Parameters:
coolingobjCooling source object
xlocation of center of cell
dxsize 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.

Parameters:
coolingobjCooling source object
qvariable 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

Parameters:
qFluid variable vector q
dqdtUpdate to be applied to q
coolingobjCooling 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

Parameters:
qFluid variable vector q
dqdtUpdate to be applied to q
coolingobjCooling 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

Parameters:
qFluid variable vector q
dqdtUpdate to be applied to q
coolingobjCooling 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

Parameters:
qFluid variable vector q
dqdtUpdate to be applied to q
coolingobjCooling 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

Parameters:
qFluid variable vector q
dqdtUpdate to be applied to q
coolingobjCooling 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.

Parameters:
chandleAn active Chombo file handle object.
cooling_objectAn 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.

Parameters:
chandleA chombo file handle.
obj_countThe 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.

Parameters:
chandleAn active Chombo handle.

Definition at line 1060 of file cooling.f90.


Member Data Documentation

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.


The documentation for this module was generated from the following file:
 All Classes Files Functions Variables