https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
14class 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_ics_physics")
21
27{
28public:
30
32
33 void addComponent(const ActionComponent & component) override;
34
35protected:
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
48private:
50 virtual void addPreconditioning() override;
52 virtual void addPostprocessors() override;
54 virtual void addInitialConditions() override;
55};
const InputParameters & parameters() const
Base class to host all common parameters and attributes of Physics actions to solve the diffusion equ...
const bool _use_ad
Whether to use automatic differentiation or not.
void addComponent(const ActionComponent &component) override
const unsigned int _num_species
Number of species.
virtual void addPreconditioning() override
Add default preconditioning options.
const std::vector< std::vector< BoundaryName > > & _dirichlet_boundaries
Boundaries on which a Dirichlet boundary condition is applied. Outer indexing is variables.
const std::vector< VariableName > & _species_names
Name of the diffused variables.
virtual void addInitialConditions() override
Add initial conditions for each diffused variable.
virtual void addPostprocessors() override
Add postprocessing of the fluxes.
const std::vector< std::vector< BoundaryName > > & _neumann_boundaries
Boundaries on which a Neumann boundary condition is applied. Outer indexing is variables.