Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
CarreauYasuda_decl.hpp
1
#ifndef CARREAUYASUDA_DECL_hpp
2
#define CARREAUYASUDA_DECL_hpp
3
4
#include "feddlib/core/General/DifferentiableFuncClass.hpp"
5
#include "feddlib/core/FEDDCore.hpp"
6
7
namespace
FEDD
8
{
9
64
65
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
66
class
CarreauYasuda
:
public
DifferentiableFuncClass
<SC, LO, GO, NO>
67
{
68
public
:
69
typedef
MultiVector<SC, LO, GO, NO>
MultiVector_Type;
70
typedef
Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
71
typedef
Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
72
73
typedef
DifferentiableFuncClass<SC, LO, GO, NO>
DifferentiableFuncClass_Type;
74
75
// Inherited Function from base abstract class
81
void
setParams
(ParameterListPtr_Type params)
override
;
82
89
void
evaluateMapping
(ParameterListPtr_Type params,
double
shearRate,
double
&viscosity)
override
;
90
99
void
evaluateDerivative
(ParameterListPtr_Type params,
double
shearRate,
double
&res)
override
;
100
104
void
echoInformationMapping
()
override
;
105
106
// New Added Functions
111
double
getViscosity
() {
return
viscosity_; }
112
113
114
118
CarreauYasuda
(ParameterListPtr_Type parameters);
119
120
private
:
121
double
viscosity_;
122
std::string shearThinningModel_;
// for printing out which model is actually used
124
double
characteristicTime;
// corresponds to \lambda in the formulas in the literature
125
double
fluid_index_n;
// corresponds to n in the formulas being the exponent
126
double
nu_0;
// is the zero shear-rate viscosity
127
double
nu_infty;
// is the infinite shear-rate viscosity
128
double
inflectionPoint;
// corresponds to a in the formulas in the literature
129
double
shear_rate_limitZero;
// In the formulas the shear rate is in the denominator so we have to ensure that it is
130
};
131
132
}
133
#endif
FEDD::CarreauYasuda::CarreauYasuda
CarreauYasuda(ParameterListPtr_Type parameters)
Constructor for CarreauYasuda.
Definition
CarreauYasuda_def.hpp:8
FEDD::CarreauYasuda::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
CarreauYasuda_def.hpp:24
FEDD::CarreauYasuda::getViscosity
double getViscosity()
Get the current viscosity value.
Definition
CarreauYasuda_decl.hpp:111
FEDD::CarreauYasuda::setParams
void setParams(ParameterListPtr_Type params) override
Each constitutive model includes different material parameters which will be specified in parametersP...
Definition
CarreauYasuda_def.hpp:57
FEDD::CarreauYasuda::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
CarreauYasuda_def.hpp:38
FEDD::CarreauYasuda::echoInformationMapping
void echoInformationMapping() override
Print parameter values used in model at runtime.
Definition
CarreauYasuda_def.hpp:71
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
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
AceFemAssembly
specific
GeneralizedNewtonianModels
CarreauYasuda_decl.hpp
Generated by
1.17.0