https://mooseframework.inl.gov
Loading...
Searching...
No Matches
KKSMultiPhaseConcentration.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 "KernelValue.h"
13#include "JvarMapInterface.h"
15
16// Forward Declarations
17
32 : public DerivativeMaterialInterface<JvarMapKernelInterface<KernelValue>>
33{
34public:
36
38
39protected:
40 virtual Real precomputeQpResidual();
41 virtual Real precomputeQpJacobian();
42 virtual Real computeQpOffDiagJacobian(unsigned int jvar);
43
44private:
45 const unsigned int _num_j;
46 const std::vector<const VariableValue *> _cj;
47 const JvarMap & _cj_map;
48
50 int _k;
51
53 unsigned int _c_var;
54
56 std::vector<MaterialPropertyName> _hj_names;
57 std::vector<const MaterialProperty<Real> *> _prop_hj;
58
60 std::vector<VariableName> _eta_names;
61 const JvarMap & _eta_map;
62
64 std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dhjdetai;
65};
Enforce sum of phase concentrations to be the real concentration.
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
std::vector< MaterialPropertyName > _hj_names
Switching functions for each phase .
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dhjdetai
Derivative of the switching function .
std::vector< VariableName > _eta_names
Order parameters for each phase .
std::vector< const MaterialProperty< Real > * > _prop_hj
static InputParameters validParams()
int _k
Position of the nonlinear variable in the list of cj's.
const std::vector< const VariableValue * > _cj
VariableValueTempl< false > VariableValue