Skip to content

notes by julian

JulianJohannes edited this page Nov 16, 2022 · 1 revision

Meeting 2022-11-15

(done) functionObject $gradPsiError$

  • show source code, paraview

implicit source term

Linearization of source term

  • SDPLS-source-term $S = -R(\psi) \psi = \psi \langle (\nabla v) \frac{\nabla \psi}{\mid\nabla\psi\mid}, \frac{\nabla \psi}{\mid\nabla\psi\mid} \rangle$
  • linearization done in xournal++ linearization.xopp
    • ends in $S=-R(\psi^*)\psi$ , where $\psi^*$ is the guess from the last iteration and $\psi$ is the solution variable
  • discretization approaches according to [Patankar]
    • version 1: simpleLinearImplicit $S=-R(\psi^*)\psi$
    • version 2: strictNegativeSpLinearImplicit $S=S_c +S_p \psi$
      • $S_c = max(-R(\psi^*),0)\psi^*$
      • $S_p = -max(R(\psi^*),0)$
  • during implementation I realized that I used the wrong operator in explicit source term implementation
  • show video of 3Dtranslation case explicit, simpleLinearImplicit, strictNegativeSpLinearImplicit

Stove study of explicit source term

  • not usable, because of wrong operator in explicit implementation
  • -> Wait, let us fix the problem with BC first
    • 3Dtranslation case: the source-term should be inactive no matter which disretization is used because $\nabla v =0$

(done) psiEnd 3Dtranslation errorCalculation

  • init psiEnd by recalling LeiaSetFields in diffrent context of LeiaSetFields
    • use a support case init_psiEnd in 3Dtranslation/system/init_psiEnd
    • mainly empty case with fvSolution with known end position and some symlinks
    • show README
  • changed calculation of error in errorCalculation.H
    • if psiEnd exists in 0/ use it for errorCalculation
    • show code
    • Problem with try-catch block

onesided gradient scheme

A critical analysis of some popular methods for the discretisation of the gradient operator in finite volume methods, cited 62 times

  • Divergence-Theorem Gradient (DT) aka Green-Gauss Gradient

    • on unstructured grid
      • 0th-order accurate for scheme and whole FVM
      • may become 1st order with correction iterations steps
        • usage with outer loop to reduce computational costs or change to LS, nodebased DT or Auxilary cell DT

      OpenFOAM using the DT gradient was unable to reduce the discretisation errors by grid refinement

  • Least Squares Gradient (LS)

    • normally uses all neighbooring cells, but can uses even more distant cells

      • or just cells towards one side

      For example, some of the triangular cells at the corners of the grid in Fig. 20(b) have only one neighbour cell; if the values of φ are not available at the boundary faces (e.g. if φ is the pressure in incompressible flows)

    • there are LS schemes which are 2nd-order convergence on arbitrary unstructred meshes

      • nondiagonal weighted LS scheme (ND)
        • solves higher order Taylor-polynom, which has the advantage of also computing $\nabla^2 \psi$
          • this may be interesting for our curvature problem
          • [Accuracy preserving limiter for the high-order finite volume method on unstructured grids]
  • 1D uneven grid

    • nondiagonal LS method (ND) is the best in all situations with 2nd-order accuracy
  • cartesian grids

    • DT and LS schemes are 2nd-order accurate for interior cells
    • at boundary cells all methods are only 1st-order accurate , except the LS(q=3/2) is 2nd-order accurate
  • unstructured grids

    • LS methods 1st-order accurate
    • DT do not converge
    • approximate gradient of linear function
      • convergence without refinement
        • DT with finite iteration do not converge
        • DT with infinite does converge to exact value
        • LS does converge to exact gradient

Questions

  • What is about upwind divergence scheme? Code [41] uses forward for west and backward for east boundary
  • Do we also ignore boundary values for the divergence discretization?
  • SDPLS paper: Why second order discretization for gradient, if other discretization are of 1st-order?
  • paper [40] is talking about ghost cells for handling BC, but code [41] uses for discretization of FVM-divergence term at boundary just backward-schemes (here at east border), to ignore boundary values at all. Why is there a discrepancy?

TODO:

  • Checkout nondiagonal LS scheme
  • when velocity BC is fixed, retry Level-Set source term in 3Dtranslation case. It should be inactive

Miscellaneous

  • processor boundaries in 3Dtranslation case