Skip to content

Commit

Permalink
version 3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
fppimenta committed Sep 18, 2018
1 parent 2fd9853 commit 9dabccb
Show file tree
Hide file tree
Showing 1,783 changed files with 100,906 additions and 1,804 deletions.
46 changes: 45 additions & 1 deletion ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,50 @@

//************************************************************\\

Version 3.0

Released on 18/09/2018.

o Brownian dynamics solver:

- Add: solvers, libraries, utilities and tutorials for Brownian dynamics simulations of polymer molecules.

o Generic:

- Add: all solvers are now compatible with dynamic meshes. Due to this change, and for convenience, momentum equation is the first to be solved, followed by pressure equation and then the equations for the remaining variables (extra-stresses, passive scalar, etc.).

- Add: tutorial fuidDamper showing the use of rheoFoam with dynamic meshes.

- Add: added an explicit Navier slip boundary condition for velocity.

- Change: Namespace encapsulation of several derived classes.

- Change: rheoTool version compatible with OpenFOAM v2.2.2 is discontinued.

- Add: added rheoTool patch for OpenFOAM v6.0.

- Add: added note in the user-guide (Section 2.5) about parallel compilation of rheoTool.

o Constitutive equations:

- Add: Papanastasiou regularization is now available for yield-stress GNF models (Hershel-Bulkley/Bingham and Casson models).

- Add: Casson model has been added to the library of constitutive equations.

- Add: the Multi-Lambda Isotropic Kinematic Hardening (MLK-IKH) model has been added to the library of constitutive equations.

- Add: the Vasquez-Cook-Mckinley (VCM) model has been added to the library of constitutive equations.

- Add: the Reactive Rod Model (RRM) model has been added to the library of constitutive equations.

- Add: Saramito's elastoviscoplastic model has been added to the library of constitutive equations. Both stress and log-conformation versions are available.

- Add: the Bautista-Manero-Puig (BMP) model has been added to the library of constitutive equations. Both stress and log-conformation versions are available.

- Change: implemented functions tauTotal() and tauTotalMF() in base classes. Solver rheoTestFoam and the utility retrieving the wall shear-stresses were modified accordingly.

//************************************************************\\

Version 2.0

Released on 09/02/2018.
Expand Down Expand Up @@ -36,7 +80,7 @@ o Post-Processing:

o Multiphase flows:

- Change: (fvc::grad(U) & fvc::grad(etaS()*alpha)) has been replaced by fvc::div(etaS()*alpha*dev2(T(fvc::grad(U)))) for the use in multiphase flows (constitutiveEq.C).
- Change: (fvc::grad(U) & fvc::grad(etaS()*alpha)) has been replaced by fvc::div(etaS()*alpha*dev2(T(fvc::grad(U)))) for the use in multiphase flows (constitutiveEq.C).

- Fix: call to constrainPressure() in reoInterFoam, version of40, has been corrected for the SIMPLEC algorithm (pEqn.H). Added a section in the user-guide on how to use properly the fixedFluxPressure BC with reoInterFoam in versions of222 and fe40.

Expand Down
24 changes: 15 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,24 @@

## About

[RheoTool] is an open-source toolbox based on [OpenFOAM®] to simulate Generalized Newtonian Fluids (GNF) and viscoelastic fluids under pressure-driven and/or electrically-driven flows.
[RheoTool] is an open-source toolbox based on [OpenFOAM®] to simulate Generalized Newtonian Fluids (GNF) and viscoelastic fluids under pressure-driven and/or electrically-driven flows. In addition to continuum mechanics solvers, [RheoTool] also has a Brownian dynamics solver to simulate polymer molecules individually.

