https://mooseframework.inl.gov
LinearFVAdvection.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "LinearFVFluxKernel.h"
15 
21 {
22 public:
24 
29  LinearFVAdvection(const InputParameters & params);
30 
31  virtual void setupFaceData(const FaceInfo * face_info) override;
32  virtual void initialSetup() override;
33 
34  virtual Real computeElemMatrixContribution() override;
35 
36  virtual Real computeNeighborMatrixContribution() override;
37 
38  virtual Real computeElemRightHandSideContribution() override;
39 
41 
43 
45 
46 protected:
49 
52 
55 
59 
60  // Cache for the advected face flux
62 };
VectorValue< Real > _elem_grad_storage
Reusable gradient storage used when advected interpolation requires gradients.
VectorValue< Real > _neighbor_grad_storage
Base class for boundary conditions for linear FV systems.
const RealVectorValue _velocity
Constant advecting velocity vector.
FVAdvectedInterpolationMethod::AdvectedSystemContribution _adv_interp_result
Cached weights/correction for the current face (refreshed in setupFaceData)
Kernel that adds contributions from an advection term discretized using the finite volume method to a...
Finite volume kernel that contributes approximations of discretized face flux terms to the matrix and...
Interface for interpolation methods that provide matrix and RHS contributions for advected face value...
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
LinearFVAdvection(const InputParameters &params)
Class constructor.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:37
virtual Real computeNeighborMatrixContribution() override
Computes the system matrix contribution from the neighbor side on an internal face.
const FVAdvectedInterpolationMethod & _adv_interp_method
The interpolation method to use for the advected quantity.
virtual Real computeNeighborRightHandSideContribution() override
Computes the right hand side contribution from the neighbor side on an internal face.
virtual Real computeElemMatrixContribution() override
Computes the system matrix contribution from an element side on an internal face. ...
virtual Real computeBoundaryMatrixContribution(const LinearFVBoundaryCondition &bc) override
Computes the matrix contribution from a boundary face.
virtual Real computeBoundaryRHSContribution(const LinearFVBoundaryCondition &bc) override
Computes the right hand side contribution from a boundary face.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Matrix/RHS contribution for an advected face interpolation.
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job...
Helper interface for objects that need access to FVInterpolationMethod instances. ...
virtual void setupFaceData(const FaceInfo *face_info) override
Set the current FaceInfo object.
static InputParameters validParams()
virtual Real computeElemRightHandSideContribution() override
Computes the right hand side contribution from the element side on an internal face.