https://mooseframework.inl.gov
DiffusionPhysicsBase.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 
12 #include "PhysicsBase.h"
14 
15 class ActionComponent;
16 
17 #define registerDiffusionPhysicsBaseTasks(app_name, derived_name) \
18  registerPhysicsBaseTasks(app_name, derived_name); \
19  registerMooseAction(app_name, derived_name, "add_preconditioning"); \
20  registerMooseAction(app_name, derived_name, "add_postprocessor"); \
21  registerMooseAction(app_name, derived_name, "add_ic")
22 
27 class DiffusionPhysicsBase : virtual public PhysicsBase, virtual public PhysicsComponentInterface
28 {
29 public:
31 
33 
34 protected:
36  const VariableName & _var_name;
38  const std::vector<BoundaryName> & _neumann_boundaries;
40  const std::vector<BoundaryName> & _dirichlet_boundaries;
41 
42 private:
43  virtual void addPreconditioning() override;
45  virtual void addPostprocessors() override;
46  // The initial conditions for CG and FV can use the same classes
47  virtual void addInitialConditions() override;
48  virtual void addInitialConditionsFromComponents() override;
49 };
static InputParameters validParams()
const std::vector< BoundaryName > & _neumann_boundaries
Boundaries on which a Neumann boundary condition is applied.
virtual void addPostprocessors() override
Add postprocessing of the fluxes.
Base class to help creating an entire physics.
Definition: PhysicsBase.h:30
DiffusionPhysicsBase(const InputParameters &parameters)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
Base class for components that are defined using an action.
const VariableName & _var_name
Name of the diffused variable.
virtual void addInitialConditionsFromComponents() override
Interface class to help components interact with Physics.
const std::vector< BoundaryName > & _dirichlet_boundaries
Boundaries on which a Dirichlet boundary condition is applied.
virtual void addInitialConditions() override
const InputParameters & parameters() const
Get the parameters of the object.
virtual void addPreconditioning() override
Base class to host all common parameters and attributes of Physics actions to solve the diffusion equ...