Finite Element Domain Decomposition Library
FEDDLib
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
7namespace 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
CarreauYasuda(ParameterListPtr_Type parameters)
Constructor for CarreauYasuda.
Definition CarreauYasuda_def.hpp:10
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:26
double getViscosity()
Get the current viscosity value.
Definition CarreauYasuda_decl.hpp:111
void setParams(ParameterListPtr_Type params) override
Each constitutive model includes different material parameters which will be specified in parametersP...
Definition CarreauYasuda_def.hpp:59
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:40
void echoInformationMapping() override
Print parameter values used in model at runtime.
Definition CarreauYasuda_def.hpp:73
DifferentiableFuncClass(ParameterListPtr_Type parameters)
Definition DifferentiableFuncClass_def.hpp:10
Definition MultiVector_decl.hpp:36
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5