Viscoelastic models and tutorials update. Jovani Favero and HJ

This commit is contained in:
Hrvoje Jasak 2010-10-12 12:42:12 +01:00
parent 7578fb1532
commit f129e6c013
289 changed files with 3555 additions and 276462 deletions

View file

@ -12,13 +12,13 @@ viscoelasticLaws/FENE-CR/FENE_CR.C
viscoelasticLaws/FENE-P/FENE_P.C
viscoelasticLaws/XPP_SE/XPP_SE.C
viscoelasticLaws/XPP_DE/XPP_DE.C
viscoelasticLaws/PP/PP.C
viscoelasticLaws/DCPP/DCPP.C
viscoelasticLaws/Feta-PTT/Feta_PTT.C
viscoelasticLaws/Leonov/Leonov.C
viscoelasticLaws/White-Metzner/White-Metzner_Larson/White_Metzner_Larson.C
viscoelasticLaws/White-Metzner/White-Metzner_CM/White_Metzner_CM.C
viscoelasticLaws/White-Metzner/White-Metzner_CY/White_Metzner_CY.C
viscoelasticLaws/WhiteMetzner/WhiteMetznerLarson/WhiteMetznerLarson.C
viscoelasticLaws/WhiteMetzner/WhiteMetznerCross/WhiteMetznerCross.C
viscoelasticLaws/WhiteMetzner/WhiteMetznerCarreauYasuda/WhiteMetznerCarreauYasuda.C
viscoelasticLaws/S-MDCPP/S-MDCPP.C
viscoelasticLaws/multiMode/multiMode.C

View file

