# fluidsim.solvers.plate2d.solver¶

## Plate2d solver (fluidsim.solvers.plate2d.solver)¶

This module provides two classes defining the pseudo-spectral solver plate2d.

class fluidsim.solvers.plate2d.solver.InfoSolverPseudoSpectral(**kargs)[source]

Bases: fluidsim.base.solvers.info_base.InfoSolverBase

Contain the information on a base pseudo-spectral 2D solver.

_init_root(self)[source]

Init. self by writting the information on the solver.

The first-level classes for this base solver are:

class fluidsim.solvers.plate2d.solver.Simul(params)[source]

Pseudo-spectral solver solving the Föppl-von Kármán equations.

Notes

This class is dedicated to solve with a pseudo-spectral method the Föppl-von Kármán equations which describe the dynamics of a rigid plate. Using the non-dimensional variables displacement $$z$$ and out of plane velocity $$w$$:

$\partial_t z = w,$
$\partial_t w = - \Delta^2 z + N_w(z) + f_w - \nu_\alpha (-\Delta)^\alpha w.$

where $$\Delta = \partial_{xx} + \partial_{yy}$$ is the Laplacian. The first term of the two equations corresponds to the linear part. $$f_w$$ and $$\nu_\alpha \Delta^\alpha w$$ are the forcing and the dissipation terms, respectively. The nonlinear term is equal to $$N_w(z) = \{ z, \chi \}$$, where $$\{ \cdot, \cdot \}$$ is the Monge-Ampère operator

$\{ a, b \} = \partial_{xx} a \partial_{yy} b + \partial_{yy} a \partial_{xx} b - 2 \partial_{xy} a \partial_{xy} b,$

and

$\Delta^2 \chi = -\{ z, z \}.$

Taking the Fourier transform, we get:

$\partial_t \hat z = \hat w,$
$\partial_t \hat w = - k^4 \hat z + \widehat{N_w(z)} + \hat f_w - \nu_\alpha k^{2\alpha} \hat w,$

where $$k^2 = |\mathbf{k}|^2$$. For this simple solver, we will use the variables $$z$$ and $$w$$ and only the dissipative term will be solve exactly. Thus, all the other terms are included in the tendencies_nonlin() function.

Energetics: The total energy can be decomposed in the kinetic energy

$E_K = \frac{1}{2} \langle w^2 \rangle = \frac{1}{2} \sum_\mathbf{k} |\hat w|^2,$

the flexion energy

$E_L = \frac{1}{2} \langle (\Delta z)^2 \rangle = \frac{1}{2} \sum_\mathbf{k} k^4|\hat z|^2,$

$E_E = \frac{1}{4} \langle (\Delta \chi)^2 \rangle = \frac{1}{4} \sum_\mathbf{k} k^4 |\hat \chi|^2.$

The energy injected into the system by the forcing is

$P = \langle f_w w \rangle,$

and the dissipation is

$D = \nu_\alpha \langle w (-\Delta)^\alpha w \rangle.$
InfoSolver

alias of InfoSolverPlate2D

static _complete_params_with_default(params)[source]

Complete the params container (static method).

tendencies_nonlin(self, state_spect=None, old=None)[source]

Compute the “nonlinear” tendencies.

compute_freq_diss(self)[source]

Compute the dissipation frequencies with dissipation only for w.

test_tendencies_nonlin(self, tendencies_fft=None, w_fft=None, z_fft=None, chi_fft=None)[source]

Test if the tendencies conserves the total energy.

We consider the conservative Föppl-von Kármán equations (without dissipation and forcing) written as

\begin{align}\begin{aligned}\partial_t z = F_z\\\partial_t w = F_w\end{aligned}\end{align}

We have:

\begin{align}\begin{aligned}\partial_t E_K(\mathbf{k}) = \mathcal{R} ( \hat F_w \hat w ^* )\\\partial_t E_L(\mathbf{k}) = k^4 \mathcal{R} ( \hat F_z \hat z ^* )\\\partial_t E_{NQ}(\mathbf{k}) = - \mathcal{R} ( \widehat{\{ F_z, z\}} \hat \chi ^* )\end{aligned}\end{align}

Since the total energy is conserved, we should have

$\sum_{\mathbf{k}} \partial_t E_K(\mathbf{k}) + \partial_t E_L(\mathbf{k}) + \partial_t E_{NQ}(\mathbf{k}) = 0$

This function computes this quantities.

Classes

 InfoSolverPlate2D(**kargs) Contain the information on the solver plate2d. Simul(params) Pseudo-spectral solver solving the Föppl-von Kármán equations.