-
I'm very much confused about the "strong" gradient in opSEM Given an scalar field, U, I'd expect the strongGrad computes the derivatives directly and the weak form is the one contested by the test functions. In Nek5000, I think we use this notation.
However, the opSEM seems to follow the "strong formulation" and "weak formulation" in discontinuous Garlerkin, so both form are inside an integral.
We are also forced to compute an gather-scatter averaged derivatives, which is not always what we want. In Nek5000's language, opSEM::strongLaplacian currently computes
while the right one should be
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
In CG the input to any spatial operator has to be in C0. That's why we call QQt in In case of the weak Laplacian, the operator is computed directly (like in the Helmholtz operator) and requires only first-order derivatives in a weak sense. |
Beta Was this translation helpful? Give feedback.
strongGrad(u)
corresponds togradm1(dudx, dudy, dudz, u)
Note: nek's
opgrad
computes the strong gradient (like gradm1) but the result is weighted.grad(u)
corresponds {cdtp(dudx, u, rxm, ..., 1)
,cdtp(dudy, u, rym, ..., 2)
,cdtp(dudz, u, rzm, ..., 3)
}Note: nek's
wgradm1
actually computes the weighted strong gradient - the name might be misleading asw
stands for weighted not weak.In CG the input to any spatial operator has to be in C0. That's why we call QQt in
opSEM::strongLaplacian
after computing the strongGradient. That's missing (hence incorrect) in your example of a strong Laplacian.In case of the weak Laplacian, the operator is computed directly (like in the Helmholtz operator) …