Skip to content

Commit

Permalink
Added NearestPointLayeredSideIntegralFunctor
Browse files Browse the repository at this point in the history
  • Loading branch information
joshuahansel authored and oanaoana committed Oct 19, 2023
1 parent 0e4560b commit 8185173
Show file tree
Hide file tree
Showing 7 changed files with 968 additions and 0 deletions.
@@ -0,0 +1,14 @@
# NearestPointLayeredSideIntegralFunctor

This object is the same as [NearestPointLayeredSideIntegral.md], but the layered integral may be taken
of any [functor](Functors/index.md), not just a variable.

!alert note title=Functor requirements
This object requires the `ElemSideQpArg` [functor spatial argument](Functors/index.md) to be
implemented for the [!param](/UserObjects/NearestPointLayeredSideIntegralFunctor/functor) parameter.

!syntax parameters /UserObjects/NearestPointLayeredSideIntegralFunctor

!syntax inputs /UserObjects/NearestPointLayeredSideIntegralFunctor

!syntax children /UserObjects/NearestPointLayeredSideIntegralFunctor
@@ -0,0 +1,26 @@
//* This file is part of the MOOSE framework
//* https://www.mooseframework.org
//*
//* All rights reserved, see COPYRIGHT for full restrictions
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
//*
//* Licensed under LGPL 2.1, please see LICENSE for details
//* https://www.gnu.org/licenses/lgpl-2.1.html

#pragma once

#include "SideIntegralFunctorUserObject.h"
#include "NearestPointBase.h"
#include "LayeredSideAverageFunctor.h"

/**
* Computes layered side integrals of a functor nearest to a set of points.
*/
class NearestPointLayeredSideIntegralFunctor
: public NearestPointBase<LayeredSideIntegralFunctor, SideIntegralFunctorUserObject>
{
public:
static InputParameters validParams();

NearestPointLayeredSideIntegralFunctor(const InputParameters & parameters);
};
30 changes: 30 additions & 0 deletions framework/src/userobjects/NearestPointLayeredSideIntegralFunctor.C
@@ -0,0 +1,30 @@
//* This file is part of the MOOSE framework
//* https://www.mooseframework.org
//*
//* All rights reserved, see COPYRIGHT for full restrictions
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
//*
//* Licensed under LGPL 2.1, please see LICENSE for details
//* https://www.gnu.org/licenses/lgpl-2.1.html

#include "NearestPointLayeredSideIntegralFunctor.h"

registerMooseObject("MooseApp", NearestPointLayeredSideIntegralFunctor);

InputParameters
NearestPointLayeredSideIntegralFunctor::validParams()
{
InputParameters params =
NearestPointBase<LayeredSideIntegralFunctor, SideIntegralFunctorUserObject>::validParams();

params.addClassDescription(
"Computes layered side integrals of a functor nearest to a set of points.");

return params;
}

NearestPointLayeredSideIntegralFunctor::NearestPointLayeredSideIntegralFunctor(
const InputParameters & parameters)
: NearestPointBase<LayeredSideIntegralFunctor, SideIntegralFunctorUserObject>(parameters)
{
}
6 changes: 6 additions & 0 deletions modules/doc/content/newsletter/2023/2023_09.md
Expand Up @@ -7,6 +7,12 @@ for a complete description of all MOOSE changes.

## MOOSE Improvements

### Nearest-point layered side integrals for functors

[NearestPointLayeredSideIntegralFunctor.md] was added, which extends
[NearestPointLayeredSideIntegral.md] to accept any [functor](Functors/index.md),
not just variables.

## libMesh-level Changes

## PETSc-level Changes
Expand Down

0 comments on commit 8185173

Please sign in to comment.