### A revisit of spatial discretization

Discretization by definition from Wikipedia: In applied mathematicsdiscretization is the process of transferring continuous functions, models, variables, and equations into discrete counterparts. This process is usually carried out as a first step toward making them suitable for numerical evaluation and implementation on digital computers.
Now we add “spatial” to the term. The first intuitive definition is the discretization of functions in the spatial domain.
There are two elements in this description: functions and spatial domain.
For functions, we often refer to integral or ODEs/PDEs in numerical simulations. If these functions involve with gradient information, then they depend on spatial domain, which is how gradient is calculated.
For spatial domain, we often refer to mesh or grid. And mesh can generally be classified into structured and unstructured grid.
In practice, we have spent great effects on both aspects of the spatial discretization: mesh and corresponding function solvers.
In Earth science, lots of functions involve with gradient. For example, gas exchange depends on pressure gradient or concentration gradient. As a result, Our spatial discretization is always associated with mesh grid.
Many studies have developed methods to solve equations using the finite difference method (FDM), the finite volume method (FVM) and the finite element method (FEM). However, many of them have not considered the effects of mesh grid on these solvers. For example, most models use array to represent spatial domain. In this case, water flow at any location can only flow to 4 directions. However, in reality, water can flow to any direction because Earth has no discretization. The problem is how can we represent a direction if it is 30 degree?
We need a better way to represent the spatial domain decomposition. We can improve the resolution. We can also use unstructured grid such as TIN. Ideally, we need a mesh that matches with reality. In my opinion, adaptive hexagon grid mesh is closest.
• It can cover the sphere.
• It proves consistent connectivity.
• It provides less assumption.
• It also provide 6 flow directions.
Without a solid mesh grid, the simulation which relies on mesh may contain great uncertainty. And these uncertainty may be even larger than the uncertainty caused by FDM/FVM/FEM and algorithms.

### Numerical simulation: ode/pde solver and spin-up

For Earth Science model development, I inevitably have to deal with ODE and PDE equations. I also have come across some discussion related to this topic, i.e.,

https://www.researchgate.net/post/What_does_one_mean_by_Model_Spin_Up_Time

In an attempt to answer this question, as well as redefine the problem I am dealing with, I decided to organize some materials to illustrate our current state on this topic.

Models are essentially equations. In Earth Science, these equations are usually ODE or PDE. So I want to discuss this from a mathematical perspective.

Ideally, we want to solve these ODE/PDE with initial condition (IC) and boundary condition (BC) using various numerical methods.
https://en.wikipedia.org/wiki/Initial_value_problem
https://en.wikipedia.org/wiki/Boundary_value_problem

Because of the nature of geology, everything is similar to its neighbors. So we can construct a system of equations which may have multiple equation for each single grid cell. Now we have an array of equation…

### A modern way of automate calibration of a hydrologic model

Calibration of hydrologic model can be tedious, that is why we spent great efforts to automate this process. And sometimes we need some tool that is universal, reusable, so that we don't have to re-invent the wheel again and again.

Today I want to introduce a very effective framework to conduct a hydrologic model calibration. I call it framework because you can apply this method to any model and use any of your preferred language in some steps.

Here is the framework:
Let me explain what is going on:
PEST generate new parameter file based on a simple template;PEST call Python interface to start model simulation;Python interface translates parameter file to model input files;Python interface launches SWAT simulation;Python interface extracts results; andPEST analyzes result and updates parameters.
A few highlights here:
This is an example for a SWAT model, and you can change it to any model you are calibrating;I used Python, but you can also use any other language such as C/C++ or eve…

### Surface water hydrology modeling: deal with different types of precipitation

In surface water hydrology, precipitation is one of the most important components.
However, withing most hydrology models, it is unclear of how precipitation is actually represented.
For example, in a typical water cycle illustration from Wiki, precipitation is described as
Here is the question, what form does precipitation actually take when it falls to land surface? Water can be in either liquid (water, rain), solid(ice, snow) or gas(water vapor) forms. How about precipitation? Surely most of time precipitation is either rain of snow. In some cases, it takes form in hail, etc.
Since the physical proprieties of water and snow are significantly different, it is necessary to distinguish them within surface water hydrology models. In some scenarios, rain and snow may co-exist in a mixed precipitation event. In this case, surface water hydrology models need to deal with both of them. The difficulty is how to manage the two-phase mass and energy balance. A complete comparison of how differ…