From a5552439e332efbd4d9d59c6034964467b3932d4 Mon Sep 17 00:00:00 2001 From: Derek Gaston Date: Fri, 28 Sep 2012 14:11:44 +0000 Subject: [PATCH] add missing files #1386 r13957 --- ...eVariableDependencyIntermediateInterface.h | 46 +++++++++++++++++++ .../base/MooseVariableDependencyInterface.h | 42 +++++++++++++++++ ...eVariableDependencyIntermediateInterface.h | 46 +++++++++++++++++++ 3 files changed, 134 insertions(+) create mode 100644 framework/include/base/CoupleableMooseVariableDependencyIntermediateInterface.h create mode 100644 framework/include/base/MooseVariableDependencyInterface.h create mode 100644 framework/include/base/NeighborCoupleableMooseVariableDependencyIntermediateInterface.h diff --git a/framework/include/base/CoupleableMooseVariableDependencyIntermediateInterface.h b/framework/include/base/CoupleableMooseVariableDependencyIntermediateInterface.h new file mode 100644 index 000000000000..d7e4c723a041 --- /dev/null +++ b/framework/include/base/CoupleableMooseVariableDependencyIntermediateInterface.h @@ -0,0 +1,46 @@ +/****************************************************************/ +/* DO NOT MODIFY THIS HEADER */ +/* MOOSE - Multiphysics Object Oriented Simulation Environment */ +/* */ +/* (c) 2010 Battelle Energy Alliance, LLC */ +/* ALL RIGHTS RESERVED */ +/* */ +/* Prepared by Battelle Energy Alliance, LLC */ +/* Under Contract No. DE-AC07-05ID14517 */ +/* With the U. S. Department of Energy */ +/* */ +/* See COPYRIGHT for full restrictions */ +/****************************************************************/ + +#ifndef COUPLEABLEMOOSEVARIABLEDEPENDENCYINTERMEDIATEINTERFACE_H +#define COUPLEABLEMOOSEVARIABLEDEPENDENCYINTERMEDIATEINTERFACE_H + +#include "Coupleable.h" +#include "MooseVariableInterface.h" +#include "MooseVariableDependencyInterface.h" + +/** + * Intermediate base class that ties together all the interfaces for getting + * MooseVariables with the MooseVariableDependencyInterface + */ +class CoupleableMooseVariableDependencyIntermediateInterface : + public Coupleable, + public ScalarCoupleable, + public MooseVariableInterface, + public MooseVariableDependencyInterface +{ +public: + CoupleableMooseVariableDependencyIntermediateInterface(InputParameters & parameters, bool nodal) : + Coupleable(parameters, nodal), + ScalarCoupleable(parameters), + MooseVariableInterface(parameters, nodal) + { + const std::vector & coupled_vars = getCoupledMooseVars(); + for(unsigned int i=0; i + +class MooseVariableDependencyInterface +{ +public: + MooseVariableDependencyInterface() {} + + /** + * Retrieve the set of MooseVariables that _this_ object depends on. + * @return The MooseVariables that MUST be reinited before evaluating this object + */ + const std::set & getMooseVariableDependencies() { return _moose_variable_dependencies; } + +protected: + + /** + * Call this function ot add the passed in MooseVariable as a variable that _this_ object depends on. + */ + void addMooseVariableDependency(MooseVariable * var) { _moose_variable_dependencies.insert(var); } + +private: + std::set _moose_variable_dependencies; +}; + +#endif // MOOSEVARIABLEDEPENDENCYINTERFACE_H diff --git a/framework/include/base/NeighborCoupleableMooseVariableDependencyIntermediateInterface.h b/framework/include/base/NeighborCoupleableMooseVariableDependencyIntermediateInterface.h new file mode 100644 index 000000000000..fbcbc38dac28 --- /dev/null +++ b/framework/include/base/NeighborCoupleableMooseVariableDependencyIntermediateInterface.h @@ -0,0 +1,46 @@ +/****************************************************************/ +/* DO NOT MODIFY THIS HEADER */ +/* MOOSE - Multiphysics Object Oriented Simulation Environment */ +/* */ +/* (c) 2010 Battelle Energy Alliance, LLC */ +/* ALL RIGHTS RESERVED */ +/* */ +/* Prepared by Battelle Energy Alliance, LLC */ +/* Under Contract No. DE-AC07-05ID14517 */ +/* With the U. S. Department of Energy */ +/* */ +/* See COPYRIGHT for full restrictions */ +/****************************************************************/ + +#ifndef NEIGHBORCOUPLEABLEMOOSEVARIABLEDEPENDENCYINTERMEDIATEINTERFACE_H +#define NEIGHBORCOUPLEABLEMOOSEVARIABLEDEPENDENCYINTERMEDIATEINTERFACE_H + +#include "Coupleable.h" +#include "MooseVariableInterface.h" +#include "MooseVariableDependencyInterface.h" + +/** + * Intermediate base class that ties together all the interfaces for getting + * MooseVariables with the MooseVariableDependencyInterface + */ +class NeighborCoupleableMooseVariableDependencyIntermediateInterface : + public NeighborCoupleable, + public ScalarCoupleable, + public NeighborMooseVariableInterface, + public MooseVariableDependencyInterface +{ +public: + NeighborCoupleableMooseVariableDependencyIntermediateInterface(InputParameters & parameters, bool nodal) : + NeighborCoupleable(parameters, nodal), + ScalarCoupleable(parameters), + NeighborMooseVariableInterface(parameters, nodal) + { + const std::vector & coupled_vars = getCoupledMooseVars(); + for(unsigned int i=0; i