https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MatDiffusionBase.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 "GenericKernelGrad.h"
13#include "JvarMapInterface.h"
15
25template <typename T, bool is_ad>
27 : public DerivativeMaterialInterface<JvarMapKernelInterface<GenericKernelGrad<is_ad>>>
28{
29public:
31
32 MatDiffusionBaseTempl(const InputParameters & parameters);
33
34protected:
36
39
42
44};
45
46template <typename T>
48{
49public:
51
52 MatDiffusionBase(const InputParameters & parameters);
53
55
56protected:
57 virtual void initialSetup() override;
58 virtual RealGradient precomputeQpJacobian() override;
59 virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
60 virtual RealGradient precomputeQpCJacobian();
61
64
66 std::vector<const MaterialProperty<T> *> _ddiffusivity_darg;
67
69 const bool _is_coupled;
70
72 unsigned int _v_var;
73
75 using MatDiffusionBaseTempl<T, false>::_qp;
76 using MatDiffusionBaseTempl<T, false>::_grad_phi;
77 using MatDiffusionBaseTempl<T, false>::_j;
78 using MatDiffusionBaseTempl<T, false>::_i;
79 using MatDiffusionBaseTempl<T, false>::_phi;
80 using MatDiffusionBaseTempl<T, false>::_grad_v;
81 using MatDiffusionBaseTempl<T, false>::_grad_test;
82 using MatDiffusionBaseTempl<T, false>::_var;
83 using MatDiffusionBaseTempl<T, false>::_coupled_moose_vars;
84};
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Moose::GenericType< VariableGradient, is_ad > GenericVariableGradient
Definition MooseTypes.h:716
Moose::GenericType< RealVectorValue, is_ad > GenericRealVectorValue
Definition MooseTypes.h:702
Interface class ("Veneer") to provide generator methods for derivative material property names.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
This class template implements a diffusion kernel with a mobility that can vary spatially and can dep...
static InputParameters validParams()
virtual GenericRealVectorValue< is_ad > precomputeQpResidual() override
const GenericMaterialProperty< T, is_ad > & _diffusivity
diffusion coefficient
const GenericVariableGradient< is_ad > & _grad_v
Gradient of the concentration.
std::vector< const MaterialProperty< T > * > _ddiffusivity_darg
diffusion coefficient derivatives w.r.t. coupled variables
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
static InputParameters validParams()
const MaterialProperty< T > & _ddiffusivity_dc
diffusion coefficient derivative w.r.t. the kernel variable
virtual void initialSetup() override
virtual RealGradient precomputeQpCJacobian()
unsigned int _v_var
int label for the Concentration
const bool _is_coupled
is the kernel used in a coupled form?
virtual RealGradient precomputeQpJacobian() override