1 Introduction
2 Mathematical Formulation and Least-Squares Approach
3 Relaxation Algorithm
4 Numerical Approximation of the Local Nonlinear Problems
4.1 Explicit Formulation of the Local Nonlinear Problems
4.2 A Reduced Newton Method
4.3 A Runge–Kutta Method for the Dynamical Flow Problem
5 Numerical Solution of the Linear Variational Problems
6 Mixed Finite Element Approximation
6.1 Finite Element Spaces
6.2 Finite Element Approximation of the Monge–Ampère Equation
6.3 Discrete Formulation of the Least-Squares Method
6.4 A Discrete Relaxation Algorithm
6.5 Finite Element Approximation of the Local Nonlinear Problems
6.6 Finite Element Approximation of the Linear Variational Problems
7 Numerical Results
7.1 Polynomial Examples
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
Structured mesh
| |||||
2.00e−01 | 7.19e−02 | – | 1.58e−00 | – | 71 |
1.00e−01 | 1.80e−02 | 1.99 | 7.91e−01 | 0.99 | 228 |
6.25e−02 | 7.06e−03 | 1.99 | 4.95e−01 | 1.00 | 314 |
4.00e−02 | 2.89e−03 | 1.99 | 3.16e−01 | 0.99 | 375 |
Isotropic mesh
| |||||
1.57e−01 | 1.97e−02 | – | 9.39e−01 | – | 84 |
1.03e−01 | 1.01e−02 | 1.75 | 6.11e−01 | 1.03 | 137 |
6.58e−02 | 5.44e−03 | 1.63 | 3.84e−01 | 1.03 | 220 |
4.10e−02 | 3.35e−03 | 1.38 | 2.35e−01 | 1.03 | 314 |
h
| #DOFs | Algebraic solver (s) | Variational solver (s) | # outer iter. | Max # CG iter. | Total CPU (s) |
---|---|---|---|---|---|---|
Structured mesh
| ||||||
0.2000 | 216 | 0 | 16 | 71 | 12 | 16 |
0.1000 | 1331 | 3 | 655 | 228 | 19 | 658 |
0.0625 | 4913 | 26 | 6070 | 314 | 16 | 6096 |
0.0400 | 17,576 | 163 | 38,993 | 375 | 15 | 39,156 |
7.2 A Smooth Exponential Example
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
Structured mesh
| |||||
2.00e−01 | 2.74e−02 | – | 5.16e−01 | – | 12 |
1.00e−01 | 7.52e−03 | 1.87 | 2.81e−01 | 0.87 | 20 |
6.25e−02 | 3.06e−03 | 1.91 | 1.83e−01 | 0.91 | 25 |
4.00e−02 | 1.26e−03 | 1.98 | 1.20e−01 | 0.95 | 28 |
Isotropic mesh
| |||||
1.57e−01 | 1.58e−02 | – | 3.19e−01 | – | 24 |
1.03e−01 | 8.07e−03 | 1.61 | 2.05e−01 | 1.05 | 34 |
6.58e−02 | 3.54e−03 | 1.83 | 1.22e−01 | 1.15 | 41 |
4.57e−02 | 1.64e−03 | 2.11 | 7.67e−02 | 1.28 | 42 |
h
| #DOFs | Algebraic solver (s) | Variational solver (s) | # outer iter. | Max # CG iter. | Total CPU (s) |
---|---|---|---|---|---|---|
Structured mesh
| ||||||
0.2000 | 216 | 0 | 1 | 12 | 5 | 1 |
0.1000 | 1331 | 0 | 19 | 20 | 5 | 19 |
0.0625 | 4913 | 2 | 90 | 25 | 4 | 92 |
0.0400 | 17,576 | 8 | 423 | 28 | 4 | 431 |
Isotropic mesh
| ||||||
0.1570 | 1043 | 1 | 70 | 24 | 19 | 71 |
0.1030 | 3339 | 1 | 525 | 34 | 20 | 526 |
0.0658 | 12,191 | 5 | 3568 | 41 | 22 | 3573 |
0.0457 | 42,176 | 24 | 20,926 | 42 | 22 | 20,950 |
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
Structured mesh
| |||||
2.00e−01 | 4.96e−03 | – | 8.60e−02 | – | 4 |
1.00e−01 | 1.28e−03 | 1.95 | 4.41e−02 | 0.96 | 5 |
6.25e−02 | 5.09e−04 | 1.96 | 2.78e−02 | 0.97 | 6 |
4.00e−02 | 2.10e−04 | 1.97 | 1.79e−02 | 0.98 | 7 |
Isotropic mesh
| |||||
1.57e−01 | 3.81e−03 | – | 8.60e−02 | – | 13 |
1.03e−01 | 1.81e−03 | 1.78 | 3.62e−02 | 2.07 | 16 |
6.58e−02 | 7.51e−04 | 1.94 | 2.12e−02 | 1.18 | 19 |
4.10e−02 | 3.35e−04 | 2.21 | 1.30e−02 | 1.33 | 19 |
7.3 Non-smooth Test Problems
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
Structured mesh
| |||||
2.00e−01 | 1.15e−02 | – | 6.60e−01 | – | 9 |
1.00e−01 | 3.06e−03 | 1.91 | 6.31e−01 | – | 14 |
6.25e−02 | 1.24e−03 | 1.92 | 6.25e−01 | – | 17 |
4.00e−02 | 5.17e−04 | 1.96 | 6.22e−01 | – | 19 |
Isotropic mesh
| |||||
1.57e−01 | 6.76e−03 | – | 6.31e−01 | – | 13 |
1.03e−01 | 3.31e−03 | 1.69 | 6.25e−01 | – | 16 |
6.58e−02 | 1.39e−03 | 1.93 | 6.22e−01 | – | 19 |
4.10e−02 | 6.41e−04 | 1.63 | 6.21e−01 | – | 19 |
7.4 Curved Boundaries and Non Convex Domains
h
|
\(\left| \left| {\mathbf {D}}^2 \psi _h - \mathbf {p}_h \right| \right| _{L^2((0,1)^3)}\)
|
\(\left| \left| {\mathbf {D}}^2 \psi _h - \mathbf {p}_h \right| \right| _{L^2((0.2,0.8)^3)}\)
| # iter. |
---|---|---|---|
1.00e−01 | 4.29931e−04 | 4.20694e−05 | 467 |
6.25e−02 | 4.32211e−04 | 8.47222e−06 | 1857 |
4.00e−02 | 4.32995e−04 | 2.42009e−06 | 37,522 |
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
2.98e−01 | 3.26e−02 | 2.60e−01 | – | 14 | |
1.61e−01 | 1.11e−02 | 1.74 | 1.28e−01 | 1.14 | 19 |
8.32e−02 | 3.22e−03 | 1.88 | 6.16e−02 | 1.11 | 21 |
4.34e−02 | 9.89e−04 | 1.80 | 2.86e−02 | 1.17 | 20 |
h
| #DOFs | Algebraic solver (s) | Variational solver (s) | # outer iter. | Max # CG iter. | Total CPU (s) |
---|---|---|---|---|---|---|
Structured mesh
| ||||||
0.2980 | 631 | 0 | 34 | 14 | 25 | 34 |
0.1610 | 3570 | 0 | 327 | 19 | 19 | 327 |
0.0832 | 22,640 | 4 | 4385 | 21 | 22 | 4399 |
0.0434 | 184,034 | 23 | 66,027 | 20 | 23 | 66,050 |
8 An Alternative Discretization Method Based on \({\mathbb {Q}}_1\) Finite Elements
libmesh
[33] has been used for implementation. The discretization of the unit cube \({\varOmega }= (0,1)^3\) is based on a structured mesh of elementary cubes, as visualized in Fig. 8. The least-squares/relaxation methodology is still applicable. The nonlinear problems (9) are solved for each vertex of the hexahedral mesh with the Newton and Runge–Kutta methods discussed in Sects. 4.2 and 4.3, respectively. The variational problem (17) is solved by a conjugate gradient algorithm, using Gauss quadrature rules (of order up to 4) for the numerical computation of integrals; all other techniques and approaches remain the same.
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
| Iter. | ||
---|---|---|---|---|---|
Exact solution
\(\psi (x,y,z) =e^{\frac{1}{2}(x^2 + y^2 + z^2)}\)
| |||||
1/10 | 8.09e−03 | – | 1.18e−01 | – | 56 |
1/20 | 2.28e−03 | 1.82 | 5.67e−02 | 1.06 | 50 |
1/30 | 1.05e−03 | 1.90 | 3.71e−02 | 1.04 | 46 |
1/40 | 6.02e−04 | 1.93 | 2.75e−02 | 1.03 | 44 |
1/50 | 3.90e−04 | 1.95 | 2.18e−02 | 1.03 | 42 |
Exact solution
\(\psi (x,y,z) =\frac{1}{2}\left( x^2+5y^2+15z^2 \right) \)
| |||||
1/10 | 1.26e−02 | – | 1.65e−01 | – | 713 |
1/20 | 3.62e−03 | 1.79 | 7.88e−02 | 1.06 | 716 |
1/30 | 1.71e−03 | 1.85 | 5.15e−02 | 1.05 | 696 |
1/40 | 9.91e−04 | 1.88 | 3.82e−02 | 1.03 | 681 |
1/50 | 6.48e−04 | 1.90 | 3.03e−02 | 1.03 | 671 |
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
|
\(||{\mathbf {D}}^2_h\psi _h^{n}-{\mathbf {D}}^2\psi ||_{L_2}\)
| Iter. | |||
---|---|---|---|---|---|---|---|
1/10 | 1.63e−03 | 2.24e−02 | – | 8.18e−03 | – | 22 | |
1/20 | 4.49e−04 | 1.85 | 1.06e−02 | 1.07 | 2.95e−03 | 1.47 | 18 |
1/30 | 2.06e−04 | 1.91 | 6.94e−03 | 1.05 | 1.62e−03 | 1.48 | 16 |
1/40 | 1.18e−04 | 1.94 | 5.14e−03 | 1.03 | 1.05e−03 | 1.48 | 15 |
1/50 | 7.65e−05 | 1.94 | 4.09e−03 | 1.03 | 7.55e−04 | 1.49 | 15 |
h
|
\(||\psi _h-\psi ||_{L_2}\)
|
\(|\psi _h-\psi |_{H_1}\)
|
\(||{\mathbf {D}}^2_h\psi _h^{n}-{\mathbf {D}}^2\psi ||_{L_2}\)
| Iter. | ||
---|---|---|---|---|---|---|
1/10 | 3.06e−03 | 4.70e−02 | – | 2.71e−01 | 35 | |
1/20 | 8.66e−04 | 1.82 | 2.30e−02 | 1.02 | 2.59e−01 | 34 |
1/30 | 4.00e−04 | 1.90 | 1.53e−02 | 1.01 | 2.55e−01 | 31 |
1/40 | 2.29e−04 | 1.93 | 1.14e−02 | 1.00 | 2.55e−01 | 30 |