https://mooseframework.inl.gov
Loading...
Searching...
No Matches
SideIntegralFunctorPostprocessor.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
13#include "FaceArgInterface.h"
14
21template <bool is_ad>
24{
25public:
27
29
30 bool hasFaceSide(const FaceInfo & fi, const bool fi_elem_side) const override;
31
32protected:
38 virtual Real computeFaceInfoIntegral(const FaceInfo * fi) override;
39
40 Real computeQpIntegral() override;
41
44
47
48 void errorNoFaceInfo() const override
49 {
50 mooseError("The parameter 'functor_argument' was set to 'face', but the mesh contains no face "
51 "info objects.");
52 }
53
56
59
62
63private:
64 template <typename T>
65 Real computeLocalContribution(const T & functor_arg) const;
66};
67
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
SideIntegralFunctorPostprocessorTempl< true > ADSideIntegralFunctorPostprocessor
SideIntegralFunctorPostprocessorTempl< false > SideIntegralFunctorPostprocessor
An interface for producers of functor face arguments, e.g.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition FaceInfo.h:38
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
This is a wrapper that forwards calls to the implementation, which can be switched out at any time wi...
This postprocessor computes a surface integral of the specified functor.
const Moose::Functor< GenericReal< is_ad > > & _functor
Functor being integrated.
void errorFunctorNotDefinedOnSideBlock() const
Error with a helpful message if the functor is not defined on the primary block by the sideset.
bool checkFunctorDefinedOnSideBlock() const
Check if the functor and the prefactor are defined on the primary block by the sideset.
void errorNoFaceInfo() const override
Error method to call when face info is needed but not available.
bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const override
virtual Real computeFaceInfoIntegral(const FaceInfo *fi) override
Compute contribution from an element face, either on a boundary or between two active elements.
Real computeLocalContribution(const T &functor_arg) const
const bool _partial_integral
Whether to skip integrating where the functors are not both defined.
const Moose::Functor< GenericReal< is_ad > > & _prefactor
Factor multiplying the functor being integrated.
This postprocessor computes a surface integral of the specified variable on a sideset on the boundary...