Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use SingleSidedFaceArg in NS advection kernels and always use skew we…
…ights This forces atomic evaluation of components of aggregate functors (such as functor material properties), which allows direct substitution of Dirichlet information when component(s) are variables. This allows more accurate setting of incoming fluxes This dramatically improves our results on skewed meshes, as demonstrated on one of Sinan's cask setups This prevents zero mixing lengths and zero eddy viscosity. Additionally: change default for fv = true variable two-term boundary expansion to `true`. If users select finite volume variables through the `fv = true` flag as opposed to specifying `type = MooseVariableFVReal`, then we need to make sure they get the same default for two term boundary expansion, which is `true`. Except when doing vertex based interpolation. This necessitated adding a special handler in `Moose::FV::interpolate(FunctorBase, FaceArg)` as the `Moose::FV::linearInterpolation(FunctorBase, FaceArg)` function is the only global function that currently handles skewness correction correctly. I decided to make this change for MooseVariableFV::evaluate(FaceArg) after trigging a debug mode assertion when interpolating passive scalars in the 2d-mixing-length test in INSFV. When I had changed the scalar field advection kernel to functor evaluation based off Face arguments, then I actually changed the evaluation behind-the-scenes from upwind for this test to central-differencing. This is because all other face evaluations in INSFV (I think) go through functor material properties and end up using the global `Moose::FV::interpolate` functions which apply the correct interpolation/limiting method supplies by the user. However, prior to this commit variable evaluations did their own handling without dispatching to the global `Moose::FV::interpolate` functions and always applied some form of central-differencing on internal faces. That is now changed so the mixing length test is back to upwinding its passive scalar transport, which necessitated another re-golding - We make sure to extend the change in advection kernel evaluation at boundaries to the VolumetricFlowRate postprocessor. - Evaluation of incoming momentum flux is more accurate with these changes which puts more tax on the wall-function tests. This is because before when we upwinded the momentum at the boundaries we would actually apply positive y-velocities at the incoming face near the wall which led to a non-monotone y-velocity profile near the wall moving from the inlet down the channel. Now we actually apply the 0 y-velocity at the inlet face which makes for a more challenging solve due to the large gradient in y-velocity the solver wants to impose due to the large viscous forces. (This is my hypothesis anyway). To make things easier on the solver, I've reduced the Reynolds number. Note that if you psuedo-step to steady-state, convergence is excellent with the original Reynolds number - Created a couple of global functions for help in creating interpolation parameters and for using those parameters to set advection and velocity interpolation object data members - Limiter/interpolation coverage enhancements - An additional change in this commit is making PINSFVEnergyAdvection a trivial derivative of INSFVEnergyAdvection such that we reuse all the code, e.g. computeQpResidual - Test vector and array functor material properties - Allow construction of VectorCompositeFunctor with 1-3 functors - Convert mixing length tests into transient tests Refs joe61vette/ASP#8
- Loading branch information
Showing
132 changed files
with
1,950 additions
and
777 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.