PyNSol
a Language Oriented Programming approach to finite differences
PyNSol is yet another PDE description language, implemented entirely as extensions to Python. Among its design goals are
===
To express FD and FV models tersely and in a cognitively accessible manner
To facilitate experiments in time differencing schemes and coupling
To inherit as much as possible from the interactive python environment
To facilitate high performance integration of physics modules (especially column physics)
To facilitate code-introspection tools such as testing, performance prediction, automatic parallelization, and automatic differentiation.
===
So far it's much less than all that, but it does manage to turn this little Python object into a model, and execute it:
shallow = {
"u_t": "- csq * p_x",
"v_t": "- csq * p_y",
"p_t": "- u_x - v_y"
}