Hello,
If it's not too bad for you to increase your computational time, here is what I suggest (hoping it improves your results, but these are only my own suggestions):
Advection
- use the predictor-corrector distributive scheme with local implicitation for tidal flats, based on the PSI scheme, for the velocity and all tracers, including k and epsilon if you have them:
/ PSI scheme
SCHEME FOR ADVECTION OF VELOCITIES = 5
SCHEME FOR ADVECTION OF K-EPSILON = 5
SCHEME FOR ADVECTION OF TRACERS = 5
/ predictor-corrector with local implicitation implicite
SCHEME OPTION FOR ADVECTION OF VELOCITIES = 4
SCHEME OPTION FOR ADVECTION OF K-EPSILON = 4
SCHEME OPTION FOR ADVECTION OF TRACERS = 4
- without tidal flats, use the predictor-corrector without tidal flats treatment to gain some time
/ Predictor-corrector without tidal flats treatment
SCHEME OPTION FOR ADVECTION OF VELOCITIES = 2
SCHEME OPTION FOR ADVECTION OF K-EPSILON = 2
SCHEME OPTION FOR ADVECTION OF TRACERS = 2
Friction
- use the Nikuradse law, which is the only one that's really 3D compatible: the other options have been implemented to ensure an easy correspondance between 2D and 3D simulations, but their use is not recommended for fully 3D studies:
LAW OF BOTTOM FRICTION = 5
- use a friction coefficient that is representative of the physics of your case: with the Nikuradse law, the friction coefficient corresponds to the characteristic height of the roughness
FRICTION COEFFICIENT FOR THE BOTTOM = 3*d90
for a natural bed with sediment of characteristic size d90 and without riddles or dunes, its value should be taken from van Rijn, equal to 3*d90. In the presence of dunes, van Rijn proposes another formula.
- depending on the nature of the lateral walls, either use a Nikuradse law or no friction
LAW OF FRICTION ON LATERAL BOUNDARIES = 0 or 5
- as for the bed, use a physical value for
FRICTION COEFFICIENT FOR LATERAL SOLID BOUNDARIES
- remark: contrary to the friction coefficients used with the laws derived from the shallow water context (Manning, Strickler, Chézy, Haaland), the friction coefficient with the Nikuradse law does not "hide" physical effects like diffusion-dispersion, like it does with the shallow-water equations. Thus, it is less prone to being used as a calibration parameter in the studies.
Mass-lumping
- avoid using mass-lumping, unless you really have a strong constraint on computational time (this is the default behaviour of TELEMAC-3D) : it introduces artificial dispersion in the results
Semi-implicitation
- do not change the default value for
IMPLICITATION FOR DEPTH ( = 0.55)
and use
IMPLICITATION FOR VELOCITIES = 0.55 instead of the default value of 1. Warning: never use a value lower or equal to 0.5 for these coefficients, otherwise the scheme becomes unconditionnally unstable. Avoid using the value 1 too, we have observed a strange behaviour of the scheme in this case: it seems to introduce quite a lot of spurious diffusion, even though 0.99 does not... We should perform more testing and analysis to better understand this behaviour.
- the keyword IMPLICITATION FOR DIFFUSION can be left to its value by default, 1.
Linear solvers
- Use the solver 7, GMRES, for the matrices inversion, except diffusion (SOLVER FOR PPE, SOLVER FOR VERTICAL VELOCITY, SOLVER FOR PROPAGATION). For the diffusion, the conjugate gradients should be good enough (solver number 1).
- use an accuracy equal to 10^-8 or lower for all solvers (ACCURACY FOR PPE, ACCURACY FOR VERTICAL VELOCITY, ACCURACY FOR PROPAGATION, ACCURACY FOR DIFFUSION OF VELOCITIES, ACCURACY FOR DIFFUSION OF K-EPSILON, ACCURACY FOR DIFFUSION OF TRACERS, ACCURACY FOR DIFFUSION OF SEDIMENT)
- Be careful to always check in your listing that your solvers have actually converged, otherwise the simulation may complete but with wrong results. In case you don't reach the accuracy you asked for with these options, try increasing the value of OPTION OF SOLVER FOR [...] to 10. It sets the size of the Krylov subspace used in the GMRES solver. You can also try increasing the maximum number of iterations of the solvers, or try using the preconditionning number 34 to make the matrix inversions faster.
Fractional steps method
- the keyword DYNAMIC PRESSURE IN WAVE EQUATION can be left to its value by default, NO, but setting it to YES may slightly reduce the numerical diffusion (altough we need to test it further to really characterize the behaviour of these two choices).
Free surface
- if you observe free-surface instabilities (wiggles) in your results, you can try using a lower value for the
FREE SURFACE GRADIENT COMPATIBILITY
than the one by default, for example 0.9.
Liquid boundaries
- I would suggest trying not to use the Thompson boundary conditions, because they are actually only valid in the shallow water context. However, I admit that they may help stabilise the simulations involving liquid boundaries, so it's not always that easy not to use them. You should try without it I would suggest.
Tidal flats
- use TREATMENT OF NEGATIVE DEPTHS = 2
- use TREATMENT ON TIDAL FLATS FOR TRACERS = 1 to ensure conservation
Turbulence
- I would recommend trying ot use the k-epsilon model (3) on the vertical and the horizontal directions, or the Spallart-Almaras one (5), also in both directions, instead of the mixing length model which is not flexible, since it is a zero-equation model.
Other numerical options
- do not change the matrix storage, simply remove it from the steering file
I hope this helps.
Agnès