PolyMAC_CDO#
PolyMAC discretization is based on the development of Compatible Discrete Operators (CDO) schemes. This discretization should make it possible to apply finite volume schemes to non-conforming meshes, with the sole constraint of arranging star-shaped meshes.
Dual Mesh#
PolyMAC introduces a rather complex dual mesh. To do so, the gravity center of each control volume \(cv \in \{ E, F, \Sigma, V \}\) corresponding respectively to the cells, the faces, the egdes and the points localization, called \(x_{cv}\) has to be introduce. Then we introduce:
- The dual cell \(\widetilde{v}\) is located at the center of gravity of the cell : \(x_{e}\), see Figure Figure 12.
- The dual face \(\widetilde{\sigma}\) is the line that links the gravity center of the face \(x_f\) to the gravity center of the neighbour cells of the face, see Figure Figure 13.
The dual edge \(\widetilde{f}\) is the surface that links the gravity center of all of the neighbouring cells \(x_{e}\), the gravity center of all of the neighbouring faces \(x_{f}\) and the gravity center of the edge \(x_{\sigma}\), see Figure Figure 14.
Figure 12 Dual cell when using PolyMAC_CDO#
Figure 13 Dual face when using PolyMAC_CDO#
Figure 14 Dual edge when using PolyMAC_CDO#
Location of the unknowns#
In PolyMAC, unknowns are discretised according to their “physical” properties. A circulation is discretised over an edge, a flux over a face, a potential over the dual cell. Therefore we have:
The pressure \(p\) is stored at the dual cell: \(p_{\tilde{v}} = p(x_{ev},t)\).
The normal component of the velocity with respect to a face \(f\) is stored as: \(v_{f} = \frac{1}{|f|} \int u \cdot n dS\).
The tangential vorticity with respect to an edge \(\sigma\) is stored as: \(\omega_{\sigma} = \frac{1}{|\sigma|} \int \omega \cdot \tau dl\).
CDO scheme#
The CDO scheme is based on a set of exact operators that allow you to switch from one location to another on the primal and dual mesh.
Figure Figure 15 summarized the different projection between control volumes in CDO. It is useful to keep it in mind when one want to discretised an equation on a specific control volume.
Figure 15 Paths between primal and dual mesh entities and corresponding operators.#
Operators can be classified into 2 types:
The exact operators, such as the gradient or divergence operator, which correspond to linear operators used to move from one discretization to another.
The approximated operators that introduce approximation error. In particular, Hodge operators are used to establish discrete closure relation linking primal and dual meshes. Other interpolation operators can also be used especially for the convection operator.
Exact discrete operators#
Discrete differential operators relies the entities and allow to switch from one localization to another
Exact discrete operator GRAD, DIV and CURL are defined and have their counterpart \(\widetilde{\text{GRAD}}\), \(\widetilde{\text{DIV}}\) and \(\widetilde{\text{CURL}}\) on the dual mesh
Discrete gradient#
where \(V_{\sigma} := \{v \in V | v \subset \partial \sigma \}\) and \(\iota_{v,\sigma} = +1\) if \(\tau_{\sigma}\) points towards \(v\), \(\iota_{v,\sigma} = -1\) otherwise
where \(\widetilde{V}_{\tilde{\sigma}} := \{\tilde{v} \in \widetilde{V} | \tilde{v} \subset \partial \tilde{\sigma} \}\) and \(\iota_{\tilde{v},\tilde{\sigma}} = +1\) if \(\tau_{\tilde{\sigma}}\) points towards \(\tilde{v}\), \(\iota_{\tilde{v},\tilde{\sigma}} = -1\) otherwise
Discrete divergence#
where \(F_{e} := \{f \in F | f \subset \partial e \}\) and \(\iota_{f,e} = +1\) if \(\nu_{f}\) points outwards \(e\), \(\iota_{f,e} = -1\) otherwise
where \(\widetilde{F}_{\tilde{e}} := \{\tilde{f} \in \widetilde{F} | \tilde{f} \subset \partial \tilde{e} \}\) and \(\iota_{\tilde{f},\tilde{e}} = +1\) if \(\nu_{\tilde{f}}\) points outwards \(\tilde{e}\), \(\iota_{\tilde{f},\tilde{e}} = -1\) otherwise
Discrete curl#
where \(\Sigma_{f} := \{\sigma \in \Sigma | f \subset \partial f \}\) and \(\iota_{\sigma,f} = +1\) if \(\tau_{\sigma}\) shares the same orientation as the one induced by \(\nu_{f}\), \(\iota_{\sigma,f} = -1\) otherwise
where \(\widetilde{\Sigma}_{\tilde{f}} := \{\tilde{\sigma} \in \widetilde{\Sigma} | \tilde{f} \subset \partial \tilde{f} \}\) and \(\iota_{\tilde{\sigma},\tilde{f}} = +1\) if \(\tau_{\tilde{\sigma}}\) shares the same orientation as the one induced by \(\nu_{\tilde{f}}\), \(\iota_{\tilde{\sigma},\tilde{f}} = -1\) otherwise
Hodge operators#
Closure relations between the localization in the primal cell and the dual cell are formulated using the construction of non exact global discrete operators called Hodge operators \(H_{\alpha^{-1}}^{\widetilde{\mathcal{X}}\mathcal{Y}}\). They are express using geometric quantities related to the primal and dual mesh entities and some material properties such as diffusivity.
Local Hodge operator must be symmetric, locally stable and \(\mathbb{P}_0\)-consistency
Hodge operators are not unique, the strategy in the CDO scheme consists of defining them using a reconstruction operator \(L_{\mathcal{X}_{e}}\)
Orthogonal decomposition of the reconstruction operator into consistent and stabilization parts
\(C_{\mathcal{X}_e} R_{\mathcal{X}_e} (K) = K\) and \(S_{\mathcal{X}_e} R_{\mathcal{X}_e} (K) = 0\) for constant fields
then the local Hodge operator can be generically defined by:
We choose here according to description in Bonelle thesis [Bonelle, 2014] (section 7.3.1) and in Codecasa et al. [Codecasa et al., 2010] the Piecewise constant non-conforming reconstruction.
with \(E_{\mathcal{X}_e} : \mathcal{X}_e \rightarrow \mathbb{P}_0(e)\) and \(\hat{S}_{\mathcal{X}_e} : \mathcal{X}_e \rightarrow \mathbb{P}_0(p_{x,e})\) with \(p_{x,e}\) the partition of the cell associated to the mesh entities \(x\)
Then the local reconstruction of the circulation \(\{\underline{l}_{\sigma,e}\}_{\sigma \in \Sigma_e}\) on the piecewise partition volume \(p_{\sigma',e}, \ \sigma' \in \Sigma_{e}\) corresponding to the subvolume of the cell attached to the edge \(\sigma'\), the center of the cell and the center of the adjacent face (Figure Figure 16). It written:
Then the local reconstruction of the flux \(\{\underline{l}_{f,e}\}_{f\in F_e}\) on the piecewise partition volume \(p_{f',e}, \ f' \in F_{e}\) corresponding to the subvolume of the cell attached to the face \(f'\), and the center of the cell (Figure Figure 16). It written:
The choice for the \(\beta\) parameter must be \(\beta = \frac{1}{\text{dim}}\) to yield the DGA reconstruction while the choice \(\beta = \frac{1}{\sqrt{dim}}\) corresponds to the choice made in SUSHI schemes
Figure 16 Partitioning of the cell into elementary sub-volumes attached to face \(p_{f,c}\) (left) and to edge \(p_{e,c}\) (right)#
Additional reconstruction operator#
A first-order reconstruction mapping operator \(\mathbb{R} : F \rightarrow V\) will be used in the convection operator for the Navier-Stokes equations (see Incompressible Navier-Stokes) to interpolate a vector \(\phi\) expressed along the normal of the faces to the center of the cell using the formula (1) from [Basumatary et al., 2014].
Elliptic equations#
We first consider here the resolution of a diffusion equation using the CDO schemes
we introduce the gradient \(\overline{g} = \underline{\text{grad}} \ p\) and the flux \(\overline{\phi} = - \underline{\underline{\kappa}} \ g\)
using cell-based schemes we obtain the discrete system of equations :
with matricial expression
with \(\widetilde{\mathbb{G}} = - \mathbb{D}^{T}\)
Stokes equations#
The Stokes equations model incompressible flows of viscous fluids where the advective inertial forces are negligible with respect to the viscous forces.
where \(p\) is the pressure, \(\underline{u}\) the velocity and \(\underline{f}\) the external load.
Bonelle thesis [Bonelle, 2014] chooses to formulated the Stokes equations with the \(\underline{\text{curl}}\) operator using the identity \(-\underline{\Delta} \underline{u} = \underline{\nabla} \times \underline{\nabla} \times \underline{u} - \underline{\nabla} ( \nabla \cdot \underline{u})\)
using the vorticity \(\underline{\omega} := \underline{\text{curl}} \ \underline{u}\)
Introducing the mass density \(\rho\) and the viscosity \(\mu\) leads to:
with \(\underline{\phi} = \rho \underline{u}\), \(\underline{\omega}^*=\mu \underline{\omega}\), \(p^* = \rho^{-1}p\) and \(\underline{f}^* = \rho^{-1}\underline{f}\)
We use here two discrete Hodge operators:
Then we have the discrete velocity located at dual edges and the discrete vorticity at dual faces.
we also have the following relation
The cell-based pressure scheme is:
Find \((\mathbf{p}^*,\phi,\mathbf{\omega}^*) \in \widetilde{V} \times F \times \Sigma\)
with matricial expression
with \(\widetilde{\mathbb{G}} = - \mathbb{D}^{T}\) and \(\widetilde{\mathbb{C}} \cdot H_{\rho^{-1}}^{F\widetilde{\Sigma}} = H_{\rho^{-1}}^{F\widetilde{\Sigma}} \cdot \mathbb{C}\)