@ -27,20 +27,18 @@ License
#include "DCPP.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(DCPP, 0);
addToRunTimeSelectionTable(viscoelasticLaw, DCPP, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(DCPP, 0);
addToRunTimeSelectionTable(viscoelasticLaw, DCPP, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
DCPP::DCPP
Foam::DCPP::DCPP
(
const word& name,
const volVectorField& U,
@ -117,25 +115,23 @@ DCPP::DCPP
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> DCPP::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::DCPP::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
fvc::div(tau_/rho_, "div(tau)")
- fvc::laplacian(etaPEff/rho_, U, "laplacian(etaPEff,U)")
+ fvm::laplacian( (etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
+ fvm::laplacian((etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
);
}
void DCPP::correct()
void Foam::DCPP::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Upper convected derivate term
volTensorField Cupper = S_ & L;
@ -144,48 +140,42 @@ void DCPP::correct()
volTensorField Clower = L & S_;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Evolution of orientation
tmp<fvSymmTensorMatrix> SEqn
fvSymmTensorMatrix SEqn
(
fvm::ddt(S_)
+ fvm::div(phi(), S_)
==
(1 - zeta_/2)*twoSymm( Cupper )
- (zeta_/2)*twoSymm( Clower )
- (1 - zeta_)*fvm::Sp( (twoD && S_) , S_ )
- fvm::Sp(( 1/lambdaOb_/Foam::sqr(Lambda_) ), S_ )
+ 1/lambdaOb_/Foam::sqr(Lambda_)/3*I_
+ fvm::div(phi(), S_)
==
(1 - zeta_/2)*twoSymm(Cupper)
- (zeta_/2)*twoSymm(Clower)
- (1 - zeta_)*fvm::Sp((twoD && S_), S_)
- fvm::Sp(1/lambdaOb_/Foam::sqr(Lambda_), S_)
+ 1/lambdaOb_/Foam::sqr(Lambda_)/3*I_
);
SEqn().relax();
solve(SEqn);
SEqn.relax();
SEqn.solve();
// Evolution of the backbone stretch
tmp<fvScalarMatrix> LambdaEqn
fvScalarMatrix lambdaEqn
(
fvm::ddt(Lambda_)
+ fvm::div(phi(), Lambda_)
==
fvm::Sp( (twoD && S_) / 2 , Lambda_ )
- fvm::Sp( Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_ , Lambda_ )
+ Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_
+ fvm::div(phi(), Lambda_)
==
fvm::Sp((twoD && S_)/2 , Lambda_)
- fvm::Sp(Foam::exp(2/q_*(Lambda_ - 1))/lambdaOs_ , Lambda_)
+ Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_
);
LambdaEqn().relax();
solve(LambdaEqn);
lambdaEqn.relax();
lambdaEqn.solve();
// Viscoelastic stress
tau_ = etaP_/lambdaOb_/(1 - zeta_) * (3*Foam::sqr(Lambda_)*S_ - I_);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,17 @@ License
#include "EPTT.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(EPTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, EPTT, dictionary);
defineTypeNameAndDebug(EPTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, EPTT, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
EPTT::EPTT
Foam::EPTT::EPTT
(
const word& name,
const volVectorField& U,
@ -72,7 +69,7 @@ EPTT::EPTT
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> EPTT::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::EPTT::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
@ -85,37 +82,36 @@ tmp<fvVectorMatrix> EPTT::divTau(volVectorField& U) const
}
void EPTT::correct()
void Foam::EPTT::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambda_ * twoD
+ twoSymm( C )
- zeta_ / 2 * ( (tau_ & twoD) + (twoD & tau_) )
- fvm::Sp( (1/lambda_) * Foam::exp( epsilon_ * lambda_ / etaP_ * tr(tau_) ) , tau_ )
+ fvm::div(phi(), tau_)
==
etaP_/lambda_*twoD
+ twoSymm(C)
- zeta_/2*((tau_ & twoD) + (twoD & tau_))
- fvm::Sp
(
(1/lambda_)*Foam::exp(epsilon_*lambda_/etaP_*tr(tau_)),
tau_
)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,18 @@ License
#include "FENE_CR.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(FENE_CR, 0);
addToRunTimeSelectionTable(viscoelasticLaw, FENE_CR, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(FENE_CR, 0);
addToRunTimeSelectionTable(viscoelasticLaw, FENE_CR, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
FENE_CR::FENE_CR
Foam::FENE_CR::FENE_CR
(
const word& name,
const volVectorField& U,
@ -71,7 +69,7 @@ FENE_CR::FENE_CR
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> FENE_CR::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::FENE_CR::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
@ -84,36 +82,31 @@ tmp<fvVectorMatrix> FENE_CR::divTau(volVectorField& U) const
}
void FENE_CR::correct()
void Foam::FENE_CR::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
((L2_ / lambda_ + tr(tau_)/etaP_) / (L2_ - 3.0) ) * etaP_ * twoD
+ twoSymm( C )
- fvm::Sp( (L2_ / lambda_ + tr(tau_)/etaP_) / (L2_ - 3.0), tau_ )
+ fvm::div(phi(), tau_)
==
((L2_ / lambda_ + tr(tau_)/etaP_)/(L2_ - 3.0))*etaP_*twoD
+ twoSymm(C)
- fvm::Sp((L2_/lambda_ + tr(tau_)/etaP_)/(L2_ - 3), tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,18 @@ License
#include "FENE_P.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(FENE_P, 0);
addToRunTimeSelectionTable(viscoelasticLaw, FENE_P, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(FENE_P, 0);
addToRunTimeSelectionTable(viscoelasticLaw, FENE_P, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
FENE_P::FENE_P
Foam::FENE_P::FENE_P
(
const word& name,
const volVectorField& U,
@ -71,10 +69,9 @@ FENE_P::FENE_P
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> FENE_P::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::FENE_P::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
@ -86,36 +83,35 @@ tmp<fvVectorMatrix> FENE_P::divTau(volVectorField& U) const
}
void FENE_P::correct()
void Foam::FENE_P::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
( 1 / lambda_ / (1 - 3/L2_) ) * etaP_ * twoD
+ twoSymm( C )
- fvm::Sp( 1 / lambda_ + ( 3 / lambda_ / (1 - 3/L2_) + tr(tau_)/etaP_ ) / (L2_), tau_ )
+ fvm::div(phi(), tau_)
==
(1/lambda_/(1 - 3/L2_))*etaP_*twoD
+ twoSymm(C)
- fvm::Sp
(
1/lambda_ + (3/lambda_/(1 - 3/L2_) + tr(tau_)/etaP_)/(L2_),
tau_
)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,17 @@ License
#include "Feta_PTT.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(Feta_PTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Feta_PTT, dictionary);
defineTypeNameAndDebug(Feta_PTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Feta_PTT, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
Feta_PTT::Feta_PTT
Foam::Feta_PTT::Feta_PTT
(
const word& name,
const volVectorField& U,
@ -80,7 +77,11 @@ Feta_PTT::Feta_PTT
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
etaP_/( Foam::pow(scalar(1) + A_*Foam::pow(0.5*( Foam::sqr(tr(tau_)) - tr(tau_ & tau_) ) * Foam::sqr(lambda_) / Foam::sqr(etaP_), a_), b_) )
etaP_/
(
Foam::pow(scalar(1) + A_*Foam::pow(0.5*( Foam::sqr(tr(tau_))
- tr(tau_ & tau_))*Foam::sqr(lambda_)/Foam::sqr(etaP_), a_), b_)
)
),
lambdaEff_
(
@ -99,10 +100,10 @@ Feta_PTT::Feta_PTT
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> Feta_PTT::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::Feta_PTT::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_; // need to be equal to old time step (a constant)
// Need to be equal to old time step (a constant)
dimensionedScalar etaPEff = etaP_;
return
(
@ -110,46 +111,45 @@ tmp<fvVectorMatrix> Feta_PTT::divTau(volVectorField& U) const
- fvc::laplacian(etaPEff/rho_, U, "laplacian(etaPEff,U)")
+ fvm::laplacian( (etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
);
}
void Feta_PTT::correct()
void Foam::Feta_PTT::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// etaP effective
etaPEff_ = etaP_/( Foam::pow(scalar(1) + A_*Foam::pow(0.5*( Foam::sqr(tr(tau_)) - tr(tau_ & tau_) ) * Foam::sqr(lambda_) / Foam::sqr(etaP_), a_), b_) );
etaPEff_ = etaP_/
(
Foam::pow(scalar(1) + A_*Foam::pow(0.5*( Foam::sqr(tr(tau_))
- tr(tau_ & tau_)) * Foam::sqr(lambda_)/Foam::sqr(etaP_), a_), b_)
);
// lambda effective
lambdaEff_ = (lambda_ / (scalar(1) + epsilon_*lambda_*tr(tau_) / etaP_) );
lambdaEff_ = lambda_/(scalar(1) + epsilon_*lambda_*tr(tau_)/etaP_);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaPEff_ / lambdaEff_ * twoD
+ twoSymm( C )
- zeta_ / 2 * ( (tau_ & twoD) + (twoD & tau_) )
- fvm::Sp( epsilon_ / etaPEff_ * tr(tau_) + 1/lambdaEff_, tau_ )
+ fvm::div(phi(), tau_)
==
etaPEff_/lambdaEff_*twoD
+ twoSymm(C)
- zeta_/2*((tau_ & twoD) + (twoD & tau_))
- fvm::Sp(epsilon_/etaPEff_*tr(tau_) + 1/lambdaEff_, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -89,11 +89,13 @@ class Feta_PTT
dimensionedScalar b_;
//- Effective zero shear rate polymer viscosity and relaxation time
//- Effective zero shear rate polymer viscosity
volScalarField etaPEff_;
//- Relaxation time
volScalarField lambdaEff_;
// Private Member Functions
//- Disallow default bitwise copy construct

View file

@ -27,20 +27,18 @@ License
#include "Giesekus.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(Giesekus, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Giesekus, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(Giesekus, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Giesekus, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
Giesekus::Giesekus
Foam::Giesekus::Giesekus
(
const word& name,
const volVectorField& U,
@ -71,7 +69,7 @@ Giesekus::Giesekus
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> Giesekus::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::Giesekus::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
@ -84,7 +82,7 @@ tmp<fvVectorMatrix> Giesekus::divTau(volVectorField& U) const
}
void Giesekus::correct()
void Foam::Giesekus::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad(U());
@ -96,25 +94,21 @@ void Giesekus::correct()
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambda_ * twoD
+ twoSymm( C )
- (alpha_ / etaP_) * ( tau_ & tau_)
- fvm::Sp(1/lambda_, tau_ )
+ fvm::div(phi(), tau_)
==
etaP_/lambda_*twoD
+ twoSymm(C)
- (alpha_/etaP_)*(tau_ & tau_)
- fvm::Sp(1/lambda_, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,17 @@ License
#include "LPTT.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(LPTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, LPTT, dictionary);
defineTypeNameAndDebug(LPTT, 0);
addToRunTimeSelectionTable(viscoelasticLaw, LPTT, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
LPTT::LPTT
Foam::LPTT::LPTT
(
const word& name,
const volVectorField& U,
@ -72,11 +69,10 @@ LPTT::LPTT
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> LPTT::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::LPTT::divTau(volVectorField& U) const
{
// dimensionedScalar etaPEff = (1 + 1/epsilon_)*etaP_;
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
@ -88,37 +84,32 @@ tmp<fvVectorMatrix> LPTT::divTau(volVectorField& U) const
}
void LPTT::correct()
void Foam::LPTT::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambda_ * twoD
+ twoSymm( C )
- zeta_ / 2 * ( (tau_ & twoD) + (twoD & tau_) )
- fvm::Sp( epsilon_ / etaP_ * tr(tau_) + 1/lambda_, tau_ )
+ fvm::div(phi(), tau_)
==
etaP_/lambda_*twoD
+ twoSymm(C)
- zeta_/2*((tau_ & twoD) + (twoD & tau_))
- fvm::Sp(epsilon_/etaP_*tr(tau_) + 1/lambda_, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,17 @@ License
#include "Leonov.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(Leonov, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Leonov, dictionary);
defineTypeNameAndDebug(Leonov, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Leonov, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
Leonov::Leonov
Foam::Leonov::Leonov
(
const word& name,
const volVectorField& U,
@ -102,10 +99,9 @@ Leonov::Leonov
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> Leonov::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::Leonov::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
@ -116,40 +112,43 @@ tmp<fvVectorMatrix> Leonov::divTau(volVectorField& U) const
}
void Leonov::correct()
void Foam::Leonov::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = sigma_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> sigmaEqn
fvSymmTensorMatrix sigmaEqn
(
fvm::ddt(sigma_)
+ fvm::div(phi(), sigma_)
==
twoSymm( C )
- 1/etaP_/2*( (sigma_ & sigma_) - Foam::pow( (etaP_/lambda_),2)*I_ )
+ fvm::Sp(1/etaP_/6*( tr(sigma_) - Foam::pow(etaP_/lambda_,2) * tr(inv(sigma_)) ), sigma_)
+ fvm::div(phi(), sigma_)
==
twoSymm(C)
- 1/etaP_/2*((sigma_ & sigma_) - Foam::pow((etaP_/lambda_), 2)*I_)
+ fvm::Sp
(
1/etaP_/6*
(
tr(sigma_)
- Foam::pow(etaP_/lambda_,2) * tr(inv(sigma_))
),
sigma_
)
);
sigmaEqn().relax();
solve(sigmaEqn);
sigmaEqn.relax();
sigmaEqn.solve();
// Viscoelastic stress
tau_ = sigma_ - etaP_/lambda_ * I_;
tau_ = sigma_ - etaP_/lambda_*I_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,18 @@ License
#include "Maxwell.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(Maxwell, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Maxwell, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(Maxwell, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Maxwell, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
Maxwell::Maxwell
Foam::Maxwell::Maxwell
(
const word& name,
const volVectorField& U,
@ -70,10 +68,9 @@ Maxwell::Maxwell
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> Maxwell::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::Maxwell::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
@ -85,32 +82,26 @@ tmp<fvVectorMatrix> Maxwell::divTau(volVectorField& U) const
}
void Maxwell::correct()
void Foam::Maxwell::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
==
etaP_ / lambda_ * twoD
- fvm::Sp( 1/lambda_, tau_ )
==
etaP_/lambda_*twoD
- fvm::Sp( 1/lambda_, tau_ )
);
// tauEqn().relax(); // to see
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,18 @@ License
#include "Oldroyd_B.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(Oldroyd_B, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Oldroyd_B, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(Oldroyd_B, 0);
addToRunTimeSelectionTable(viscoelasticLaw, Oldroyd_B, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
Oldroyd_B::Oldroyd_B
Foam::Oldroyd_B::Oldroyd_B
(
const word& name,
const volVectorField& U,
@ -70,10 +68,10 @@ Oldroyd_B::Oldroyd_B
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> Oldroyd_B::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix>
Foam::Oldroyd_B::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
dimensionedScalar etaPEff = etaP_;
return
(
@ -81,40 +79,34 @@ tmp<fvVectorMatrix> Oldroyd_B::divTau(volVectorField& U) const
- fvc::laplacian(etaPEff/rho_, U, "laplacian(etaPEff,U)")
+ fvm::laplacian( (etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
);
}
void Oldroyd_B::correct()
void Foam::Oldroyd_B::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambda_ * twoD
+ twoSymm( C )
- fvm::Sp( 1/lambda_, tau_ )
+ fvm::div(phi(), tau_)
==
etaP_/lambda_*twoD
+ twoSymm(C)
- fvm::Sp(1/lambda_, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -24,23 +24,20 @@ License
\*---------------------------------------------------------------------------*/
#include "PP.H"
#include "S_MDCPP.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(PP, 0);
addToRunTimeSelectionTable(viscoelasticLaw, PP, dictionary);
namespace Foam
{
defineTypeNameAndDebug(S_MDCPP, 0);
addToRunTimeSelectionTable(viscoelasticLaw, S_MDCPP, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
PP::PP
Foam::S_MDCPP::S_MDCPP
(
const word& name,
const volVectorField& U,
@ -49,30 +46,6 @@ PP::PP
)
:
viscoelasticLaw(name, U, phi),
S_
(
IOobject
(
"S" + name,
U.time().timeName(),
U.mesh(),
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
),
Lambda_
(
IOobject
(
"Lambda" + name,
U.time().timeName(),
U.mesh(),
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh()
),
tau_
(
IOobject
@ -80,16 +53,10 @@ PP::PP
"tau" + name,
U.time().timeName(),
U.mesh(),
IOobject::NO_READ,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
dimensionSet(1, -1, -2, 0, 0, 0, 0),
symmTensor::zero
)
U.mesh()
),
I_
(
@ -108,6 +75,7 @@ PP::PP
rho_(dict.lookup("rho")),
etaS_(dict.lookup("etaS")),
etaP_(dict.lookup("etaP")),
zeta_(dict.lookup("zeta")),
lambdaOb_(dict.lookup("lambdaOb")),
lambdaOs_(dict.lookup("lambdaOs")),
q_(dict.lookup("q"))
@ -116,9 +84,8 @@ PP::PP
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> PP::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::S_MDCPP::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
return
@ -131,68 +98,46 @@ tmp<fvVectorMatrix> PP::divTau(volVectorField& U) const
}
void PP::correct()
void Foam::S_MDCPP::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = S_ & L;
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Lambda (Backbone stretch)
volScalarField Lambda =
Foam::sqrt(1 + tr(tau_)*lambdaOb_*(1 - zeta_)/3/etaP_);
// Evolution of orientation
tmp<fvSymmTensorMatrix> SEqn
// Auxiliary field
volScalarField aux = Foam::exp( 2/q_*(Lambda - 1));
// Extra function
volScalarField fTau =
aux*(2*lambdaOb_/lambdaOs_*(1 - 1/Lambda) + 1/Foam::sqr(Lambda));
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(S_)
+ fvm::div(phi(), S_)
==
twoSymm( C )
- fvm::Sp( 1/lambdaOb_, S_ )
+ 1/3/lambdaOb_*I_
);
SEqn().relax();
solve(SEqn);
// Evolution of the backbone stretch
tmp<fvScalarMatrix> LambdaEqn
(
fvm::ddt(Lambda_)
+ fvm::div(phi(), Lambda_)
==
fvm::Sp( (twoD && (S_/tr(S_)) ) / 2 , Lambda_ )
- fvm::Sp( Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_ , Lambda_ )
+ Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_
);
LambdaEqn().relax();
solve(LambdaEqn);
// Pom Pom condition:
Lambda_.max
(
dimensionedScalar
(
"zero",
Lambda_.dimensions(),
scalar( q_.value() )
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_/lambdaOb_*twoD
+ twoSymm(C)
- zeta_/2*((tau_ & twoD) + (twoD & tau_))
- fvm::Sp(1/lambdaOb_*fTau, tau_)
- (
1/lambdaOb_*( etaP_/lambdaOb_/(1 - zeta_)*(fTau - aux)*I_)
)
);
// Viscoelastic stress
tau_ = etaP_/lambdaOb_ * (3*Foam::sqr(Lambda_)*S_/tr(S_) - I_);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -23,22 +23,23 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
PP
S_MDCPP
Description
Pom-Pom (PP) non linear viscoelastic fluid model.
(McLeish,T.C.B., Larson R.G., J. Rheol. 42, 81, 1998)
S-MDCPP non linear viscoelastic fluid model:
Wei Wang, Xikui Li and Xianhong Han,
Journal of Non-Newtonian Fluid Mechanics, 165,1480-1493, 2010.
Author
Jovani L. Favero. All rights reserved
SourceFiles
PP.C
S_MDCPP.C
\*---------------------------------------------------------------------------*/
#ifndef PP_H
#define PP_H
#ifndef S_MDCPP_H
#define S_MDCPP_H
#include "viscoelasticLaw.H"
@ -48,32 +49,25 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class PP Declaration
Class S_MDCPP Declaration
\*---------------------------------------------------------------------------*/
class PP
class S_MDCPP
:
public viscoelasticLaw
{
// Private data
//- Evolution of orientation
volSymmTensorField S_;
//- Evolution of the backbone stretch
volScalarField Lambda_;
//- Transported viscoelastic stress
//- Transported viscoelastic stress
volSymmTensorField tau_;
//- Identity tensor
dimensionedSymmTensor I_;
// Model constants
//- Density
dimensionedScalar rho_;
dimensionedScalar rho_;
//- Solvent viscosity
dimensionedScalar etaS_;
@ -81,6 +75,9 @@ class PP
//- Zero shear rate polymer viscosity
dimensionedScalar etaP_;
//- Material parameter, defining the amount of anisotropy
dimensionedScalar zeta_;
//- Relaxation time of the backbone tube orientation
dimensionedScalar lambdaOb_;
@ -94,21 +91,21 @@ class PP
// Private Member Functions
//- Disallow default bitwise copy construct
PP(const PP&);
S_MDCPP(const S_MDCPP&);
//- Disallow default bitwise assignment
void operator=(const PP&);
void operator=(const S_MDCPP&);
public:
//- Runtime type information
TypeName("PP");
TypeName("S-MDCPP");
// Constructors
//- Construct from components
PP
S_MDCPP
(
const word& name,
const volVectorField& U,
@ -119,7 +116,7 @@ public:
// Destructor
virtual ~PP()
virtual ~S_MDCPP()
{}

View file

@ -24,23 +24,27 @@ License
\*---------------------------------------------------------------------------*/
#include "White_Metzner_CY.H"
#include "WhiteMetznerCarreauYasuda.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(WhiteMetznerCarreauYasuda, 0);
addToRunTimeSelectionTable
(
viscoelasticLaw,
WhiteMetznerCarreauYasuda,
dictionary
);
}
defineTypeNameAndDebug(White_Metzner_CY, 0);
addToRunTimeSelectionTable(viscoelasticLaw, White_Metzner_CY, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
White_Metzner_CY::White_Metzner_CY
Foam::WhiteMetznerCarreauYasuda::WhiteMetznerCarreauYasuda
(
const word& name,
const volVectorField& U,
@ -76,10 +80,11 @@ White_Metzner_CY::White_Metzner_CY
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> White_Metzner_CY::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix>
Foam::WhiteMetznerCarreauYasuda::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_; // need to be equal to old time step (a constant)
// Need to be equal to old time step (a constant)
dimensionedScalar etaPEff = etaP_;
return
(
@ -87,45 +92,43 @@ tmp<fvVectorMatrix> White_Metzner_CY::divTau(volVectorField& U) const
- fvc::laplacian(etaPEff/rho_, U, "laplacian(etaPEff,U)")
+ fvm::laplacian( (etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
);
}
void White_Metzner_CY::correct()
void Foam::WhiteMetznerCarreauYasuda::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Effective viscosity and relaxation time
volScalarField etaPValue = etaP_ * Foam::pow( 1 + Foam::pow( K_* sqrt(2.0)*mag(symm(L)),a_), (m_- 1)/a_ );
volScalarField lambdaValue = lambda_ * Foam::pow( 1 + Foam::pow( L_* sqrt(2.0)*mag(symm(L)),b_), (n_- 1)/b_ );
volScalarField etaPValue = etaP_*
Foam::pow(1 + Foam::pow(K_* sqrt(2.0)*mag(symm(L)),a_), (m_- 1)/a_);
volScalarField lambdaValue = lambda_*
Foam::pow(1 + Foam::pow( L_* sqrt(2.0)*mag(symm(L)),b_), (n_- 1)/b_);
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaPValue / lambdaValue * twoD
+ twoSymm( C )
- fvm::Sp( 1/lambdaValue, tau_ )
+ fvm::div(phi(), tau_)
==
etaPValue/lambdaValue*twoD
+ twoSymm(C)
- fvm::Sp(1/lambdaValue, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
White_Metzner_CY
WhiteMetznerCarreauYasuda
Description
White-Metzner Carreau-Yasuda Law non linear viscoelastic fluid model
@ -34,12 +34,12 @@ Author
Jovani L. Favero. All rights reserved
SourceFiles
White_Metzner_CY.C
WhiteMetznerCarreauYasuda.C
\*---------------------------------------------------------------------------*/
#ifndef White_Metzner_CY_H
#define White_Metzner_CY_H
#ifndef WhiteMetznerCarreauYasuda_H
#define WhiteMetznerCarreauYasuda_H
#include "viscoelasticLaw.H"
@ -49,10 +49,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class White_Metzner_CY Declaration
Class WhiteMetznerCarreauYasuda Declaration
\*---------------------------------------------------------------------------*/
class White_Metzner_CY
class WhiteMetznerCarreauYasuda
:
public viscoelasticLaw
{
@ -98,21 +98,21 @@ class White_Metzner_CY
// Private Member Functions
//- Disallow default bitwise copy construct
White_Metzner_CY(const White_Metzner_CY&);
WhiteMetznerCarreauYasuda(const WhiteMetznerCarreauYasuda&);
//- Disallow default bitwise assignment
void operator=(const White_Metzner_CY&);
void operator=(const WhiteMetznerCarreauYasuda&);
public:
//- Runtime type information
TypeName("White-Metzner_Carreau-Yasuda");
TypeName("WhiteMetznerCarreauYasuda");
// Constructors
//- Construct from components
White_Metzner_CY
WhiteMetznerCarreauYasuda
(
const word& name,
const volVectorField& U,
@ -123,7 +123,7 @@ public:
// Destructor
virtual ~White_Metzner_CY()
virtual ~WhiteMetznerCarreauYasuda()
{}

View file

@ -24,23 +24,21 @@ License
\*---------------------------------------------------------------------------*/
#include "White_Metzner_CM.H"
#include "WhiteMetznerCross.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(White_Metzner_CM, 0);
addToRunTimeSelectionTable(viscoelasticLaw, White_Metzner_CM, dictionary);
namespace Foam
{
defineTypeNameAndDebug(WhiteMetznerCross, 0);
addToRunTimeSelectionTable(viscoelasticLaw, WhiteMetznerCross, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
White_Metzner_CM::White_Metzner_CM
Foam::WhiteMetznerCross::WhiteMetznerCross
(
const word& name,
const volVectorField& U,
@ -74,10 +72,11 @@ White_Metzner_CM::White_Metzner_CM
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> White_Metzner_CM::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix>
Foam::WhiteMetznerCross::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_; // need to be equal to old time step (a constant)
// Need to be equal to old time step (a constant)
dimensionedScalar etaPEff = etaP_;
return
(
@ -89,40 +88,38 @@ tmp<fvVectorMatrix> White_Metzner_CM::divTau(volVectorField& U) const
}
void White_Metzner_CM::correct()
void Foam::WhiteMetznerCross::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Effective viscosity and relaxation time
volScalarField etaPValue = etaP_ / (1 + Foam::pow(K_* sqrt(2.0)*mag(symm(L)), (1 - m_)) );
volScalarField lambdaValue = lambda_ / (1 + Foam::pow(L_ * sqrt(2.0)*mag(symm(L)), (1 - n_)) );
volScalarField etaPValue = etaP_/
(1 + Foam::pow(K_* sqrt(2.0)*mag(symm(L)), (1 - m_)));
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
volScalarField lambdaValue = lambda_/
(1 + Foam::pow(L_ * sqrt(2.0)*mag(symm(L)), (1 - n_)));
// Stress transport equation
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaPValue / lambdaValue * twoD
+ twoSymm( C )
- fvm::Sp( 1/lambdaValue, tau_ )
+ fvm::div(phi(), tau_)
==
etaPValue/lambdaValue*twoD
+ twoSymm(C)
- fvm::Sp(1/lambdaValue, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
White_Metzner_CM
WhiteMetznerCross
Description
White-Metzner Power Law non linear viscoelastic fluid model
@ -34,12 +34,12 @@ Author
Jovani L. Favero. All rights reserved
SourceFiles
White_Metzner_CM.C
WhiteMetznerCross.C
\*---------------------------------------------------------------------------*/
#ifndef White_Metzner_CM_H
#define White_Metzner_CM_H
#ifndef WhiteMetznerCross_H
#define WhiteMetznerCross_H
#include "viscoelasticLaw.H"
@ -49,10 +49,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class White_Metzner_CM Declaration
Class WhiteMetznerCross Declaration
\*---------------------------------------------------------------------------*/
class White_Metzner_CM
class WhiteMetznerCross
:
public viscoelasticLaw
{
@ -92,21 +92,21 @@ class White_Metzner_CM
// Private Member Functions
//- Disallow default bitwise copy construct
White_Metzner_CM(const White_Metzner_CM&);
WhiteMetznerCross(const WhiteMetznerCross&);
//- Disallow default bitwise assignment
void operator=(const White_Metzner_CM&);
void operator=(const WhiteMetznerCross&);
public:
//- Runtime type information
TypeName("White-Metzner_Cross-Model");
TypeName("WhiteMetznerCross");
// Constructors
//- Construct from components
White_Metzner_CM
WhiteMetznerCross
(
const word& name,
const volVectorField& U,
@ -117,7 +117,7 @@ public:
// Destructor
virtual ~White_Metzner_CM()
virtual ~WhiteMetznerCross()
{}

View file

@ -24,23 +24,25 @@ License
\*---------------------------------------------------------------------------*/
#include "White_Metzner_Larson.H"
#include "WhiteMetznerLarson.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(White_Metzner_Larson, 0);
addToRunTimeSelectionTable(viscoelasticLaw, White_Metzner_Larson, dictionary);
namespace Foam
{
defineTypeNameAndDebug(WhiteMetznerLarson, 0);
addToRunTimeSelectionTable
(
viscoelasticLaw,
WhiteMetznerLarson,
dictionary
);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
White_Metzner_Larson::White_Metzner_Larson
Foam::WhiteMetznerLarson::WhiteMetznerLarson
(
const word& name,
const volVectorField& U,
@ -71,10 +73,13 @@ White_Metzner_Larson::White_Metzner_Larson
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> White_Metzner_Larson::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::WhiteMetznerLarson::divTau
(
volVectorField& U
) const
{
dimensionedScalar etaPEff = etaP_; // need to be equal to old time step (a constant)
// Meed to be equal to old time step (a constant)
dimensionedScalar etaPEff = etaP_;
return
(
@ -82,13 +87,11 @@ tmp<fvVectorMatrix> White_Metzner_Larson::divTau(volVectorField& U) const
- fvc::laplacian(etaPEff/rho_, U, "laplacian(etaPEff,U)")
+ fvm::laplacian( (etaPEff + etaS_)/rho_, U, "laplacian(etaPEff+etaS,U)")
);
}
void White_Metzner_Larson::correct()
void Foam::WhiteMetznerLarson::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
@ -99,23 +102,19 @@ void White_Metzner_Larson::correct()
volSymmTensorField twoD = twoSymm( L );
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambda_ * twoD
+ twoSymm( C )
- fvm::Sp( (1 + a_*lambda_* sqrt(2.0)*mag(symm(L)) )/lambda_, tau_ )
+ fvm::div(phi(), tau_)
==
etaP_/lambda_*twoD
+ twoSymm(C)
- fvm::Sp((1 + a_*lambda_* sqrt(2.0)*mag(symm(L)) )/lambda_, tau_)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
White_Metzner_Larson
WhiteMetznerLarson
Description
White-Metzner non linear viscoelastic fluid model (Larson, R. G.,
@ -33,12 +33,12 @@ Author
Jovani L. Favero. All rights reserved
SourceFiles
White_Metzner_Larson.C
WhiteMetznerLarson.C
\*---------------------------------------------------------------------------*/
#ifndef White_Metzner_Larson_H
#define White_Metzner_Larson_H
#ifndef WhiteMetznerLarson_H
#define WhiteMetznerLarson_H
#include "viscoelasticLaw.H"
@ -48,10 +48,10 @@ namespace Foam
{
/*---------------------------------------------------------------------------*\
Class White_Metzner_Larson Declaration
Class WhiteMetznerLarson Declaration
\*---------------------------------------------------------------------------*/
class White_Metzner_Larson
class WhiteMetznerLarson
:
public viscoelasticLaw
{
@ -82,21 +82,21 @@ class White_Metzner_Larson
// Private Member Functions
//- Disallow default bitwise copy construct
White_Metzner_Larson(const White_Metzner_Larson&);
WhiteMetznerLarson(const WhiteMetznerLarson&);
//- Disallow default bitwise assignment
void operator=(const White_Metzner_Larson&);
void operator=(const WhiteMetznerLarson&);
public:
//- Runtime type information
TypeName("White-Metzner_Larson");
TypeName("WhiteMetznerLarson");
// Constructors
//- Construct from components
White_Metzner_Larson
WhiteMetznerLarson
(
const word& name,
const volVectorField& U,
@ -107,7 +107,7 @@ public:
// Destructor
virtual ~White_Metzner_Larson()
virtual ~WhiteMetznerLarson()
{}

View file

@ -27,20 +27,17 @@ License
#include "XPP_DE.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(XPP_DE, 0);
addToRunTimeSelectionTable(viscoelasticLaw, XPP_DE, dictionary);
defineTypeNameAndDebug(XPP_DE, 0);
addToRunTimeSelectionTable(viscoelasticLaw, XPP_DE, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
XPP_DE::XPP_DE
Foam::XPP_DE::XPP_DE
(
const word& name,
const volVectorField& U,
@ -117,9 +114,8 @@ XPP_DE::XPP_DE
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> XPP_DE::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::XPP_DE::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
return
@ -132,29 +128,33 @@ tmp<fvVectorMatrix> XPP_DE::divTau(volVectorField& U) const
}
void XPP_DE::correct()
void Foam::XPP_DE::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = S_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Evolution of orientation
// Evolution of orientation
tmp<fvSymmTensorMatrix> SEqn
(
fvm::ddt(S_)
+ fvm::div(phi(), S_)
==
twoSymm( C )
- fvm::Sp( (twoD && S_) , S_ )
- fvm::Sp( 1/lambdaOb_/Foam::sqr(Lambda_)*(1 - alpha_ - 3*alpha_*Foam::pow(Lambda_, 4)*tr(S_ & S_) ), S_ )
- 1/lambdaOb_/Foam::sqr(Lambda_)*( 3*alpha_*Foam::pow(Lambda_, 4)*(S_ & S_) - (1 - alpha_)/3*I_ )
+ fvm::div(phi(), S_)
==
twoSymm(C)
- fvm::Sp((twoD && S_) , S_)
- fvm::Sp
(
1/lambdaOb_/Foam::sqr(Lambda_)*
(1 - alpha_ - 3*alpha_*Foam::pow(Lambda_, 4)*tr(S_ & S_)),
S_
)
- 1/lambdaOb_/Foam::sqr(Lambda_)*
(3*alpha_*Foam::pow(Lambda_, 4)*(S_ & S_) - (1 - alpha_)/3*I_)
);
SEqn().relax();
@ -162,28 +162,22 @@ void XPP_DE::correct()
// Evolution of the backbone stretch
tmp<fvScalarMatrix> LambdaEqn
fvScalarMatrix LambdaEqn
(
fvm::ddt(Lambda_)
+ fvm::div(phi(), Lambda_)
==
fvm::Sp( (twoD && S_) / 2 , Lambda_ )
- fvm::Sp( Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_ , Lambda_ )
+ Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_
+ fvm::div(phi(), Lambda_)
==
fvm::Sp((twoD && S_)/2 , Lambda_)
- fvm::Sp(Foam::exp( 2/q_*(Lambda_ - 1))/lambdaOs_ , Lambda_)
+ Foam::exp(2/q_*(Lambda_ - 1))/lambdaOs_
);
LambdaEqn().relax();
solve(LambdaEqn);
LambdaEqn.relax();
LambdaEqn.solve();
// Viscoelastic stress
tau_ = etaP_/lambdaOb_ * (3*Foam::sqr(Lambda_)*S_ - I_);
tau_ = etaP_/lambdaOb_*(3*Foam::sqr(Lambda_)*S_ - I_);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,19 +27,17 @@ License
#include "XPP_SE.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(XPP_SE, 0);
addToRunTimeSelectionTable(viscoelasticLaw, XPP_SE, dictionary);
defineTypeNameAndDebug(XPP_SE, 0);
addToRunTimeSelectionTable(viscoelasticLaw, XPP_SE, dictionary);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
XPP_SE::XPP_SE
Foam::XPP_SE::XPP_SE
(
const word& name,
const volVectorField& U,
@ -86,7 +84,7 @@ XPP_SE::XPP_SE
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> XPP_SE::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix> Foam::XPP_SE::divTau(volVectorField& U) const
{
dimensionedScalar etaPEff = etaP_;
@ -101,47 +99,50 @@ tmp<fvVectorMatrix> XPP_SE::divTau(volVectorField& U) const
}
void XPP_SE::correct()
void Foam::XPP_SE::correct()
{
// Velocity gradient tensor
volTensorField L = fvc::grad( U() );
volTensorField L = fvc::grad(U());
// Convected derivate term
volTensorField C = tau_ & L;
// Twice the rate of deformation tensor
volSymmTensorField twoD = twoSymm( L );
volSymmTensorField twoD = twoSymm(L);
// Lambda (Backbone stretch)
volScalarField Lambda = Foam::sqrt( 1 + tr(tau_)*lambdaOb_/3/etaP_ );
volScalarField Lambda = Foam::sqrt(1 + tr(tau_)*lambdaOb_/3/etaP_);
// lambdaS (stretch relaxation time)
volScalarField lambdaS = lambdaOs_*Foam::exp( -2/q_*(Lambda - 1));
volScalarField lambdaS = lambdaOs_*Foam::exp(-2/q_*(Lambda - 1));
// Extra function
volScalarField fTau = 2*lambdaOb_/lambdaS*(1 - 1/Lambda) + 1/Foam::sqr(Lambda)*(1 - alpha_*tr(tau_ & tau_)/3/Foam::sqr(etaP_/lambdaOb_) );
volScalarField fTau = 2*lambdaOb_/lambdaS*(1 - 1/Lambda)
+ 1/Foam::sqr(Lambda)*
(1 - alpha_*tr(tau_ & tau_)/3/Foam::sqr(etaP_/lambdaOb_));
// Stress transport equation
tmp<fvSymmTensorMatrix> tauEqn
fvSymmTensorMatrix tauEqn
(
fvm::ddt(tau_)
+ fvm::div(phi(), tau_)
==
etaP_ / lambdaOb_ * twoD
+ twoSymm( C )
- fvm::Sp(1/lambdaOb_*fTau, tau_)
- (
1/lambdaOb_*( alpha_*lambdaOb_/etaP_*(tau_ & tau_) + etaP_/lambdaOb_*(fTau -1)*I_ ) )
+ fvm::div(phi(), tau_)
==
etaP_/lambdaOb_*twoD
+ twoSymm(C)
- fvm::Sp(1/lambdaOb_*fTau, tau_)
- (
1/lambdaOb_*
(
alpha_*lambdaOb_/etaP_*(tau_ & tau_)
+ etaP_/lambdaOb_*(fTau - 1)*I_
)
)
);
tauEqn().relax();
solve(tauEqn);
tauEqn.relax();
tauEqn.solve();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -27,20 +27,18 @@ License
#include "multiMode.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(multiMode, 0);
addToRunTimeSelectionTable(viscoelasticLaw, multiMode, dictionary);
}
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
defineTypeNameAndDebug(multiMode, 0);
addToRunTimeSelectionTable(viscoelasticLaw, multiMode, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// from components
multiMode::multiMode
Foam::multiMode::multiMode
(
const word& name,
const volVectorField& U,
@ -67,24 +65,6 @@ multiMode::multiMode
symmTensor::zero
)
),
nulo_
(
IOobject
(
"nulo",
U.time().timeName(),
U.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
dimensionSet(1, -1, -2, 0, 0, 0, 0),
symmTensor::zero
)
),
models_()
{
PtrList<entry> modelEntries(dict.lookup("models"));
@ -109,7 +89,8 @@ multiMode::multiMode
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
tmp<fvVectorMatrix> multiMode::divTau(volVectorField& U) const
Foam::tmp<Foam::fvVectorMatrix>
Foam::multiMode::divTau(volVectorField& U) const
{
tmp<fvVectorMatrix> divMatrix = models_[0].divTau(U);
@ -122,10 +103,9 @@ tmp<fvVectorMatrix> multiMode::divTau(volVectorField& U) const
}
tmp<volSymmTensorField> multiMode::tau() const
Foam::tmp<Foam::volSymmTensorField> Foam::multiMode::tau() const
{
tau_ = nulo_;
tau_ *= 0;
for (label i = 0; i < models_.size(); i++)
{
@ -133,11 +113,10 @@ tmp<volSymmTensorField> multiMode::tau() const
}
return tau_;
}
void multiMode::correct()
void Foam::multiMode::correct()
{
forAll (models_, i)
{
@ -146,12 +125,7 @@ void multiMode::correct()
}
tau();
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -59,9 +59,6 @@ class multiMode
//- Transported viscoelastic stress
mutable volSymmTensorField tau_;
//- A null (zero) symmetric tensor
volSymmTensorField nulo_;
//- List of models
PtrList<viscoelasticLaw> models_;

View file

@ -29,12 +29,7 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
autoPtr<viscoelasticLaw> viscoelasticLaw::New
Foam::autoPtr<Foam::viscoelasticLaw> Foam::viscoelasticLaw::New
(
const word& name,
const volVectorField& U,
@ -66,8 +61,4 @@ autoPtr<viscoelasticLaw> viscoelasticLaw::New
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -30,15 +30,14 @@ License
namespace Foam
{
defineTypeNameAndDebug(viscoelasticLaw, 0);
defineRunTimeSelectionTable(viscoelasticLaw, dictionary);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
defineTypeNameAndDebug(viscoelasticLaw, 0);
defineRunTimeSelectionTable(viscoelasticLaw, dictionary);
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
viscoelasticLaw::viscoelasticLaw
Foam::viscoelasticLaw::viscoelasticLaw
(
const word& name,
const volVectorField& U,
@ -51,8 +50,4 @@ viscoelasticLaw::viscoelasticLaw
{}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -1,60 +1,56 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cd PTT-Exponential
cleanCase
./Allclean
cd ..
cd DCPP
cleanCase
./Allclean
cd ..
cd Giesekus
cleanCase
./Allclean
cd ..
cd FENE-CR
rm -rf constant/polyMesh/sets > /dev/null 2>&1
cleanCase
./Allclean
cd ..
cd FENE-P
cleanCase
./Allclean
cd ..
cd Feta-PTT
cleanCase
./Allclean
cd ..
cd Leonov
cleanCase
./Allclean
cd ..
cd Oldroyd-B
cleanCase
./Allclean
cd ..
cd PP
cleanCase
cd S-MDCPP
./Allclean
cd ..
cd PTT-Linear
cleanCase
./Allclean
cd ..
cd White-Metzner/Carreau-Yasuda
cleanCase
./Allclean
cd ../..
cd XPP_DE
cleanCase
./Allclean
cd ..
cd XPP_SE
cleanCase
./Allclean
cd ..

View file

@ -1,39 +1,55 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
application="viscoelasticFluidFoam"
cd FENE-CR
runApplication gmshToFoam mesh.msh
cp boundary constant/polyMesh/boundary
echo "FENE-CR: execution time ~ 320 s in a Core 2 Duo 2.0 Ghz processor"
runApplication $application
cd ..
cd PTT-Exponential
runApplication blockMesh
echo "PTT-Exponential: execution time ~ 4250 s in a Core 2 Duo 2.0 Ghz processor"
runApplication $application
./Allrun
cd ..
cd DCPP
runApplication blockMesh
echo "DCPP: execution time ~ 41830 s in a Core 2 Duo 2.0 Ghz processor"
runApplication $application
runApplication PSD
runApplication sample
./Allrun
cd ..
cd Giesekus
./Allrun
runApplication blockMesh
echo "Giesekus: execution time ~ 91195 s in a Core 2 Duo 2.0 Ghz processor"
runApplication $application
runApplication stressDifferences
cd ..
cd FENE-CR
./Allrun
cd ..
cd FENE-P
./Allrun
cd ..
cd Feta-PTT
./Allrun
cd ..
cd Leonov
./Allrun
cd ..
cd Oldroyd-B
./Allrun
cd ..
cd S-MDCPP
./Allrun
cd ..
cd PTT-Linear
./Allrun
cd ..
cd White-Metzner/Carreau-Yasuda
./Allrun
cd ../..
cd XPP_DE
./Allrun
cd ..
cd XPP_SE
./Allrun
cd ..

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volScalarField;
object Lambdafirst;
version 2.0;
format ascii;
class volScalarField;
object Lambdafirst;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volScalarField;
object Lambdafourth;
version 2.0;
format ascii;
class volScalarField;
object Lambdafourth;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volScalarField;
object Lambdasecond;
version 2.0;
format ascii;
class volScalarField;
object Lambdasecond;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volScalarField;
object Lambdathird;
version 2.0;
format ascii;
class volScalarField;
object Lambdathird;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volSymmTensorField;
object Sfirst;
version 2.0;
format ascii;
class volSymmTensorField;
object Sfirst;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volSymmTensorField;
object Sfourth;
version 2.0;
format ascii;
class volSymmTensorField;
object Sfourth;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volSymmTensorField;
object Ssecond;
version 2.0;
format ascii;
class volSymmTensorField;
object Ssecond;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volSymmTensorField;
object Sthird;
version 2.0;
format ascii;
class volSymmTensorField;
object Sthird;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volVectorField;
object U;
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
@ -52,5 +44,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volScalarField;
object p;
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "DCPP";
instance "0";
local "";
class volSymmTensorField;
object tau;
version 2.0;
format ascii;
class volSymmTensorField;
object tau;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -0,0 +1,9 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
rm -R -f sets
echo "done!"

View file

@ -0,0 +1,22 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name
application=`getApplication`
echo "Running blockMesh application"
runApplication blockMesh
echo "Running viscoelasticFluidFoam solver"
echo "DCPP model: execution time ~ 41830 s in a Core 2 Duo 2.0 Ghz processor"
runApplication $application
echo "Running PSD application"
runApplication PSD
echo "Running sample application"
runApplication sample
echo "done!"

View file

@ -0,0 +1,35 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
#
#+TITLE: *DCPP viscoelastic constitutive model README file for version 1.6-ext*
#+AUTHOR: Jovani
#+DATE: 05 October 2010
* This is a simulation case for a viscoelastic fluid described by the Double
Convected Pom-Pom constitutive model (DCPP).
The geometry was the 4:1 plane contraction. This is a well studied
geometry in viscoelastic fluid flow research.
More details about the model or parameters used, as also informations
about the geometry, can be found at:
*** CLEMEUR, N.; RUTGERS, R. P. G.; DEBBAUT, B. Numerical simulation of abrupt
contraction flows using the double convected pom-pom model. Journal of Non-
Newtonian Fluid Mechanics, v. 117, n. 2-3, p. 193 209, 2004. ISSN 0377-
0257.
<http://www.sciencedirect.com/science/article/B6TGV-4C47GVS-3/2/d9d170224e2a3ee5f6560b5ec5875662>
* The results for this case using viscoelasticFluidFoam solver can be found at:
*** Journal of Non-Newtonian Fluid Mechanics:
<http://www.sciencedirect.com/science/article/B6TGV-511BYYF-1/2/53b604790dda6f271bb2e82870ba0c2a>

View file

@ -1,28 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "DCPP";
instance "constant";
local "polyMesh";
class dictionary;
object blockMeshDict;
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.001;
vertices
@ -104,5 +95,4 @@ mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -1,9 +1,9 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Revision: exported |
| \\/ M anipulation | Web: http://www.OpenFOAM.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{

View file

@ -1,25 +1,17 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object viscoelasticProperties;
version 2.0;
format ascii;
class dictionary;
object viscoelasticProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/*
@ -41,7 +33,6 @@ zeta 0.2 0.2 0.07 0.05
*/
rheology
{
@ -100,9 +91,6 @@ rheology
);
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "DCPP";
instance "system";
local "";
class dictionary;
object controlDict;
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application viscoelasticFluidFoam;
@ -60,5 +52,4 @@ maxCo 0.8;
maxDeltaT 0.01;
// ************************************************************************* //

View file

@ -1,28 +1,19 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object decomposeParDict;
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
method metis;
@ -60,5 +51,4 @@ roots
(
);
// ************************************************************************* //

View file

@ -1,31 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "DCPP";
instance "system";
local "";
class dictionary;
object fvSchemes;
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default CrankNicholson 1;
default Euler;
}
gradSchemes
@ -33,23 +24,22 @@ gradSchemes
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss upwind; //GammaV 0.5;
div(phi,U) Gauss Minmod; //upwind;
div(phi,Sfirst) Gauss upwind; //Gamma 0.5;
div(phi,Ssecond) Gauss upwind; //Gamma 0.5;
div(phi,Sthird) Gauss upwind; //Gamma 0.5;
div(phi,Sfourth) Gauss upwind; //Gamma 0.5;
div(phi,Sfirst) Gauss Minmod; //upwind;
div(phi,Ssecond) Gauss Minmod; //upwind;
div(phi,Sthird) Gauss Minmod; //upwind;
div(phi,Sfourth) Gauss Minmod; //upwind;
div(phi,Lambdafirst) Gauss upwind; //Gamma 0.5;
div(phi,Lambdasecond) Gauss upwind; //Gamma 0.5;
div(phi,Lambdathird) Gauss upwind; //Gamma 0.5;
div(phi,Lambdafourth) Gauss upwind; //Gamma 0.5;
div(phi,Lambdafirst) Gauss Minmod; //upwind;
div(phi,Lambdasecond) Gauss Minmod; //upwind;
div(phi,Lambdathird) Gauss Minmod; //upwind;
div(phi,Lambdafourth) Gauss Minmod; //upwind;
div(tau) Gauss linear;
}
@ -79,5 +69,4 @@ fluxRequired
p;
}
// ************************************************************************* //

View file

@ -1,36 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "DCPP";
instance "system";
local "";
class dictionary;
object fvSolution;
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p CG
p
{
solver PCG;
preconditioner
{
// type Cholesky;
type AMG;
// preconditioner Cholesky;
preconditioner AMG;
cycle W-cycle;
policy AAMG;
nPreSweeps 0;
@ -43,135 +36,144 @@ solvers
}
tolerance 1e-07;
relTol 0.0;
relTol 0;
minIter 0;
maxIter 800;
};
}
U BiCGStab
U
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Sfirst BiCGStab
Sfirst
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Ssecond BiCGStab
Ssecond
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Sthird BiCGStab
Sthird
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Sfourth BiCGStab
Sfourth
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Lambdafirst BiCGStab
Lambdafirst
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Lambdasecond BiCGStab
Lambdasecond
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Lambdathird BiCGStab
Lambdathird
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
Lambdafourth BiCGStab
Lambdafourth
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
}
PISO
{
momentumPredictor yes;
nCorrectors 2;
nNonOrthogonalCorrectors 1;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
@ -193,6 +195,4 @@ relaxationFactors
Lambdafourth 0.3;
}
// ************************************************************************* //

View file

@ -1,19 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object sampleDict;
version 2.0;
format ascii;
class dictionary;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
interpolationScheme cellPointFace;
@ -58,5 +56,4 @@ fields
PSD
);
// ************************************************************************* //

View file

@ -1,57 +1,47 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "FENE-CR";
instance "";
local "";
class volVectorField;
object U;
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
patch3
inlet
{
type fixedValue;
value uniform (5 0 0);
value uniform (0 0 -0.03875);
}
patch2
{
type zeroGradient;
}
patch1
fixedWalls
{
type fixedValue;
value uniform (0 0 0);
}
patch0
outlet
{
type zeroGradient;
}
simetry
{
type symmetryPlane;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -1,55 +1,46 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.3 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "FENE-CR";
instance "";
local "";
class volScalarField;
object p;
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
patch3
inlet
{
type zeroGradient;
}
patch2
fixedWalls
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
patch1
simetry
{
type zeroGradient;
type symmetryPlane;
}
patch0
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-CR";
instance "0";
local "";
class volSymmTensorField;
object tau;
version 2.0;
format ascii;
class volSymmTensorField;
object tau;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -28,27 +20,27 @@ internalField uniform (0 0 0 0 0 0);
boundaryField
{
patch3
inlet
{
type fixedValue;
value uniform (0 0 0 0 0 0);
}
patch2
fixedWalls
{
type zeroGradient;
}
patch1
outlet
{
type zeroGradient;
}
patch0
simetry
{
type symmetryPlane;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -1,53 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-CR";
instance "0";
local "";
class volSymmTensorField;
object taufirst;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform (0 0 0 0 0 0);
boundaryField
{
patch3
{
type fixedValue;
value uniform (0 0 0 0 0 0);
}
patch2
{
type zeroGradient;
}
patch1
{
type zeroGradient;
}
patch0
{
type empty;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,8 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
echo "done!"

View file

@ -0,0 +1,16 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name
application=`getApplication`
echo "Running blockMesh application"
runApplication blockMesh
echo "Running viscoelasticFluidFoam solver"
echo "FENE-CR model: "
runApplication $application
echo "done!"

View file

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
#
#+TITLE: *FENE-CR viscoelastic constitutive model README file for version 1.6-ext*
#+AUTHOR: Jovani
#+DATE: 05 October 2010
* This is a simulation case for a viscoelastic fluid described by the Finitely
Extensible Nonlinear Elastic Chilcott-Rallison constitutive model (FENE-CR).
The geometry was the 5:1 3D plane contraction, considering 1/4 of the real
geometry.
*** This is only an illustrative case for the FENE-CR constitutive model. Therefore,
there are not more details published until now for this model using this geometry
and viscoelasticFluidFoam solver.
*** Some results using this model with a 2D 4:1 plane contraction can be found at:
<http://hdl.handle.net/10183/16306>

View file

@ -1,47 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class polyBoundaryMesh;
location "constant/polyMesh";
object boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
4
(
patch0
{
type empty;
nFaces 8592;
startFace 6292;
}
patch1
{
type wall;
nFaces 292;
startFace 14884;
}
patch2
{
type patch;
nFaces 6;
startFace 15176;
}
patch3
{
type patch;
nFaces 6;
startFace 15182;
}
)
// ************************************************************************* //

View file

@ -0,0 +1,102 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.001;
vertices
(
(0 0 0)
(1 0 0)
(0 1 0)
(0 0 50) //block one
(1 0 50)
(0 1 50)
(3 0 50) //block two
(0 3 50)
(5 0 50)
(0 5 50)
(0 0 120)
(1 0 120) //block three
(0 1 120)
(3 0 120) //block four
(0 3 120)
(5 0 120)
(0 5 120)
);
blocks
(
hex (0 1 2 0 3 4 5 3) (10 10 50) simpleGrading (0.3 1 0.05)
hex (3 4 5 3 10 11 12 10) (10 10 60) simpleGrading (0.3 1 20)
hex (4 6 7 5 11 13 14 12) (20 10 60) simpleGrading (3 1 20)
hex (6 8 9 7 13 15 16 14) (20 10 60) simpleGrading (0.3 1 20)
);
edges
(
arc 1 2 (0.9396926 0.342020 0)
arc 4 5 (0.9396926 0.342020 50)
arc 6 7 (2.8190779 1.026060 50)
arc 8 9 (4.698463 1.7101007 50)
arc 11 12 (0.9396926 0.342020 120)
arc 13 14 (2.8190779 1.026060 120)
arc 15 16 (4.698463 1.7101007 120)
);
patches
(
patch inlet
(
(10 12 11 10)
(12 14 13 11)
(14 16 15 13)
)
wall fixedWalls
(
(1 4 5 2)
(4 6 7 5)
(6 8 9 7)
(8 15 16 9)
)
patch outlet
(
(0 1 2 0)
)
symmetryPlane simetry
(
(0 3 4 1)
(0 2 5 3)
(3 10 11 4)
(4 11 13 6)
(6 13 15 8)
(3 5 12 10)
(5 7 14 12)
(7 9 16 14)
)
);
mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -15,33 +15,38 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
4
5
(
patch0
inlet
{
type empty;
nFaces 8592;
startFace 6292;
type patch;
nFaces 500;
startFace 99900;
}
patch1
fixedWalls
{
type wall;
nFaces 292;
startFace 14884;
nFaces 1500;
startFace 100400;
}
patch2
outlet
{
type patch;
nFaces 6;
startFace 15176;
nFaces 100;
startFace 101900;
}
patch3
simetry
{
type patch;
nFaces 6;
startFace 15182;
type symmetryPlane;
nFaces 7000;
startFace 102000;
}
defaultFaces
{
type empty;
nFaces 0;
startFace 109000;
}
)
// ************************************************************************* //

View file

@ -1,50 +1,29 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object viscoelasticProperties;
version 2.0;
format ascii;
class dictionary;
object viscoelasticProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
rheology
{
type multiMode;
models
(
first
{
type FENE-CR;
rho rho [1 -3 0 0 0 0 0] 875.96;
etaS etaS [1 -1 -1 0 0 0 0] 0.007;
etaP etaP [1 -1 -1 0 0 0 0] 11.356;
lambda lambda [0 0 1 0 0 0 0] 0.35;
L2 L2 [0 0 0 0 0 0 0] 25;
}
);
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

View file

@ -1,42 +1,34 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-CR";
instance "system";
local "";
class dictionary;
object controlDict;
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application viscoelasticFluidFoam;
startFrom startTime;
startTime 0.0;
startTime 0;
stopAt endTime;
endTime 5;
endTime 3;
deltaT 1e-6;
deltaT 1e-5;
writeControl adjustableRunTime;
writeInterval 1;
writeInterval 0.5;
purgeWrite 0;
@ -60,5 +52,4 @@ maxCo 0.8;
maxDeltaT 0.001;
// ************************************************************************* //

View file

@ -1,28 +1,19 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object decomposeParDict;
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
method metis;
@ -60,5 +51,4 @@ roots
(
);
// ************************************************************************* //

View file

@ -1,30 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-CR";
instance "system";
local "";
class dictionary;
object fvSchemes;
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default CrankNicholson 1;
default Euler;
}
gradSchemes
@ -38,8 +30,8 @@ gradSchemes
divSchemes
{
default none;
div(phi,U) Gauss upwind; //GammaV 0.5;
div(phi,taufirst) Gauss upwind; //Gamma 0.5;
div(phi,U) Gauss upwind;
div(phi,tau) Gauss upwind;
div(tau) Gauss linear;
}
@ -68,5 +60,4 @@ fluxRequired
p;
}
// ************************************************************************* //

View file

@ -1,36 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-CR";
instance "system";
local "";
class dictionary;
object fvSolution;
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p CG
p
{
solver PCG;
preconditioner
{
type Cholesky;
/* type AMG;
// preconditioner Cholesky;
preconditioner AMG;
cycle W-cycle;
policy AAMG;
nPreSweeps 0;
@ -39,41 +32,43 @@ solvers
minCoarseEqns 20;
nMaxLevels 100;
scale off;
smoother ILU;*/
smoother ILU;
}
tolerance 1e-06;
relTol 0.0;
tolerance 1e-07;
relTol 0;
minIter 0;
maxIter 800;
};
}
U BiCGStab
U
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-5;
relTol 0.0;
};
}
taufirst BiCGStab
tau
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-5;
relTol 0.0;
};
@ -81,7 +76,6 @@ solvers
PISO
{
momentumPredictor yes;
nCorrectors 2;
nNonOrthogonalCorrectors 1;
pRefCell 0;
@ -92,9 +86,7 @@ relaxationFactors
{
p 0.3;
U 0.5;
taufirst 0.3;
tau 0.3;
}
// ************************************************************************* //

View file

@ -1,28 +1,21 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "WM";
instance "0";
local "";
class volScalarField;
object p;
version 2.0;
format ascii;
class volScalarField;
location "0";
object N1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
@ -30,15 +23,17 @@ boundaryField
{
inlet
{
type zeroGradient;
type calculated;
value uniform 0;
}
fixedWalls
{
type zeroGradient;
type calculated;
value uniform 0;
}
outlet
{
type fixedValue;
type calculated;
value uniform 0;
}
simetry

View file

@ -1,45 +1,40 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "PP";
instance "0";
local "";
class volSymmTensorField;
object tau;
version 2.0;
format ascii;
class volScalarField;
location "0";
object N2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform (0 0 0 0 0 0);
internalField uniform 0;
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0 0 0 0);
type calculated;
value uniform 0;
}
fixedWalls
{
type zeroGradient;
type calculated;
value uniform 0;
}
outlet
{
type zeroGradient;
type calculated;
value uniform 0;
}
simetry
{

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-P";
instance "0";
local "";
class volVectorField;
object U;
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
@ -52,5 +44,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-P";
instance "0";
local "";
class volScalarField;
object p;
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-P";
instance "0";
local "";
class volSymmTensorField;
object tau;
version 2.0;
format ascii;
class volSymmTensorField;
object tau;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -51,5 +43,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "FENE-P";
instance "0";
local "";
class volSymmTensorField;
object taufirst;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform (0 0 0 0 0 0);
boundaryField
{
inlet
{
type fixedValue;
value uniform (0 0 0 0 0 0);
}
fixedWalls
{
type zeroGradient;
}
outlet
{
type zeroGradient;
}
simetry
{
type symmetryPlane;
}
frontAndBack
{
type empty;
}
}
// ************************************************************************* //

View file

@ -0,0 +1,9 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
rm -R -f sets
echo "done!"

View file

@ -0,0 +1,22 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name
application=`getApplication`
echo "Running blockMesh application"
runApplication blockMesh
echo "Running viscoelasticFluidFoam solver"
echo "FENE-P model:"
runApplication $application
echo "Running stressDifferences application"
runApplication stressDifferences
echo "Running sample application"
runApplication sample
echo "done!"

View file

@ -0,0 +1,34 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
#
#+TITLE: *FENE-P viscoelastic constitutive model README file for version 1.6-ext*
#+AUTHOR: Jovani
#+DATE: 05 October 2010
* This is a simulation case for a viscoelastic fluid described by the Finitely
Extensible Nonlinear Elastic-Peterlin constitutive model (FENE-P).
The geometry was the 4:1 plane contraction. This is a well studied
geometry in viscoelastic fluid flow research.
More details about the model or parameters used, as also informations
about the geometry, can be found at:
*** AZAIEZ, J.; GUÉNETTE, R.; AïT-KADI, A. Numerical simulation of viscoelastic
flows through a planar contraction. Journal of Non-Newtonian Fluid
Mechanics, v. 62, n. 2-3, p. 253 277, 1996. ISSN 0377-0257.
<http://www.sciencedirect.com/science/article/B6TGV-3TKMMG1-8/2/b9b59e81347a3b5b3c185a2d9f2289af>
* The results for this case using viscoelasticFluidFoam solver can be found at:
*** Journal of Non-Newtonian Fluid Mechanics:
<http://www.sciencedirect.com/science/article/B6TGV-511BYYF-1/2/53b604790dda6f271bb2e82870ba0c2a>

View file

@ -1,28 +1,19 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-P";
instance "constant";
local "polyMesh";
class dictionary;
object blockMeshDict;
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.0032;
vertices
@ -104,5 +95,4 @@ mergePatchPairs
(
);
// ************************************************************************* //

View file

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5-dev |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

View file

@ -1,25 +1,17 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object viscoelasticProperties;
version 2.0;
format ascii;
class dictionary;
object viscoelasticProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/*
@ -30,32 +22,22 @@ Mechanics, v. 62, n. 2-3, p. 253 - 277, 1996.
Table 1
Model Model parameter lambda etaS etaP
PTT Linear L2 = 6.0 0.04 0.002 1.422
FENE-P L2 = 6.0 0.04 0.002 1.422
*/
rheology
{
type multiMode;
models
(
first
{
type FENE-P;
rho rho [1 -3 0 0 0 0 0] 803.87097;
etaS etaS [1 -1 -1 0 0 0 0] 0.002;
etaP etaP [1 -1 -1 0 0 0 0] 1.422;
lambda lambda [0 0 1 0 0 0 0] 0.04;
L2 L2 [0 0 0 0 0 0 0] 6.0;
}
);
}
// ************************************************************************* //

View file

@ -1,32 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-P";
instance "system";
local "";
class dictionary;
object controlDict;
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application viscoelasticFluidFoam;
startFrom startTime;
startTime 0.0;
startTime 0;
stopAt endTime;
@ -36,7 +28,7 @@ deltaT 1e-5;
writeControl adjustableRunTime;
writeInterval 0.1;
writeInterval 1;
purgeWrite 0;
@ -60,5 +52,4 @@ maxCo 0.8;
maxDeltaT 0.001;
// ************************************************************************* //

View file

@ -1,28 +1,19 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "";
instance "";
local "";
class dictionary;
object decomposeParDict;
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 2;
method metis;
@ -60,5 +51,4 @@ roots
(
);
// ************************************************************************* //

View file

@ -1,30 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-P";
instance "system";
local "";
class dictionary;
object fvSchemes;
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default CrankNicholson 1;
default Euler;
}
gradSchemes
@ -38,8 +30,8 @@ gradSchemes
divSchemes
{
default none;
div(phi,U) Gauss upwind; //GammaV 0.5;
div(phi,taufirst) Gauss upwind; //Gamma 0.5;
div(phi,U) Gauss Minmod; //upwind;
div(phi,tau) Gauss Minmod; //upwind;
div(tau) Gauss linear;
}
@ -68,5 +60,4 @@ fluxRequired
p;
}
// ************************************************************************* //

View file

@ -1,36 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/opt/OpenFOAM/jovani-1.4.1/run/tutorials/viscoelasticFluidFoam";
case "FENE-P";
instance "system";
local "";
class dictionary;
object fvSolution;
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p CG
p
{
solver PCG;
preconditioner
{
// type Cholesky;
type AMG;
// preconditioner Cholesky;
preconditioner AMG;
cycle W-cycle;
policy AAMG;
nPreSweeps 0;
@ -42,38 +35,40 @@ solvers
smoother ILU;
}
tolerance 1e-07;
relTol 0.0;
relTol 0;
minIter 0;
maxIter 800;
};
}
U BiCGStab
U
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
}
taufirst BiCGStab
tau
{
solver BiCGStab;
preconditioner
{
type Cholesky;
preconditioner Cholesky;
}
tolerance 1e-6;
relTol 0;
minIter 0;
maxIter 1000;
tolerance 1e-6;
relTol 0.0;
};
@ -81,9 +76,8 @@ solvers
PISO
{
momentumPredictor yes;
nCorrectors 2;
nNonOrthogonalCorrectors 1;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 0;
}
@ -92,9 +86,7 @@ relaxationFactors
{
p 0.3;
U 0.5;
taufirst 0.3;
tau 0.3;
}
// ************************************************************************* //

View file

@ -1,31 +1,22 @@
/*---------------------------------------------------------------------------*\
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "FENE-P";
instance "";
local "";
class dictionary;
object sampleDict;
version 2.0;
format ascii;
class dictionary;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
interpolationScheme cellPoint;
writeFormat raw;
setFormat raw;
sets
(
@ -49,7 +40,6 @@ sets
nPoints 100;
}
fig7_x_1
{
type uniform;
@ -59,7 +49,6 @@ sets
nPoints 100;
}
fig7_x_15
{
type uniform;
@ -87,7 +76,6 @@ sets
nPoints 100;
}
// y axes N1 upstream profile
fig7_y_1
@ -221,5 +209,4 @@ fields
N1
);
// ************************************************************************* //

View file

@ -1,175 +0,0 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "FENE-P";
instance "";
local "";
class dictionary;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
interpolationScheme cellPoint;
writeFormat raw;
sampleSets
(
// x axes Ux upstream profile
uniform
{
name fig5_x_05;
axis distance;
start (0.2544 0.0 0.00016);
end (0.2544 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig5_x_1;
axis distance;
start (0.2528 0.0 0.00016);
end (0.2528 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig5_x_15;
axis distance;
start (0.2512 0.0 0.00016);
end (0.2512 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig5_x_2;
axis distance;
start (0.2496 0.0 0.00016);
end (0.2496 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig5_x_10;
axis distance;
start (0.2240 0.0 0.00016);
end (0.2240 0.0128 0.00016);
nPoints 100;
}
// y axes Ux upstream profile
uniform
{
name fig5_y_1;
axis distance;
start (0.2240 0.0032 0.00016);
end (0.2560 0.0032 0.00016);
nPoints 100;
}
uniform
{
name fig5_y_15;
axis distance;
start (0.2240 0.0048 0.00016);
end (0.2560 0.0048 0.00016);
nPoints 100;
}
uniform
{
name fig5_y_2;
axis distance;
start (0.2240 0.0064 0.00016);
end (0.2560 0.0064 0.00016);
nPoints 100;
}
uniform
{
name fig5_y_25;
axis distance;
start (0.2240 0.0080 0.00016);
end (0.2560 0.0080 0.00016);
nPoints 100;
}
uniform
{
name fig5_y_3;
axis distance;
start (0.2240 0.0096 0.00016);
end (0.2560 0.0096 0.00016);
nPoints 100;
}
uniform
{
name fig5_y_35;
axis distance;
start (0.2240 0.0112 0.00016);
end (0.2560 0.0112 0.00016);
nPoints 100;
}
// x axes Ux downstream profile
uniform
{
name fig8_x_5;
axis distance;
start (0.2720 0.0 0.00016);
end (0.2720 0.0032 0.00016);
nPoints 100;
}
uniform
{
name fig8_x_1;
axis distance;
start (0.2592 0.0 0.00016);
end (0.2592 0.0032 0.00016);
nPoints 100;
}
uniform
{
name fig8_x_0;
axis distance;
start (0.2560 0.0 0.00016);
end (0.2560 0.0032 0.00016);
nPoints 100;
}
);
fields
(
mag(U)
);
// ************************************************************************* //

View file

@ -1,225 +0,0 @@
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4 |
| \\ / A nd | Web: http://www.openfoam.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "";
case "FENE-P";
instance "";
local "";
class dictionary;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
interpolationScheme cellPointFace;
writeFormat raw;
sampleSets
(
// x axes Ux upstream profile
uniform
{
name fig6_x_037;
axis distance;
start (0.25482 0.0 0.00016);
end (0.25482 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig6_x_05;
axis distance;
start (0.2544 0.0 0.00016);
end (0.2544 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig6_x_1;
axis distance;
start (0.2528 0.0 0.00016);
end (0.2528 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig6_x_15;
axis distance;
start (0.2512 0.0 0.00016);
end (0.2512 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig6_x_2;
axis distance;
start (0.2496 0.0 0.00016);
end (0.2496 0.0128 0.00016);
nPoints 100;
}
uniform
{
name fig6_x_10;
axis distance;
start (0.2240 0.0 0.00016);
end (0.2240 0.0128 0.00016);
nPoints 100;
}
// y axes Ux upstream profile
uniform
{
name fig6_y_1;
axis distance;
start (0.2432 0.0032 0.00016);
end (0.2544 0.0032 0.00016);
nPoints 100;
}
uniform
{
name fig6_y_15;
axis distance;
start ( 0.2432 0.0048 0.00016);
end (0.2544 0.0048 0.00016);
nPoints 100;
}
uniform
{
name fig6_y_2;
axis distance;
start ( 0.2432 0.0064 0.00016);
end (0.2544 0.0064 0.00016);
nPoints 100;
}
uniform
{
name fig6_y_25;
axis distance;
start ( 0.2432 0.0080 0.00016);
end (0.2544 0.0080 0.00016);
nPoints 100;
}
uniform
{
name fig6_y_3;
axis distance;
start (0.2432 0.0096 0.00016);
end (0.2544 0.0096 0.00016);
nPoints 100;
}
uniform
{
name fig6_y_35;
axis distance;
start (0.2432 0.0112 0.00016);
end (0.2544 0.0112 0.00016);
nPoints 100;
}
// x axes Ux downstream profile
uniform
{
name fig9_x_5;
axis distance;
start (0.2720 0.0 0.00016);
end (0.2720 0.00288 0.00016);
nPoints 100;
}
uniform
{
name fig9_x_1;
axis distance;
start (0.2592 0.0 0.00016);
end (0.2592 0.00288 0.00016);
nPoints 100;
}
uniform
{
name fig9_x_05;
axis distance;
start (0.2576 0.0 0.00016);
end (0.2576 0.00288 0.00016);
nPoints 100;
}
uniform
{
name fig9_x_0;
axis distance;
start (0.2560 0.0 0.00016);
end (0.2560 0.00288 0.00016);
nPoints 100;
}
// y axes Ux downstream profile
uniform
{
name fig9_y_1;
axis distance;
start (0.2272 0.0032 0.00016);
end (0.2752 0.0032 0.00016);
nPoints 100;
}
uniform
{
name fig9_y_04;
axis distance;
start (0.2272 0.00128 0.00016);
end (0.2752 0.00128 0.00016);
nPoints 100;
}
uniform
{
name fig9_y_0;
axis distance;
start (0.2272 0.0 0.00016);
end (0.2752 0.0 0.00016);
nPoints 100;
}
);
fields
(
tauxy
);
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volVectorField;
object U;
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
@ -45,5 +37,4 @@ boundaryField
}
// ************************************************************************* //

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volScalarField;
object p;
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
@ -44,5 +36,4 @@ boundaryField
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volSymmTensorField;
object tau;
version 2.0;
format ascii;
class volSymmTensorField;
object tau;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -44,5 +36,4 @@ boundaryField
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volSymmTensorField;
object taufirst;
version 2.0;
format ascii;
class volSymmTensorField;
object taufirst;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -44,5 +36,4 @@ boundaryField
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volSymmTensorField;
object taufourth;
version 2.0;
format ascii;
class volSymmTensorField;
object taufourth;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -43,5 +35,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volSymmTensorField;
object tausecond;
version 2.0;
format ascii;
class volSymmTensorField;
object tausecond;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -43,5 +35,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -1,25 +1,17 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.4.1-dev |
| \\ / A nd | Web: http://www.openfoam.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
root "/home/jovani/jovaniFoam/foamNewSolver/cases/recentCases/upwind";
case "Feta-PTT";
instance "0";
local "";
class volSymmTensorField;
object tauthird;
version 2.0;
format ascii;
class volSymmTensorField;
object tauthird;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
@ -43,5 +35,4 @@ boundaryField
}
}
// ************************************************************************* //

View file

@ -0,0 +1,8 @@
#!/bin/sh
# Source tutorial clean functions
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
cleanCase
echo "done!"

View file

@ -0,0 +1,16 @@
#!/bin/sh
# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions
# Get application name
application=`getApplication`
echo "Running blockMesh application"
runApplication blockMesh
echo "Running viscoelasticFluidFoam solver"
echo "Feta-PTT model: "
runApplication $application
echo "done!"

View file

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
#
#+TITLE: *Feta-PTT viscoelastic constitutive model README file for version 1.6-ext*
#+AUTHOR: Jovani
#+DATE: 05 October 2010
* This is a simulation case for a viscoelastic fluid described by the Fixed
Eta Phan-Thien-Tanner constitutive model (Feta-PTT).
The geometry was a rectangular channel.
*** This is only an illustrative case for this constitutive model. Therefore,
there are not more details published until now for this model using this geometry
and viscoelasticFluidFoam solver.
*** The parameters for the constitutive model was obtained from:
VERBEETEN, W. M. H. Computational polymer melt rheology. [S.l.]: CIP-Data Library
Technische Universiteit Eindhoven, 2001.

View file

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\ / F ield | OpenFOAM Extend Project: Open source CFD |
| \\ / O peration | Version: 1.6-ext |
| \\ / A nd | Web: www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile

Some files were not shown because too many files have changed in this diff Show more