www.mooseframework.org
BoundaryFluxBase.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 #include "BoundaryFluxBase.h"
11 
12 template <>
13 InputParameters
15 {
16  InputParameters params = validParams<GeneralUserObject>();
17  return params;
18 }
19 
20 BoundaryFluxBase::BoundaryFluxBase(const InputParameters & parameters)
21  : ThreadedGeneralUserObject(parameters),
22  _cached_flux_elem_id(libMesh::invalid_uint),
23  _cached_flux_side_id(libMesh::invalid_uint),
24  _cached_jacobian_elem_id(libMesh::invalid_uint),
25  _cached_jacobian_side_id(libMesh::invalid_uint)
26 {
27 }
28 
29 void
31 {
32  _cached_flux_elem_id = libMesh::invalid_uint;
33  _cached_flux_side_id = libMesh::invalid_uint;
34  _cached_jacobian_elem_id = libMesh::invalid_uint;
35  _cached_jacobian_side_id = libMesh::invalid_uint;
36 }
37 
38 void
40 {
41 }
42 
43 void
45 {
46 }
47 
48 void
49 BoundaryFluxBase::threadJoin(const UserObject &)
50 {
51 }
52 
53 const std::vector<Real> &
54 BoundaryFluxBase::getFlux(unsigned int iside,
55  dof_id_type ielem,
56  const std::vector<Real> & uvec1,
57  const RealVectorValue & dwave) const
58 {
59  if (_cached_flux_elem_id != ielem || _cached_flux_side_id != iside)
60  {
61  _cached_flux_elem_id = ielem;
62  _cached_flux_side_id = iside;
63 
64  calcFlux(iside, ielem, uvec1, dwave, _flux);
65  }
66  return _flux;
67 }
68 
69 const DenseMatrix<Real> &
70 BoundaryFluxBase::getJacobian(unsigned int iside,
71  dof_id_type ielem,
72  const std::vector<Real> & uvec1,
73  const RealVectorValue & dwave) const
74 {
75  if (_cached_jacobian_elem_id != ielem || _cached_jacobian_side_id != iside)
76  {
79 
80  calcJacobian(iside, ielem, uvec1, dwave, _jac1);
81  }
82  return _jac1;
83 }
BoundaryFluxBase::_jac1
DenseMatrix< Real > _jac1
Cached flux Jacobian.
Definition: BoundaryFluxBase.h:107
BoundaryFluxBase::_cached_flux_side_id
unsigned int _cached_flux_side_id
side ID of the cached flux values
Definition: BoundaryFluxBase.h:96
libMesh
Definition: RANFSNormalMechanicalContact.h:24
BoundaryFluxBase.h
BoundaryFluxBase::_cached_jacobian_side_id
unsigned int _cached_jacobian_side_id
side ID of the cached Jacobian values
Definition: BoundaryFluxBase.h:101
BoundaryFluxBase::getJacobian
virtual const DenseMatrix< Real > & getJacobian(unsigned int iside, dof_id_type ielem, const std::vector< Real > &uvec1, const RealVectorValue &dwave) const
Get the boundary Jacobian matrix.
Definition: BoundaryFluxBase.C:70
BoundaryFluxBase::_flux
std::vector< Real > _flux
Cached flux.
Definition: BoundaryFluxBase.h:104
BoundaryFluxBase::calcFlux
virtual void calcFlux(unsigned int iside, dof_id_type ielem, const std::vector< Real > &uvec1, const RealVectorValue &dwave, std::vector< Real > &flux) const =0
Solve the Riemann problem on the boundary face.
BoundaryFluxBase::_cached_jacobian_elem_id
unsigned int _cached_jacobian_elem_id
element ID of the cached Jacobian values
Definition: BoundaryFluxBase.h:99
BoundaryFluxBase::finalize
virtual void finalize() override
Definition: BoundaryFluxBase.C:44
BoundaryFluxBase::BoundaryFluxBase
BoundaryFluxBase(const InputParameters &parameters)
Definition: BoundaryFluxBase.C:20
BoundaryFluxBase::calcJacobian
virtual void calcJacobian(unsigned int iside, dof_id_type ielem, const std::vector< Real > &uvec1, const RealVectorValue &dwave, DenseMatrix< Real > &jac1) const =0
Compute the Jacobian matrix on the boundary face.
BoundaryFluxBase::_cached_flux_elem_id
unsigned int _cached_flux_elem_id
element ID of the cached flux values
Definition: BoundaryFluxBase.h:94
BoundaryFluxBase::threadJoin
virtual void threadJoin(const UserObject &) override
Definition: BoundaryFluxBase.C:49
BoundaryFluxBase::execute
virtual void execute() override
Definition: BoundaryFluxBase.C:39
BoundaryFluxBase::getFlux
virtual const std::vector< Real > & getFlux(unsigned int iside, dof_id_type ielem, const std::vector< Real > &uvec1, const RealVectorValue &dwave) const
Get the boundary flux vector.
Definition: BoundaryFluxBase.C:54
BoundaryFluxBase::initialize
virtual void initialize() override
Definition: BoundaryFluxBase.C:30
validParams< BoundaryFluxBase >
InputParameters validParams< BoundaryFluxBase >()
Definition: BoundaryFluxBase.C:14