Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
PowerLaw_decl.hpp
1
#ifndef POWERLAW_DECL_hpp
2
#define POWERLAW_DECL_hpp
3
4
#include "feddlib/core/General/DifferentiableFuncClass.hpp"
5
// #include "feddlib/core/AceFemAssembly/Helper.hpp"
6
#include "feddlib/core/FEDDCore.hpp"
7
8
namespace
FEDD
9
{
10
65
66
67
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
68
class
PowerLaw
:
public
DifferentiableFuncClass
<SC, LO, GO, NO>
69
{
70
public
:
71
typedef
MultiVector<SC, LO, GO, NO>
MultiVector_Type;
72
typedef
Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
73
typedef
Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
74
75
typedef
DifferentiableFuncClass<SC, LO, GO, NO>
DifferentiableFuncClass_Type;
76
77
// Inherited Function from base abstract class
78
84
void
setParams
(ParameterListPtr_Type params)
override
;
85
92
void
evaluateMapping
(ParameterListPtr_Type params,
double
shearRate,
double
&viscosity)
override
;
101
void
evaluateDerivative
(ParameterListPtr_Type params,
double
shearRate,
double
&res)
override
;
102
106
void
echoInformationMapping
()
override
;
107
108
// New Added Functions
109
/*
110
\brief Get the current viscosity value
111
\return the scalar value of viscosity
112
*/
113
double
getViscosity() {
return
viscosity_; }
114
119
PowerLaw
(ParameterListPtr_Type parameters);
120
121
private
:
122
double
viscosity_;
123
std::string shearThinningModel_;
// for printing out which model is actually used
125
double
powerlaw_index_n;
// corresponds to n in the formulas being the power-law index
126
double
powerlaw_constant_K;
// is the zero shear-rate viscosity
127
double
nu_infty;
// is the artificial infinite shear-rate viscosity needed for making bounds for the viscosity
128
double
nu_zero;
// is the artificial zero shear-rate viscosity needed for making bounds for the viscosity
129
double
shear_rate_limitZero;
130
131
};
132
133
}
134
#endif
FEDD::DifferentiableFuncClass< default_sc, default_lo, default_go, default_no >::DifferentiableFuncClass
DifferentiableFuncClass(ParameterListPtr_Type parameters)
Definition
DifferentiableFuncClass_def.hpp:8
FEDD::MultiVector
Definition
MultiVector_decl.hpp:61
FEDD::PowerLaw::PowerLaw
PowerLaw(ParameterListPtr_Type parameters)
Constructor for CarreauYasuda.
Definition
PowerLaw_def.hpp:7
FEDD::PowerLaw::evaluateMapping
void evaluateMapping(ParameterListPtr_Type params, double shearRate, double &viscosity) override
Update the viscosity according to a chosen shear thinning generalized newtonian constitutive equation...
Definition
PowerLaw_def.hpp:28
FEDD::PowerLaw::echoInformationMapping
void echoInformationMapping() override
Print parameter values used in model at runtime.
Definition
PowerLaw_def.hpp:83
FEDD::PowerLaw::setParams
void setParams(ParameterListPtr_Type params) override
Each constitutive model includes different material parameters which will be specified in parametersP...
Definition
PowerLaw_def.hpp:67
FEDD::PowerLaw::evaluateDerivative
void evaluateDerivative(ParameterListPtr_Type params, double shearRate, double &res) override
For Newton method and NOX we need additional term in Jacobian considering directional derivative of o...
Definition
PowerLaw_def.hpp:49
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
AceFemAssembly
specific
GeneralizedNewtonianModels
PowerLaw_decl.hpp
Generated by
1.17.0