https://mooseframework.inl.gov
MultiSpeciesDiffusionPhysicsBase.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"
13 
14 class ActionComponent;
15 
16 #define registerMultiSpeciesDiffusionPhysicsBaseTasks(app_name, derived_name) \
17  registerPhysicsBaseTasks(app_name, derived_name); \
18  registerMooseAction(app_name, derived_name, "add_preconditioning"); \
19  registerMooseAction(app_name, derived_name, "add_postprocessor"); \
20  registerMooseAction(app_name, derived_name, "add_ic")
21 
27 {
28 public:
30 
32 
33  void addComponent(const ActionComponent & component) override;
34 
35 protected:
37  const std::vector<VariableName> & _species_names;
39  const unsigned int _num_species;
41  const std::vector<std::vector<BoundaryName>> & _neumann_boundaries;
43  const std::vector<std::vector<BoundaryName>> & _dirichlet_boundaries;
44 
46  const bool _use_ad;
47 
48 private:
50  virtual void addPreconditioning() override;
52  virtual void addPostprocessors() override;
54  virtual void addInitialConditions() override;
55 };
static const std::string component
Definition: NS.h:153
Base class to host all common parameters and attributes of Physics actions to solve the diffusion equ...
const std::vector< std::vector< BoundaryName > > & _neumann_boundaries
Boundaries on which a Neumann boundary condition is applied. Outer indexing is variables.
virtual void addInitialConditions() override
Add initial conditions for each diffused variable.
MultiSpeciesDiffusionPhysicsBase(const InputParameters &parameters)
void addComponent(const ActionComponent &component) override
virtual void addPreconditioning() override
Add default preconditioning options.
const std::vector< VariableName > & _species_names
Name of the diffused variables.
const unsigned int _num_species
Number of species.
const std::vector< std::vector< BoundaryName > > & _dirichlet_boundaries
Boundaries on which a Dirichlet boundary condition is applied. Outer indexing is variables.
const InputParameters & parameters() const
virtual void addPostprocessors() override
Add postprocessing of the fluxes.
const bool _use_ad
Whether to use automatic differentiation or not.