The theory behind the single-phase flow solvers used in [RheoTool] can be found in [Pimenta F. and Alves M.A., 2017, J. Non-Newtonian Fluid Mech.](http://dx.doi.org/10.1016/j.jnnfm.2016.12.002) for pressure-driven flows, and in [Pimenta F. and Alves M.A., 2018, arXiv:1802.02843](http://arxiv.org/abs/1802.02843) for electrically-driven flows.
The theory behind the single-phase flow solvers used in [RheoTool] can be found in [Pimenta F. and Alves M.A., 2017, J. Non-Newtonian Fluid Mech.](http://dx.doi.org/10.1016/j.jnnfm.2016.12.002) for pressure-driven flows, and in [Pimenta F. and Alves M.A., 2018, arXiv:1802.02843](http://arxiv.org/abs/1802.02843) for electrically-driven flows. The Brownian dynamics solver was presented in [Pimenta F. et al., 2018, Biomicrofluidics](https://doi.org/10.1063/1.5037472).

The library containing the viscoelastic models has been developed based on the library used by _viscoelasticFluidFoam_ [(Favero et al., 2010, J. Non-Newtonian Fluid Mech.)](http://dx.doi.org/10.1016/j.jnnfm.2010.08.010), already present in [foam-extend 4.0].
The library containing the viscoelastic fluid models has been developed based on the library used by _viscoelasticFluidFoam_ [(Favero et al., 2010, J. Non-Newtonian Fluid Mech.)](http://dx.doi.org/10.1016/j.jnnfm.2010.08.010), already present in [foam-extend 4.0].


## Features

* all the features are available for 2D/3D problems and generic grids;
* the code is fully-parallelized;
* the code for continuum mechanics is fully-parallelized;
* all solvers support either moving or static meshes;
* wide range of electrically-driven flow models;
* wide range of viscoelastic and GNF models;
* the log-conformation tensor approach is available for all viscoelastic models;
* the transient flow solvers (_rheoFoam_ and _rheoEFoam_) are highly stable regarding pressure-stress-velocity coupling;
* the material functions of any rheological model can be obtained numerically (_rheoTestFoam_);
* Brownian dynamics solver implementing bead-spring models;
* a set of tutorials is included to illustrate the application of the solvers to different problems;
* the theory and the tutorials are described in a user-guide;
* a solver for two-phase flows is available (_rheoInterFoam_), where any GNF or viscoelastic model can be used for each phase (_under-development_);
Expand All @@ -27,14 +29,18 @@ The library containing the viscoelastic models has been developed based on the l

[RheoTool] can be either cloned using `git` via: `git clone https://github.com/fppimenta/rheoTool` or simply downloaded from the GitHub page at https://github.com/fppimenta/rheoTool.

The repository includes versions of [RheoTool] for: OpenFOAM® [v2.2.2](http://openfoam.org/version/2-2-2), OpenFOAM® [v4.1](http://openfoam.org/version/4-1)/[v4.0](http://openfoam.org/version/4-0) and foam-extend [v4.0](https://github.com/Unofficial-Extend-Project-Mirror/foam-extend-foam-extend-4.0).
The repository includes versions of [RheoTool] for: OpenFOAM® [v4.1](http://openfoam.org/version/4-1)/[v4.0](http://openfoam.org/version/4-0)/[v6.0](http://openfoam.org/version/6-0) and foam-extend [v4.0](https://github.com/Unofficial-Extend-Project-Mirror/foam-extend-foam-extend-4.0).

To install [RheoTool], please follow the instructions in Chapter 2 of the [user-guide](https://github.com/fppimenta/rheoTool/tree/master/doc).

## Docs

See the [user-guide](https://github.com/fppimenta/rheoTool/tree/master/doc).

## ChangeLog

Follow the version updates of rheoTool in the [ChangeLog](https://github.com/fppimenta/rheoTool/tree/master/ChangeLog). They can also be found in the [user-guide](https://github.com/fppimenta/rheoTool/tree/master/doc).

## Third-Party

[RheoTool] is using the following third-party packages:
Expand All @@ -44,10 +50,10 @@ See the [user-guide](https://github.com/fppimenta/rheoTool/tree/master/doc).
## Screenshots

Here are some images from the tutorials included in [RheoTool].

<img src="https://user-images.githubusercontent.com/22405564/36007099-b988edaa-0d38-11e8-8f9c-157e78f040a6.png">
<img src="https://user-images.githubusercontent.com/22405564/45702045-ad1aae80-bb68-11e8-81e2-9afda0802faf.png">

[RheoTool]:https://github.com/fppimenta/rheoTool
[OpenFOAM®]:http://openfoam.org/
[foam-extend]:http://www.extend-project.de/
[foam-extend 4.0]:https://github.com/Unofficial-Extend-Project-Mirror/foam-extend-foam-extend-4.0
[foam-extend]:https://github.com/Unofficial-Extend-Project-Mirror/Unofficial-Extend-Project-Mirror.github.io/wiki
[foam-extend 4.0]:https://github.com/Unofficial-Extend-Project-Mirror/foam-extend-foam-extend-4.0
Binary file modified doc/user_guide.pdf
Binary file not shown.
12 changes: 7 additions & 5 deletions fe40/src/libs/EDFModels/models/DebyeHuckel/DebyeHuckel.C
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,16 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

namespace Foam
{
namespace EDFEquations
{
defineTypeNameAndDebug(DebyeHuckel, 0);
addToRunTimeSelectionTable(EDFEquation, DebyeHuckel, dictionary);
}

}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::DebyeHuckel::DHSpecie::DHSpecie
Foam::EDFEquations::DebyeHuckel::DHSpecie::DHSpecie
(
const word& name,
const surfaceScalarField& phi,
Expand All @@ -52,7 +54,7 @@ Foam::DebyeHuckel::DHSpecie::DHSpecie

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::DebyeHuckel::DebyeHuckel
Foam::EDFEquations::DebyeHuckel::DebyeHuckel
(
const word& name,
const surfaceScalarField& phi,
Expand Down Expand Up @@ -141,7 +143,7 @@ Foam::DebyeHuckel::DebyeHuckel

// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

Foam::tmp<Foam::volVectorField> Foam::DebyeHuckel::Fe() const
Foam::tmp<Foam::volVectorField> Foam::EDFEquations::DebyeHuckel::Fe() const
{

volScalarField rhoE( psi_ * dimensionedScalar("norm", epsilonK_.dimensions()/dimArea, 0.) );
Expand Down Expand Up @@ -191,7 +193,7 @@ Foam::tmp<Foam::volVectorField> Foam::DebyeHuckel::Fe() const
}
}

void Foam::DebyeHuckel::correct()
void Foam::EDFEquations::DebyeHuckel::correct()
{

scalar res=GREAT;
Expand Down
4 changes: 3 additions & 1 deletion fe40/src/libs/EDFModels/models/DebyeHuckel/DebyeHuckel.H
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ SourceFiles

namespace Foam
{

namespace EDFEquations
{
class DebyeHuckel
:
public EDFEquation
Expand Down Expand Up @@ -200,6 +201,7 @@ public:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace EDFEquations
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Expand Down
11 changes: 7 additions & 4 deletions fe40/src/libs/EDFModels/models/NernstPlanck/NernstPlanck.C
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

namespace Foam
{
namespace EDFEquations
{
defineTypeNameAndDebug(NernstPlanck, 0);
addToRunTimeSelectionTable(EDFEquation, NernstPlanck, dictionary);
}
}

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::NernstPlanck::NPSpecie::NPSpecie
Foam::EDFEquations::NernstPlanck::NPSpecie::NPSpecie
(
const word& name,
const surfaceScalarField& phi,
Expand All @@ -64,7 +67,7 @@ Foam::NernstPlanck::NPSpecie::NPSpecie

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::NernstPlanck::NernstPlanck
Foam::EDFEquations::NernstPlanck::NernstPlanck
(
const word& name,
const surfaceScalarField& phi,
Expand Down Expand Up @@ -140,7 +143,7 @@ Foam::NernstPlanck::NernstPlanck

// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

Foam::tmp<Foam::volVectorField> Foam::NernstPlanck::Fe() const
Foam::tmp<Foam::volVectorField> Foam::EDFEquations::NernstPlanck::Fe() const
{
volScalarField rhoE( psi_ * dimensionedScalar("norm", epsilonK_.dimensions()/dimArea, 0.) );

Expand Down Expand Up @@ -188,7 +191,7 @@ Foam::tmp<Foam::volVectorField> Foam::NernstPlanck::Fe() const
}
}

void Foam::NernstPlanck::correct()
void Foam::EDFEquations::NernstPlanck::correct()
{

// Electrokinetic coupling loop
Expand Down
4 changes: 3 additions & 1 deletion fe40/src/libs/EDFModels/models/NernstPlanck/NernstPlanck.H
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ License

namespace Foam
{

namespace EDFEquations
{
class NernstPlanck
:
public EDFEquation
Expand Down Expand Up @@ -198,6 +199,7 @@ public:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace EDFEquations
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Expand Down
19 changes: 13 additions & 6 deletions fe40/src/libs/EDFModels/models/Ohmic/Ohmic.C
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

namespace Foam
{
namespace EDFEquations
{
defineTypeNameAndDebug(Ohmic, 0);
addToRunTimeSelectionTable(EDFEquation, Ohmic, dictionary);
}
}

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::Ohmic::OhSpecie::OhSpecie
Foam::EDFEquations::Ohmic::OhSpecie::OhSpecie
(
const word& name,
const surfaceScalarField& phi,
Expand All @@ -52,7 +55,7 @@ Foam::Ohmic::OhSpecie::OhSpecie

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::Ohmic::Ohmic
Foam::EDFEquations::Ohmic::Ohmic
(
const word& name,
const surfaceScalarField& phi,
Expand Down Expand Up @@ -118,22 +121,26 @@ Foam::Ohmic::Ohmic
scalar z1 = mag(species_[1].zi().value());

Deff_ = 2*( species_[0].Di()*species_[1].Di() )
/ ( species_[0].Di() + species_[1].Di() );
/ ( species_[0].Di() + species_[1].Di() );


// This is a fix to avoid FP error when the electric module
// is computed after hydrodynamics. This call ensures that on
// first time-step the electric component is the 1st computed.
// Issue appeared after reordering solving sequence (v3.0).
correct();
}

// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

Foam::tmp<Foam::volVectorField> Foam::Ohmic::Fe() const
Foam::tmp<Foam::volVectorField> Foam::EDFEquations::Ohmic::Fe() const
{
return
(
fvc::laplacian(epsilonK_*relPerm_, phiE_, "rhoE") * ( fvc::grad(phiE_) + extraE_)
);
}

void Foam::Ohmic::correct()
void Foam::EDFEquations::Ohmic::correct()
{

scalar res=GREAT;
Expand Down
4 changes: 3 additions & 1 deletion fe40/src/libs/EDFModels/models/Ohmic/Ohmic.H
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ License

namespace Foam
{

namespace EDFEquations
{
class Ohmic
:
public EDFEquation
Expand Down Expand Up @@ -172,6 +173,7 @@ public:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace EDFEquations
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ License
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

namespace Foam
{
namespace EDFEquations
{
defineTypeNameAndDebug(PoissonBoltzmann, 0);
addToRunTimeSelectionTable(EDFEquation, PoissonBoltzmann, dictionary);
}
}

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::PoissonBoltzmann::PBSpecie::PBSpecie
Foam::EDFEquations::PoissonBoltzmann::PBSpecie::PBSpecie
(
const word& name,
const surfaceScalarField& phi,
Expand All @@ -52,7 +55,7 @@ Foam::PoissonBoltzmann::PBSpecie::PBSpecie

// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //

Foam::PoissonBoltzmann::PoissonBoltzmann
Foam::EDFEquations::PoissonBoltzmann::PoissonBoltzmann
(
const word& name,
const surfaceScalarField& phi,
Expand Down Expand Up @@ -140,7 +143,7 @@ Foam::PoissonBoltzmann::PoissonBoltzmann

// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //

Foam::tmp<Foam::volVectorField> Foam::PoissonBoltzmann::Fe() const
Foam::tmp<Foam::volVectorField> Foam::EDFEquations::PoissonBoltzmann::Fe() const
{
volScalarField rhoE( psi_ * dimensionedScalar("norm", epsilonK_.dimensions()/dimArea, 0.) );

Expand Down Expand Up @@ -189,7 +192,7 @@ Foam::tmp<Foam::volVectorField> Foam::PoissonBoltzmann::Fe() const
}
}

void Foam::PoissonBoltzmann::correct()
void Foam::EDFEquations::PoissonBoltzmann::correct()
{

scalar res=GREAT;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ License

namespace Foam
{

namespace EDFEquations
{
class PoissonBoltzmann
:
public EDFEquation
Expand Down Expand Up @@ -196,6 +197,7 @@ public:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

} // End namespace EDFEquations
} // End namespace Foam

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Expand Down
Loading

0 comments on commit 9dabccb

Please sign in to comment.