www.mooseframework.org
CoupledSwitchingTimeDerivative.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef COUPLEDSWITCHINGTIMEDERIVATIVE_H
8 #define COUPLEDSWITCHINGTIMEDERIVATIVE_H
9 
10 #include "CoupledTimeDerivative.h"
11 #include "JvarMapInterface.h"
12 #include "DerivativeMaterialInterface.h"
13 
14 // Forward Declaration
16 
17 template <>
19 
31  : public DerivativeMaterialInterface<JvarMapKernelInterface<CoupledTimeDerivative>>
32 {
33 public:
34  CoupledSwitchingTimeDerivative(const InputParameters & parameters);
35  virtual void initialSetup();
36 
37 protected:
38  virtual Real computeQpResidual();
39  virtual Real computeQpJacobian();
40  virtual Real computeQpOffDiagJacobian(unsigned int jvar);
41 
43  const unsigned int _nvar;
44 
47  const VariableName _v_name;
48 
50  std::vector<MaterialPropertyName> _Fj_names;
51 
53  const unsigned int _num_j;
54 
56  std::vector<const MaterialProperty<Real> *> _prop_Fj;
57 
59  std::vector<const MaterialProperty<Real> *> _prop_dFjdv;
60 
62  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dFjdarg;
63 
65  std::vector<MaterialPropertyName> _hj_names;
66 
68  std::vector<const MaterialProperty<Real> *> _prop_dhjdetai;
69 
71  std::vector<const MaterialProperty<Real> *> _prop_d2hjdetai2;
72 
74  std::vector<std::vector<const MaterialProperty<Real> *>> _prop_d2hjdetaidarg;
75 };
76 
77 #endif // COUPLEDSWITCHINGTIMEDERIVATIVE_H
InputParameters validParams< CoupledSwitchingTimeDerivative >()
std::vector< const MaterialProperty< Real > * > _prop_Fj
Values of the functions for each phase .
const unsigned int _nvar
Number of coupled variables.
std::vector< MaterialPropertyName > _Fj_names
Names of functions for each phase .
std::vector< const MaterialProperty< Real > * > _prop_dFjdv
Derivatives of the functions wrt the nonlinear variable for this kernel.
This kernel adds a contribution where are the phases, are the switching functions, is the order parameter that is the nonlinear variable, is time, and are functions for each phase.
CoupledSwitchingTimeDerivative(const InputParameters &parameters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar)
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_d2hjdetaidarg
Second derivatives of the switching functions (needed for off-diagonal Jacobians) ...
std::vector< std::vector< const MaterialProperty< Real > * > > _prop_dFjdarg
Derivatives of the functions (needed for off-diagonal Jacobians)
std::vector< MaterialPropertyName > _hj_names
switching function names
const VariableName _v_name
name of order parameter that derivatives are taken wrt (needed to retrieve the derivative material pr...
std::vector< const MaterialProperty< Real > * > _prop_dhjdetai
Derivatives of the switching functions wrt the order parameter for this kernel.
std::vector< const MaterialProperty< Real > * > _prop_d2hjdetai2
Second derivatives of the switching functions wrt the order parameter for this kernel.
const unsigned int _num_j
Number of phases.