nonlinear modified

This commit is contained in:
hamidrezanorouzi
2022-11-05 20:11:47 +03:30
parent 5f1c18e0fd
commit 41cf8fba1b
4 changed files with 323 additions and 24 deletions

View File

@ -40,16 +40,15 @@ public:
{
real Yeff_ = 1000000.0;
real Geff_ = 8000000.0;
real ethan_ = 0.0;
real ethat_ = 0.0;
real mu_ = 0.00001;
real ethan_= 0.0;
real mu_ = 0.00001;
INLINE_FUNCTION_HD
nonLinearProperties(){}
INLINE_FUNCTION_HD
nonLinearProperties(real Yeff, real Geff, real etha_n, real etha_t, real mu ):
Yeff_(Yeff), Geff_(Geff), ethan_(etha_n),ethat_(etha_t), mu_(mu)
nonLinearProperties(real Yeff, real Geff, real etha_n, real mu ):
Yeff_(Yeff), Geff_(Geff), ethan_(etha_n), mu_(mu)
{}
INLINE_FUNCTION_HD
@ -78,7 +77,6 @@ protected:
auto Geff = dict.getVal<realVector>("Geff");
auto nu = dict.getVal<realVector>("nu");
auto en = dict.getVal<realVector>("en");
auto et = dict.getVal<realVector>("et");
auto mu = dict.getVal<realVector>("mu");
auto nElem = Yeff.size();
@ -97,12 +95,6 @@ protected:
return false;
}
if(nElem != et.size())
{
fatalErrorInFunction<<
"sizes of Yeff("<<nElem<<") and et("<<et.size()<<") do not match.\n";
return false;
}
if(nElem != mu.size())
{
@ -130,26 +122,25 @@ protected:
realVector etha_n(nElem);
realVector etha_t(nElem);
forAll(i , en)
{
//K_hertz = 4.0/3.0*Yeff*sqrt(Reff);
//-2.2664*log(en)*sqrt(meff*K_hertz)/sqrt( log(en)**2 + 10.1354);
// we take out sqrt(meff*K_hertz) here and then condier this term
// we take out sqrt(meff*K_hertz) here and then consider this term
// when calculating damping part.
etha_n[i] = -2.2664*log(en[i])/
sqrt(pow(log(en[i]),2.0)+ pow(Pi,2.0));
// no damping for tangential part
etha_t[i] = 0.0;
}
Vector<nonLinearProperties> prop(nElem);
forAll(i,Yeff)
{
prop[i] = {Yeff[i], Geff[i], etha_n[i], etha_t[i], mu[i]};
prop[i] = {Yeff[i], Geff[i], etha_n[i], mu[i]};
}
nonlinearProperties_.assign(prop);
@ -253,16 +244,10 @@ public:
real K_hertz = 4.0/3.0*prop.Yeff_*sqrt(Reff);
real sqrt_meff_K_hertz = sqrt((mi*mj)/(mi+mj) * K_hertz);
//FCn = (-prop.kn_ * ovrlp_n - sqrt_meff * prop.ethan_ * vrn)*Nij;
//FCt = -prop.kt_ * history.overlap_t_ - sqrt_meff * prop.ethat_*Vt;
FCn = (static_cast<real>(-4.0/3.0) * prop.Yeff_ * sqrt(Reff)* pow(ovrlp_n,static_cast<real>(1.5)) -
sqrt_meff_K_hertz*prop.ethan_*pow(ovrlp_n,static_cast<real>(0.25))*vrn)*Nij;
FCt = (- static_cast<real>(16.0/3.0) * prop.Geff_ * sqrt(Reff*ovrlp_n) ) * history.overlap_t_;
FCt = (- static_cast<real>(8.0) * prop.Geff_ * sqrt(Reff*ovrlp_n) ) * history.overlap_t_;
real ft = length(FCt);
real ft_fric = prop.mu_ * length(FCn);
@ -274,7 +259,7 @@ public:
{
if constexpr (limited)
{
real kt = static_cast<real>(16.0/3.0) * prop.Geff_ * sqrt(Reff*ovrlp_n);
real kt = static_cast<real>(8.0) * prop.Geff_ * sqrt(Reff*ovrlp_n);
FCt *= (ft_fric/ft);
history.overlap_t_ = - (FCt/kt);
}