https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ACGrGrMulti.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 "ACGrGrBase.h"
13#include "ADGrainGrowthBase.h"
14
21template <bool is_ad>
22using ACGrGrMultiBase = typename std::conditional<is_ad, ADGrainGrowthBase, ACGrGrBase>::type;
23
24template <bool is_ad>
25class ACGrGrMultiTempl : public ACGrGrMultiBase<is_ad>
26{
27public:
29
30 ACGrGrMultiTempl(const InputParameters & parameters);
31
32protected:
34 std::vector<MaterialPropertyName> _gamma_names;
35 unsigned int _num_j;
36
38 std::vector<const GenericMaterialProperty<Real, is_ad> *> _prop_gammas;
39
40 using ACGrGrMultiBase<is_ad>::_op_num;
41 using ACGrGrMultiBase<is_ad>::_qp;
42 using ACGrGrMultiBase<is_ad>::_vals;
43 using ACGrGrMultiBase<is_ad>::_u;
44 using ACGrGrMultiBase<is_ad>::_mu;
45
47};
48
49class ACGrGrMulti : public ACGrGrMultiTempl<false>
50{
51public:
52 ACGrGrMulti(const InputParameters & parameters);
53
54protected:
55 virtual Real computeDFDOP(PFFunctionType type) override;
56 virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
57
58 const NonlinearVariableName _uname;
60 const std::vector<VariableName> _vname;
61 std::vector<const MaterialProperty<Real> *> _dmudEtaj;
62};
63
64class ADACGrGrMulti : public ACGrGrMultiTempl<true>
65{
66public:
68
69protected:
70 virtual ADReal computeDFDOP() override;
71};
typename std::conditional< is_ad, ADGrainGrowthBase, ACGrGrBase >::type ACGrGrMultiBase
This kernel calculates the residual for grain growth for a multi-phase, poly-crystal system.
Definition ACGrGrMulti.h:22
DualNumber< Real, DNDerivativeType, true > ADReal
Moose::GenericType< Real, is_ad > GenericReal
std::vector< MaterialPropertyName > _gamma_names
Names of gammas for each order parameter.
Definition ACGrGrMulti.h:34
static InputParameters validParams()
Definition ACGrGrMulti.C:17
unsigned int _num_j
Definition ACGrGrMulti.h:35
std::vector< const GenericMaterialProperty< Real, is_ad > * > _prop_gammas
Values of gammas for each order parameter.
Definition ACGrGrMulti.h:38
GenericReal< is_ad > computedF0du()
virtual Real computeDFDOP(PFFunctionType type) override
Definition ACGrGrMulti.C:57
const MaterialProperty< Real > & _dmudu
Definition ACGrGrMulti.h:59
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition ACGrGrMulti.C:95
const NonlinearVariableName _uname
Definition ACGrGrMulti.h:58
std::vector< const MaterialProperty< Real > * > _dmudEtaj
Definition ACGrGrMulti.h:61
const std::vector< VariableName > _vname
Definition ACGrGrMulti.h:60
virtual ADReal computeDFDOP() override
Definition ACGrGrMulti.C:84