www.mooseframework.org
NeighborCoupleable.h
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 #pragma once
11 
12 #include "MooseVariableBase.h"
13 #include "Coupleable.h"
14 
15 #define usingNeighborCoupleableMembers usingCoupleableMembers
16 
22 {
23 public:
29  NeighborCoupleable(const MooseObject * moose_object, bool nodal, bool neighbor_nodal);
30 
31  virtual ~NeighborCoupleable();
32 
33  // neighbor
34  virtual const VariableValue & coupledNeighborValue(const std::string & var_name,
35  unsigned int comp = 0);
36  virtual const VariableValue & coupledNeighborValueDot(const std::string & var_name,
37  unsigned int comp = 0);
38  virtual const VariableValue & coupledNeighborValueDotDu(const std::string & var_name,
39  unsigned int comp = 0);
40  virtual const VariableValue & coupledNeighborValueOld(const std::string & var_name,
41  unsigned int comp = 0);
42  virtual const VariableValue & coupledNeighborValueOlder(const std::string & var_name,
43  unsigned int comp = 0);
44 
45  virtual const VariableGradient & coupledNeighborGradient(const std::string & var_name,
46  unsigned int comp = 0);
47  virtual const VariableGradient & coupledNeighborGradientOld(const std::string & var_name,
48  unsigned int comp = 0);
49  virtual const VariableGradient & coupledNeighborGradientOlder(const std::string & var_name,
50  unsigned int comp = 0);
51  virtual const VectorVariableGradient & coupledVectorNeighborGradient(const std::string & var_name,
52  unsigned int comp = 0);
53  virtual const VectorVariableGradient &
54  coupledVectorNeighborGradientOld(const std::string & var_name, unsigned int comp = 0);
55  virtual const VectorVariableGradient &
56  coupledVectorNeighborGradientOlder(const std::string & var_name, unsigned int comp = 0);
57 
58  virtual const VariableSecond & coupledNeighborSecond(const std::string & var_name,
59  unsigned int i = 0);
60 
61  virtual const VariableValue & coupledNeighborDofValues(const std::string & var_name,
62  unsigned int comp = 0);
63  virtual const VariableValue & coupledNeighborDofValuesOld(const std::string & var_name,
64  unsigned int comp = 0);
65  virtual const VariableValue & coupledNeighborDofValuesOlder(const std::string & var_name,
66  unsigned int comp = 0);
67 
68 protected:
70 };
71 
virtual const VectorVariableGradient & coupledVectorNeighborGradientOlder(const std::string &var_name, unsigned int comp=0)
OutputTools< Real >::VariableGradient VariableGradient
Definition: MooseTypes.h:198
virtual const VectorVariableGradient & coupledVectorNeighborGradientOld(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborValueDotDu(const std::string &var_name, unsigned int comp=0)
virtual const VariableSecond & coupledNeighborSecond(const std::string &var_name, unsigned int i=0)
NeighborCoupleable(const MooseObject *moose_object, bool nodal, bool neighbor_nodal)
Constructing the object.
virtual const VariableValue & coupledNeighborDofValues(const std::string &var_name, unsigned int comp=0)
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:42
virtual const VariableValue & coupledNeighborValueDot(const std::string &var_name, unsigned int comp=0)
virtual const VariableGradient & coupledNeighborGradientOlder(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborValueOld(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborValueOlder(const std::string &var_name, unsigned int comp=0)
virtual const VariableGradient & coupledNeighborGradientOld(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborValue(const std::string &var_name, unsigned int comp=0)
OutputTools< Real >::VariableValue VariableValue
Definition: MooseTypes.h:197
Interface for objects that needs coupling capabilities.
Definition: Coupleable.h:62
virtual const VectorVariableGradient & coupledVectorNeighborGradient(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborDofValuesOld(const std::string &var_name, unsigned int comp=0)
virtual const VariableValue & coupledNeighborDofValuesOlder(const std::string &var_name, unsigned int comp=0)
OutputTools< Real >::VariableSecond VariableSecond
Definition: MooseTypes.h:199
OutputTools< RealVectorValue >::VariableGradient VectorVariableGradient
Definition: MooseTypes.h:212
virtual const VariableGradient & coupledNeighborGradient(const std::string &var_name, unsigned int comp=0)
Enhances Coupleable interface to also couple the values from neighbor elements.