Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
Dimless_Carreau_decl.hpp
1#ifndef DIMLESS_CARREAU_DECL_hpp
2#define DIMLESS_CARREAU_DECL_hpp
3
4#include "feddlib/core/General/DifferentiableFuncClass.hpp"
5// #include "feddlib/core/AceFemAssembly/Helper.hpp"
6#include "feddlib/core/FEDDCore.hpp"
7
8namespace FEDD
9{
10
65
66 template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
67 class Dimless_Carreau : public DifferentiableFuncClass<SC, LO, GO, NO>
68 {
69 public:
70 typedef MultiVector<SC, LO, GO, NO> MultiVector_Type;
71 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
72 typedef Teuchos::RCP<const MultiVector_Type> MultiVectorConstPtr_Type;
73
74 typedef DifferentiableFuncClass<SC, LO, GO, NO> DifferentiableFuncClass_Type;
75
76 // Inherited Function from base abstract class
77
83 void setParams(ParameterListPtr_Type params) override;
90 void evaluateMapping(ParameterListPtr_Type params, double shearRate, double &viscosity) override;
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
117 Dimless_Carreau(ParameterListPtr_Type parameters);
118
119 private:
120 double viscosity_;
121 std::string shearThinningModel_; // for printing out which model is actually used
123 double characteristicTime; // corresponds to \lambda in the formulas in the literature here dimensionless
124 double fluid_index_n; // corresponds to n in the formulas being the power-law index
125 double nu_0; // is the zero shear-rate viscosity here dimensionless
126 double nu_infty; // is the infnite shear-rate viscosity here dimensionless
127 double shear_rate_limitZero;
128 double reference_viscosity; // to obtain actual viscosity we have to multiply with reference viscosity
129 };
130
131}
132#endif
DifferentiableFuncClass(ParameterListPtr_Type parameters)
Definition DifferentiableFuncClass_def.hpp:10
double getViscosity()
Get the current viscosity value.
Definition Dimless_Carreau_decl.hpp:111
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 Dimless_Carreau_def.hpp:38
void setParams(ParameterListPtr_Type params) override
Each constitutive model includes different material parameters which will be specified in parametersP...
Definition Dimless_Carreau_def.hpp:49
Dimless_Carreau(ParameterListPtr_Type parameters)
Constructor for Dimless_Carreau.
Definition Dimless_Carreau_def.hpp:9
void evaluateMapping(ParameterListPtr_Type params, double shearRate, double &viscosity) override
Update the viscosity according to a chosen shear thinning generalized newtonian constitutive equation...
Definition Dimless_Carreau_def.hpp:29
void echoInformationMapping() override
Print parameter values used in model at runtime.
Definition Dimless_Carreau_def.hpp:65
Definition MultiVector_decl.hpp:36
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5