4.2. Problems¶
Problems for OpenTidalFarm
4.2.1. Steady shallow water¶
- class opentidalfarm.problems.steady_sw.SteadySWProblem(parameters)[source]¶
Create a steady-state shallow water problem:
\[\begin{split}-\nabla\cdot\nu\nabla u+u\cdot\nabla u+g\nabla \eta + \frac{c_b + c_t}{H} \| u\| u &= f_u, \\ \nabla \cdot \left( H u \right) &= 0,\end{split}\]where
- \(u\) is the velocity,
- \(\eta\) is the free-surface displacement,
- \(H=\eta + h\) is the total water depth where \(h\) is the water depth at rest,
- \(f_u\) is the velocity forcing term,
- \(c_b\) is the (quadratic) natural bottom friction coefficient,
- \(c_t\) is the (quadratic) friction coefficient due to the turbine farm,
- \(\nu\) is the viscosity coefficient,
- \(g\) is the gravitational constant,
Parameters: parameters – A SteadySWProblemParameters object containing the parameters of the problem. - static default_parameters()[source]¶
Returns a SteadySWProblemParameters with default parameters.
- class opentidalfarm.problems.steady_sw.SteadySWProblemParameters[source]¶
A parameters set for a SteadySWProblem.
Domain parameters:
Variables: domain – The computational domain, see Domains. Physical parameters:
Variables: - depth – Water depth. Default: 50.0
- g – Gravitational constant. Default: 9.81
- viscosity – Water viscosity. Default: 3.0
- friction – Natural bottom friction. Default: 0.0025
- rho – Density of water. Default: 1000.0
Equation parameters:
Variables: - include_advection – Boolean indicating if the advection is included. Default: True
- include_viscosity – Boolean indicating if the viscosity is included. Default: True
- linear_divergence – Boolean indicating if the divergence equation is linearised. Default: False
- f_u – A source term for the velocity component as a dolfin.Expression. Default: Constant((0, 0))
Boundary conditions:
Variables: - bctype – Specifies how the boundary conditions should be enforced. Valid options are: ‘weak_dirichlet’, ‘strong_dirichlet’ or ‘flather’. Default: ‘strong_dirichlet’
- bcs – A opentidalfarm.boundary_conditions.BoundaryConditionSet containing a list of boundary conditions for the problem.
Discretization settings:
Variables: finite_element – The finite-element pair to use. Default:
4.2.2. Multi steady shallow water¶
- class opentidalfarm.problems.multi_steady_sw.MultiSteadySWProblem(parameters)[source]¶
Create a shallow water problem consisting of a sequence of (independent) steady-state shallow water problems. More specifically, it solves for each time-level \(n\):
\[\begin{split}-\nabla\cdot\nu\nabla u^n+u^n\cdot\nabla u^n+g\nabla \eta^n + \frac{c_b + c_t}{H^n} \| u^n\| u^n &= f_u^n, \\ \nabla \cdot \left( H^n u^n \right) &= 0,\end{split}\]where
- \(u\) is the velocity,
- \(\eta\) is the free-surface displacement,
- \(H=\eta + h\) is the total water depth where \(h\) is the water depth at rest,
- \(f_u\) is the velocity forcing term,
- \(c_b\) is the (quadratic) natural bottom friction coefficient,
- \(c_t\) is the (quadratic) friction coefficient due to the turbine farm,
- \(\nu\) is the viscosity coefficient,
- \(g\) is the gravitational constant,
parameter parameters: A MultiSteadySWProblemParameters object containing the parameters of the problem.
- class opentidalfarm.problems.multi_steady_sw.MultiSteadySWProblemParameters[source]¶
A set of parameters for a MultiSteadySWProblem.
The parameters are as described in opentidalfarm.problems.steady_sw.SteadySWProblemParameters.
In addition following parameters are available:
Temporal parameters:
Variables: - dt – The timestep. Default: 1.0.
- start_time – The start time. Default: 0.0.
- finish_time – The finish time. Default: 100.0.
4.2.3. Time-dependent shallow water¶
- class opentidalfarm.problems.sw.SWProblem(parameters)[source]¶
Create a transient shallow water problem:
\[\begin{split}\frac{\partial u}{\partial t} -\nabla\cdot\nu\nabla u+u\cdot\nabla u+g\nabla \eta + \frac{c_b + c_t}{H} \| u\| u &= f_u, \\ \frac{\partial \eta}{\partial t} + \nabla \cdot \left( H u \right) &= 0,\end{split}\]where
- \(u\) is the velocity,
- \(\eta\) is the free-surface displacement,
- \(H=\eta + h\) is the total water depth where \(h\) is the water depth at rest,
- \(f_u\) is the velocity forcing term,
- \(c_b\) is the (quadratic) natural bottom friction coefficient,
- \(c_t\) is the (quadratic) friction coefficient due to the turbine farm,
- \(\nu\) is the viscosity coefficient,
- \(g\) is the gravitational constant,
Parameters: parameters – A SWProblemParameters object containing the parameters of the problem.
- class opentidalfarm.problems.sw.SWProblemParameters[source]¶
A set of parameters for a SWProblem.
The parameters are as described in opentidalfarm.problems.steady_sw.SteadySWProblemParameters.
In addition following parameters are available:
Time parameters:
Variables: - theta – The theta value for the timestepping-scheme. Default 1.0.
- dt – The timestep. Default: 1.0.
- start_time – The start time. Default: 0.0.
- finish_time – The finish time. Default: 100.0.
Functional time integration paramters (FIXME: Move to reduced functional):
Variables: functional_final_time_only – Boolean indicating if the functional should be integrated over time or evaluated at the end of time only. Default: True.