Christensen, U. R., Yuen, D. A., 1984. The Interaction of a Subducting Litho-
spheric Slab with a Chemical or Phase Boundary. Journal of Geophysical
Research
dp = edict({#Main physical paramters
'depth':2*660e3, #Depth
'rho':3300., #reference density
'g':9.8, #surface gravity
'eta0':1e20, #Dislocation creep at 250 km, 1573 K, 1e-15 s-1
'k':1e-6, #thermal diffusivity
'a':3e-5, #surface thermal expansivity
...
'low_mantle_visc_fac':1.
})
Benefits of storing your parameters in dictionaries.
rho vs dp.rho
#Scaling factors, used to map the dimensional parameters to dimensionless
sf = edict({'stress':dp.LS**2/(dp.k*dp.eta0),
'lith_grad':dp.rho*dp.g*(dp.LS)**3/(dp.eta0*dp.k) ,
'vel':dp.LS/dp.k,
'SR':dp.LS**2/dp.k,
'W':(dp.rho*dp.g*dp.LS)/(dp.R*dp.deltaTa), #Including adiabatic compression, and deltaTa
'E': 1./(dp.R*dp.deltaTa), #using deltaTa, the guesstimated adiabatic temp difference
'Ads':1./((dp.eta0**(-1.*dp.n))*(dp.k**(1. - dp.n))*(dp.LS**(-2.+ (2.*dp.n)))),
'Adf':dp.eta0,
...
#dimensionless parameters
ndp = edict({'RA':(dp.g*dp.rho*dp.a*dp.deltaTa*(dp.LS)**3)/(dp.k*dp.eta0),
'Di': dp.a*dp.g*dp.LS/dp.Cp, #Dissipation number
'H':0.,
#Temperatures and reference depth
...
Benefits of storing your parameters in dictionaries.
docker run -v $PWD:/workspace -i -t --rm dansand/underworld2-dev \
mpirun -np 8 python kaplan_dev.py md.RES=48 md.ppc=50 dp.Edf*=0.7
class component_phases():
"""
Class that allows you to create 'phase functions' for a mineral component
"""
def __init__(self,name, depths,temps, widths,claps,densities):
"""
Class initialiser.
Parameter
---------
name : str
'Component', e.g olivine, pyroxene-garnet
depths: list
list of transition depths in kilometers
widths: list
list of transition widths in kilometers
claps: list
list of Clapeyron slopes in Pa/K
densities: list
list of density changes in kg/m3
Returns
-------
dp : Dictionary storing the phase-transition vales
def nd_phase(self, reduced_p, widthPh):
"""
Creates an Underworld function, representing the phase function in the domain
"""
return 0.5*(1. + fn.math.tanh(reduced_p/(widthPh)))
def buoyancy_sum(self, temperatureField, depthFn, gravityscale, lengthscale, diffusivityscale, viscosityscale):
"""
Creates an Underworld function, representing the Sum of the individual phase functions...
and the associated density changes:
pf_sum = Sum_k{ (Ra*delRho_k*pf_k/rho_0*eta_0*delta_t)}
-----------
temperatureField : underworld.mesh._meshvariable.MeshVariable
...need to put warning in about running build_nd_dict first
"""
bouyancy_factor = (gravityscale*lengthscale**3)/(viscosityscale*diffusivityscale)
pf_sum = uw.function.misc.constant(0.)
for phaseId in range(len(self.dp['depths'])):
#build reduced pressure
rp = self.nd_reduced_pressure(depthFn,
temperatureField,
self.ndp['depths'][phaseId ],
self.ndp['claps'][phaseId ],
self.ndp['temps'][phaseId ])
#build phase function
pf = self.nd_phase(rp, self.ndp['widths'][phaseId ])
pf_sum += bouyancy_factor*pf*self.dp['densities'][phaseId ] #we want the dimensional densities here
buoyancy_factor = (dp.g*dp.LS**3)/(dp.eta0*dp.k)
basalt_comp_buoyancy = (dp.rho - 2940.)*buoyancy_factor
harz_comp_buoyancy = (dp.rho - 3235.)*buoyancy_factor
pyrolite_comp_buoyancy = (dp.rho - 3300.)*buoyancy_factor
if not md.compBuoyancy:
pyrolitebuoyancyFn = (ndp.RA*temperatureField*taFn)
harzbuoyancyFn = (ndp.RA*temperatureField*taFn)
basaltbuoyancyFn = (ndp.RA*temperatureField*taFn)
else :
pyrolitebuoyancyFn = (ndp.RA*temperatureField*taFn) -\
(0.6*olivine_phase_buoyancy + 0.4*garnet_phase_buoyancy) +\
pyrolite_comp_buoyancy
harzbuoyancyFn = (ndp.RA*temperatureField*taFn) -\
(0.8*olivine_phase_buoyancy + 0.2*garnet_phase_buoyancy) +\
harz_comp_buoyancy
basaltbuoyancyFn = (ndp.RA*temperatureField*taFn) -\
(1.*garnet_phase_buoyancy) +\
basalt_comp_buoyancy
My thesis research involves three main themes:
This talk:
Subduction velocity patterns in young subduction zones
Background:
Even with comparable approaches (rheology), different researchers seem to generate quite different behaviour
By the way, what do we like / dislike about these kind of models...
By the way, what do we like / dislike about these kind of models...
One thing these types of models do agree on is the a distinctive velocity pattern in the free sinking and transition-zone interaction phase
This is a pretty big signal - hard to disguise, if this is the way SZs really evolve
So what might be wrong with this model?
So what might be wrong with this models?
Discounting all effects due to 3d, and non- plate-scale mantle flow...
perhaps we can isolate three factors to investigate...
Discounting all effects due to 3d, and non- plate-scale mantle flow...
perhaps we can isolate three factors to investigate...
Questions
Questions