Dear fipy folks --

I am solving a problem of ocean circulation on a thin spherical shell; the
domain is too large to ignore the spherical nature of the earth. The
problem is of the form

       eq = (DiffusionTerm(var=Psi,coeff=DiffCoeff)+
ExponentialConvectionTerm(var=Psi,coeff=convCoeff))

And I have incorporated all the of the appropriate metric terms for a
spherical shell into the coefficients above. My problem comes as I strive
to make the solution more realistic by applying Neumann BC's to some parts
of the problem. The usual formulation for setting \Del\dot\Psi \dot normal
= 1

       psi.faceGrad.constrain(1.0*mesh.faceNormals,faceMask)

will not work because on a spherical shell the gradient is equal to

       \Del f = (1/r) dF/d(lat)*(unit vector latitude) +
(1/(r*cos(lat)))*dF/d(long)*(unit vector longitude)

Is there any easy way to constrain the faceGrad to something like

        constant = A*dPsi/dx+B*dPsi/dy

where x and y are the spatial coordinates, and A and B are arbitrary
factors?  That way I could easily include the metrics...

Thanks,
Jamie Pringle
University of New Hampshire
_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to