www.mooseframework.org
KKSMultiPhaseConcentration.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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"
14 #include "DerivativeMaterialInterface.h"
15 
16 // Forward Declarations
18 
19 template <>
21 
36  : public DerivativeMaterialInterface<JvarMapKernelInterface<KernelValue>>
37 {
38 public:
39  KKSMultiPhaseConcentration(const InputParameters & parameters);
40 
41 protected:
42  virtual Real precomputeQpResidual();
43  virtual Real precomputeQpJacobian();
44  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
45 
46 private:
47  const unsigned int _num_j;
48  std::vector<const VariableValue *> _cj;
49  const JvarMap & _cj_map;
50 
52  int _k;
53 
54  const VariableValue & _c;
55  unsigned int _c_var;
56 
58  std::vector<MaterialPropertyName> _hj_names;
59  std::vector<const MaterialProperty<Real> *> _prop_hj;
60 
62  std::vector<VariableName> _eta_names;
63  const JvarMap & _eta_map;
64 
66  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dhjdetai;
67 };
KKSMultiPhaseConcentration::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
Definition: KKSMultiPhaseConcentration.C:101
validParams< KKSMultiPhaseConcentration >
InputParameters validParams< KKSMultiPhaseConcentration >()
Definition: KKSMultiPhaseConcentration.C:16
KKSMultiPhaseConcentration::_prop_dhjdetai
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dhjdetai
Derivative of the switching function .
Definition: KKSMultiPhaseConcentration.h:66
KKSMultiPhaseConcentration
Enforce sum of phase concentrations to be the real concentration.
Definition: KKSMultiPhaseConcentration.h:35
KKSMultiPhaseConcentration::_c
const VariableValue & _c
Definition: KKSMultiPhaseConcentration.h:54
KKSMultiPhaseConcentration::_c_var
unsigned int _c_var
Definition: KKSMultiPhaseConcentration.h:55
KKSMultiPhaseConcentration::_k
int _k
Position of the nonlinear variable in the list of cj's.
Definition: KKSMultiPhaseConcentration.h:52
KKSMultiPhaseConcentration::_num_j
const unsigned int _num_j
Definition: KKSMultiPhaseConcentration.h:47
KKSMultiPhaseConcentration::precomputeQpResidual
virtual Real precomputeQpResidual()
Definition: KKSMultiPhaseConcentration.C:84
KKSMultiPhaseConcentration::KKSMultiPhaseConcentration
KKSMultiPhaseConcentration(const InputParameters &parameters)
Definition: KKSMultiPhaseConcentration.C:33
KKSMultiPhaseConcentration::_cj_map
const JvarMap & _cj_map
Definition: KKSMultiPhaseConcentration.h:49
KKSMultiPhaseConcentration::_prop_hj
std::vector< const MaterialProperty< Real > * > _prop_hj
Definition: KKSMultiPhaseConcentration.h:59
KKSMultiPhaseConcentration::_eta_names
std::vector< VariableName > _eta_names
Order parameters for each phase .
Definition: KKSMultiPhaseConcentration.h:62
KKSMultiPhaseConcentration::precomputeQpJacobian
virtual Real precomputeQpJacobian()
Definition: KKSMultiPhaseConcentration.C:95
KKSMultiPhaseConcentration::_hj_names
std::vector< MaterialPropertyName > _hj_names
Switching functions for each phase .
Definition: KKSMultiPhaseConcentration.h:58
KKSMultiPhaseConcentration::_cj
std::vector< const VariableValue * > _cj
Definition: KKSMultiPhaseConcentration.h:48
KKSMultiPhaseConcentration::_eta_map
const JvarMap & _eta_map
Definition: KKSMultiPhaseConcentration.h:63