Merge remote-tracking branch 'origin/nextRelease_philipc' into nextRelease

Conflicts:
	src/Allwmake
This commit is contained in:
Hrvoje Jasak 2013-10-29 10:20:25 +00:00
commit f7ad627f7f
1400 changed files with 225315 additions and 706439 deletions

View file

@ -1,9 +0,0 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
set -x
wmake libso materialModels
wmake newStressedFoam
wmake newContactStressFoam

View file

@ -1,237 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2007 Hrvoje Jasak
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Class
componentReference
Description
Class contains data for a component reference as used in stress
analysis solvers.
SourceFiles
componentReferenceI.H
componentReference.C
componentReferenceIO.C
\*---------------------------------------------------------------------------*/
#ifndef componentReference_H
#define componentReference_H
#include "polyPatchID.H"
#include "fvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class componentReference Declaration
\*---------------------------------------------------------------------------*/
class componentReference
{
// Private data
//- Patch ID
polyPatchID patchID_;
//- Face index
label faceIndex_;
//- Direction
direction dir_;
//- Value in direction
scalar value_;
// Private Member Functions
//- Create direction given a name
direction getDir(const dictionary& dict) const
{
word dirName(dict.lookup("direction"));
if (dirName == "x" || dirName == "X")
{
return vector::X;
}
else if (dirName == "y" || dirName == "Y")
{
return vector::Y;
}
else if (dirName == "z" || dirName == "Z")
{
return vector::Z;
}
else
{
FatalIOErrorIn
(
"vector::component componentReference::getComp("
"const word& dirName) const",
dict
) << "Direction " << dirName << " not recognised. Please "
<< "use x, y or z" << abort(FatalIOError);
// Dummy return to keep compiler happy
return vector::X;
}
}
//- Check if patch face is in range
void checkPatchFace(const fvMesh& mesh) const
{
if
(
!patchID_.active()
|| faceIndex_ >= mesh.boundaryMesh()[patchID_.index()].size()
)
{
FatalErrorIn
(
"void checkPatchFace(const componentReference::fvMesh&)"
"const"
) << "Non-existing patch or index out of range."
<< abort(FatalError);
}
}
public:
// Public classes
//- Class used for the read-construction of
// PtrLists of componentReference
class iNew
{
const fvMesh& mesh_;
public:
iNew(const fvMesh& mesh)
:
mesh_(mesh)
{}
autoPtr<componentReference> operator()(Istream& is) const
{
dictionary crDict(is);
autoPtr<componentReference> cr
(
new componentReference(mesh_, crDict)
);
return cr;
}
};
// Constructors
//- Construct from components
componentReference
(
const fvMesh& mesh,
const word& patchName,
const label faceIndex,
const direction dir,
const scalar value
)
:
patchID_(patchName, mesh.boundaryMesh()),
faceIndex_(faceIndex),
dir_(dir),
value_(value)
{
checkPatchFace(mesh);
}
//- Construct from dictionary
componentReference
(
const fvMesh& mesh,
const dictionary& dict
)
:
patchID_(dict.lookup("patch"), mesh.boundaryMesh()),
faceIndex_(readLabel(dict.lookup("face"))),
dir_(getDir(dict)),
value_(readScalar(dict.lookup("value")))
{
checkPatchFace(mesh);
}
//- Clone
autoPtr<componentReference> clone() const
{
return autoPtr<componentReference>(new componentReference(*this));
}
// Destructor - default
// Member Functions
//- Return patch index
label patchIndex() const
{
return patchID_.index();
}
//- Return face index
label faceIndex() const
{
return faceIndex_;
}
//- Return direction
direction dir() const
{
return dir_;
}
//- Return value
scalar value() const
{
return value_;
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View file

@ -1,265 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2007 Hrvoje Jasak
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Description
\*---------------------------------------------------------------------------*/
#include "cohesiveLawFvPatchVectorField.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"
#include "rheologyModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF
)
:
fixedGradientFvPatchVectorField(p, iF),
cohesiveLawPtr_(NULL),
relaxationFactor_(1.0),
traction_(p.size(), vector::zero)
{}
cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const dictionary& dict
)
:
fixedGradientFvPatchVectorField(p, iF),
cohesiveLawPtr_
(
cohesiveLaw::New(dict.lookup("cohesiveLaw"), dict).ptr()
),
relaxationFactor_(readScalar(dict.lookup("relaxationFactor"))),
traction_(p.size(), vector::zero)
{
fvPatchVectorField::operator=(patchInternalField());
gradient() = vector::zero;
}
cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField
(
const cohesiveLawFvPatchVectorField& cpf
)
:
fixedGradientFvPatchVectorField(cpf),
cohesiveLawPtr_(cpf.cohesiveLawPtr_->clone().ptr()),
relaxationFactor_(cpf.relaxationFactor_),
traction_(cpf.traction_)
{}
cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField
(
const cohesiveLawFvPatchVectorField& cpf,
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedGradientFvPatchVectorField(cpf, p, iF, mapper),
cohesiveLawPtr_(cpf.cohesiveLawPtr_->clone().ptr()),
relaxationFactor_(cpf.relaxationFactor_),
traction_(cpf.traction_, mapper)
{}
cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField
(
const cohesiveLawFvPatchVectorField& cpf,
const DimensionedField<vector, volMesh>& iF
)
:
fixedGradientFvPatchVectorField(cpf, iF),
cohesiveLawPtr_(cpf.cohesiveLawPtr_->clone().ptr()),
relaxationFactor_(cpf.relaxationFactor_),
traction_(cpf.traction_)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
const cohesiveLaw& cohesiveLawFvPatchVectorField::law() const
{
if (!cohesiveLawPtr_)
{
FatalErrorIn
(
"const cohesiveLaw& cohesiveLawFvPatchVectorField::law() const"
) << "Law pointer not set" << abort(FatalError);
}
return *cohesiveLawPtr_;
}
void cohesiveLawFvPatchVectorField::autoMap
(
const fvPatchFieldMapper& m
)
{
if (cohesiveLawPtr_ == NULL)
{
FatalErrorIn("cohesiveFvPatchVectorField::autoMap")
<< "NULL cohesive law"
<< abort(FatalError);
}
fixedGradientFvPatchVectorField::autoMap(m);
traction_.autoMap(m);
}
// Reverse-map the given fvPatchField onto this fvPatchField
void cohesiveLawFvPatchVectorField::rmap
(
const fvPatchVectorField& ptf,
const labelList& addr
)
{
fixedGradientFvPatchVectorField::rmap(ptf, addr);
const cohesiveLawFvPatchVectorField& dmptf =
refCast<const cohesiveLawFvPatchVectorField>(ptf);
// No need to grab the cohesive zone pointer more than once
if (!cohesiveLawPtr_)
{
cohesiveLawPtr_ = dmptf.cohesiveLawPtr_->clone().ptr();
relaxationFactor_ = dmptf.relaxationFactor_;
}
traction_.rmap(dmptf.traction_, addr);
}
// Update the coefficients associated with the patch field
void cohesiveLawFvPatchVectorField::updateCoeffs()
{
if (updated())
{
return;
}
// Looking up rheology
const fvPatchField<scalar>& mu =
lookupPatchField<volScalarField, scalar>("mu");
const fvPatchField<scalar>& lambda =
lookupPatchField<volScalarField, scalar>("lambda");
vectorField n = patch().nf();
const fvPatchField<tensor>& gradU =
lookupPatchField<volTensorField, tensor>("grad(U)");
// Patch displacement
const vectorField& U = *this;
// Patch stress
tensorField sigma = mu*(gradU + gradU.T()) + I*(lambda*tr(gradU));
// Normal stress component
scalarField sigmaN = (n & (n & sigma));
scalarField delta = -(n & U);
label sizeByTwo = patch().size()/2;
for(label i = 0; i < sizeByTwo; i++)
{
scalar tmp = delta[i];
delta[i] += delta[sizeByTwo + i];
delta[sizeByTwo + i] += tmp;
}
forAll (traction_, faceI)
{
if (delta[faceI] < 0)
{
// Return from traction to symmetryPlane??
traction_[faceI] = law().sigmaMax().value()*n[faceI];
}
else if(delta[faceI] > law().deltaC().value())
{
// Traction free
traction_[faceI] = vector::zero;
}
else
{
// Calculate cohesive traction from cohesive zone model
traction_[faceI] = law().traction(delta[faceI])*n[faceI];
}
}
gradient() =
(
traction_
- (n & (mu*gradU.T() - (mu + lambda)*gradU))
- n*lambda*tr(gradU)
)/(2.0*mu + lambda);
fixedGradientFvPatchVectorField::updateCoeffs();
}
// Write
void cohesiveLawFvPatchVectorField::write(Ostream& os) const
{
fvPatchVectorField::write(os);
traction_.writeEntry("traction", os);
os.writeKeyword("cohesiveLaw") << law().type()
<< token::END_STATEMENT << nl;
os.writeKeyword("relaxationFactor") << relaxationFactor_
<< token::END_STATEMENT << nl;
law().writeDict(os);
writeEntry("value", os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField(fvPatchVectorField, cohesiveLawFvPatchVectorField);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -1,205 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright held by original author
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
\*---------------------------------------------------------------------------*/
#include "tractionDisplacementFvPatchVectorField.H"
#include "addToRunTimeSelectionTable.H"
#include "volFields.H"
#include "rheologyModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
tractionDisplacementFvPatchVectorField::
tractionDisplacementFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF
)
:
fixedGradientFvPatchVectorField(p, iF),
UName_("undefined"),
rheologyName_("undefined"),
traction_(p.size(), vector::zero),
pressure_(p.size(), 0.0)
{
fvPatchVectorField::operator=(patchInternalField());
gradient() = vector::zero;
}
tractionDisplacementFvPatchVectorField::
tractionDisplacementFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const dictionary& dict
)
:
fixedGradientFvPatchVectorField(p, iF),
UName_(dict.lookup("U")),
rheologyName_(dict.lookup("rheology")),
traction_("traction", dict, p.size()),
pressure_("pressure", dict, p.size())
{
fvPatchVectorField::operator=(patchInternalField());
gradient() = vector::zero;
Info << "rf: " << rheologyName_ << endl;
}
tractionDisplacementFvPatchVectorField::
tractionDisplacementFvPatchVectorField
(
const tractionDisplacementFvPatchVectorField& tdpvf,
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedGradientFvPatchVectorField(tdpvf, p, iF, mapper),
UName_(tdpvf.UName_),
rheologyName_(tdpvf.rheologyName_),
traction_(tdpvf.traction_, mapper),
pressure_(tdpvf.pressure_, mapper)
{}
tractionDisplacementFvPatchVectorField::
tractionDisplacementFvPatchVectorField
(
const tractionDisplacementFvPatchVectorField& tdpvf
)
:
fixedGradientFvPatchVectorField(tdpvf),
UName_(tdpvf.UName_),
rheologyName_(tdpvf.rheologyName_),
traction_(tdpvf.traction_),
pressure_(tdpvf.pressure_)
{}
tractionDisplacementFvPatchVectorField::
tractionDisplacementFvPatchVectorField
(
const tractionDisplacementFvPatchVectorField& tdpvf,
const DimensionedField<vector, volMesh>& iF
)
:
fixedGradientFvPatchVectorField(tdpvf, iF),
UName_(tdpvf.UName_),
rheologyName_(tdpvf.rheologyName_),
traction_(tdpvf.traction_),
pressure_(tdpvf.pressure_)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void tractionDisplacementFvPatchVectorField::autoMap
(
const fvPatchFieldMapper& m
)
{
fixedGradientFvPatchVectorField::autoMap(m);
traction_.autoMap(m);
pressure_.autoMap(m);
}
// Reverse-map the given fvPatchField onto this fvPatchField
void tractionDisplacementFvPatchVectorField::rmap
(
const fvPatchVectorField& ptf,
const labelList& addr
)
{
fixedGradientFvPatchVectorField::rmap(ptf, addr);
const tractionDisplacementFvPatchVectorField& dmptf =
refCast<const tractionDisplacementFvPatchVectorField>(ptf);
traction_.rmap(dmptf.traction_, addr);
pressure_.rmap(dmptf.pressure_, addr);
}
// Update the coefficients associated with the patch field
void tractionDisplacementFvPatchVectorField::updateCoeffs()
{
if (updated())
{
return;
}
// Looking up rheology
const rheologyModel& rheology =
this->db().objectRegistry::lookupObject<rheologyModel>(rheologyName_);
const scalarField mu = rheology.mu()().boundaryField()[patch().index()];
const scalarField lambda =
rheology.lambda()().boundaryField()[patch().index()];
vectorField n = patch().nf();
const fvPatchField<tensor>& gradU =
lookupPatchField<volTensorField, tensor>("grad(" +UName_ + ")");
gradient() =
(
(traction_ - (pressure_)*n)
- (n & (mu*gradU.T() - (mu + lambda)*gradU))
- n*lambda*tr(gradU)
)/(2.0*mu + lambda);
fixedGradientFvPatchVectorField::updateCoeffs();
}
// Write
void tractionDisplacementFvPatchVectorField::write(Ostream& os) const
{
fvPatchVectorField::write(os);
os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl;
os.writeKeyword("rheology") << rheologyName_ << token::END_STATEMENT << nl;
traction_.writeEntry("traction", os);
pressure_.writeEntry("pressure", os);
writeEntry("value", os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField(fvPatchVectorField, tractionDisplacementFvPatchVectorField);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

View file

@ -3,18 +3,21 @@ cd ${0%/*} || exit 1 # run from this directory
set -x
wmake libso solidModels
wmake elasticContactIncrSolidFoam
wmake elasticContactNonLinULSolidFoam
wmake elasticContactSolidFoam
wmake elasticGravitySolidFoam
wmake elasticAcpSolidFoam
wmake elasticIncrAcpSolidFoam
wmake elasticIncrSolidFoam
wmake elasticNonLinIncrTLSolidFoam
wmake elasticNonLinTLSolidFoam
wmake elasticNonLinULSolidFoam
wmake elasticPlasticNonLinULSolidFoam
wmake elasticOrthoAcpSolidFoam
wmake elasticOrthoNonLinULSolidFoam
wmake elasticOrthoSolidFoam
wmake elasticPlasticSolidFoam
wmake elasticPlasticNonLinTLSolidFoam
wmake elasticPlasticNonLinULSolidFoam
wmake elasticSolidFoam
wmake elasticThermalSolidFoam
wmake icoFsiElasticNonLinULSolidFoam
wmake viscoElasticSolidFoam
(cd utilities; wmake all)

View file

@ -0,0 +1,19 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
set -x
wmake libso materialModels
wmake stressedFoam
wmake contactStressFoam
wmake newStressedFoam
wmake newContactStressFoam
wmake stressFemFoam
wmake icoFsiFoam
wmake solidDisplacementFoam
wmake solidEquilibriumDisplacementFoam

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
\*---------------------------------------------------------------------------*/
#include "error.H"

View file

@ -26,7 +26,7 @@ Class
contactPatchPair
Description
SourceFiles
contactPatchPair.C
contactPatchPairSlavePressure.C

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
\*---------------------------------------------------------------------------*/
#include "contactPatchPair.H"

View file

@ -23,7 +23,7 @@ License
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
\*---------------------------------------------------------------------------*/
#include "contactPatchPair.H"

View file

@ -26,7 +26,7 @@ Application
stressedFoam
Description
Transient/steady-state solver of linear-elastic, small-strain deformation
Transient/steady-state solver of linear-elastic, small-strain deformation
of solid bodies in contact.
Simple linear elasticity structural analysis code.

View file

@ -109,7 +109,7 @@
Info<< "Reading contact patch IDs etc.\n" << endl;
const dictionary& contactPatchDict
(
mesh.solutionDict().subDict("contactPatch")
mesh.solutionDict().subDict("contactPatch")
);
label gradPatch(readLabel(contactPatchDict.lookup("gradPatchID")));
label dirPatch(readLabel(contactPatchDict.lookup("dirPatchID")));

View file

@ -1,4 +1,4 @@
tractionDisplacement/tractionDisplacementFvPatchVectorField.C
icoFsiFoam.C
icoFsiFoam.C
EXE = $(FOAM_APPBIN)/icoFsiFoam

View file

@ -2,14 +2,15 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
$(WM_DECOMP_INC) \
-I$(LIB_SRC)/tetFiniteElement/lnInclude \
-I$(LIB_SRC)/dynamicMesh/meshMotion/tetMotionSolver/lnInclude \
-I$(LIB_SRC)/dynamicMesh/meshMotion/tetDecompositionMotionSolver/lnInclude \
EXE_LIBS = \
-lfiniteVolume \
-ldynamicFvMesh \
-ldynamicMesh \
-ltetFiniteElement \
-ltetMotionSolver \
-llduSolvers \
-L$(MESQUITE_LIB_DIR) -lmesquite
$(WM_DECOMP_LIBS) \
-llduSolvers

View file

@ -1,11 +1,11 @@
{
// Setting mesh motion
pointVectorField solidPointsDispl =
pointVectorField solidPointsDispl =
cpi.interpolate(Usolid - Usolid.oldTime());
vectorField newPoints =
stressMesh.points()
stressMesh.points()
+ solidPointsDispl.internalField();
stressMesh.movePoints(newPoints);
@ -28,8 +28,8 @@
# include "volContinuity.H"
Info << "Motion magnitude: mean = "
Info << "Motion magnitude: mean = "
<< average(mag(Usolid.boundaryField()[solidPatchID]))
<< " max = "
<< " max = "
<< max(mag(Usolid.boundaryField()[solidPatchID])) << endl;
}

View file

@ -9,7 +9,7 @@
);
solidPatchPressure *= rhoFluid.value();
tForce.pressure() = solidPatchPressure;
@ -20,6 +20,6 @@
mesh.Sf().boundaryField()[fluidPatchID]
);
Info << "Total pressure force = " << totalPressureForce << endl;
}

View file

@ -1,7 +1,7 @@
{
// SIMPLE loop
for (int corr = 0; corr < nCorr; corr++)
for (int corr=0; corr<nCorr; corr++)
{
fvVectorMatrix UEqn
(

View file

@ -169,7 +169,7 @@ void tractionDisplacementFvPatchVectorField::updateCoeffs()
vectorField n = patch().nf();
const fvPatchField<tensor>& gradU =
lookupPatchField<volTensorField, tensor>("grad(U)");
patch().lookupPatchField<volTensorField, tensor>("grad(U)");
gradient() =
(

View file

@ -16,7 +16,7 @@ $(rheologyLaws)/PronyViscoelastic/PronyViscoelastic.C
thermalModel/thermalModel.C
thermalLaws = thermalModel/thermalLaws
$(thermalLaws)/thermalLaw/thermalLaw.C
$(thermalLaws)/thermalLaw/thermalLaw.C
$(thermalLaws)/thermalLaw/newThermalLaw.C
$(thermalLaws)/constantThermal/constantThermal.C
$(thermalLaws)/multiMaterialThermal/multiMaterialThermal.C

View file

@ -71,7 +71,7 @@ public:
DugdaleCohesiveLaw
(
const word& cohesiveLawName,
const dictionary& dict
const dictionary& dict
);
//- Construct as copy

View file

@ -74,7 +74,7 @@ Foam::autoPtr<Foam::cohesiveLaw> Foam::cohesiveLaw::New
Foam::cohesiveLaw::cohesiveLaw
(
const word& cohesiveLawName,
const dictionary& dict
const dictionary& dict
)
:
cohesiveLawCoeffs_(dict.subDict(cohesiveLawName + "Coeffs")),

View file

@ -97,7 +97,7 @@ public:
static autoPtr<cohesiveLaw> New
(
const word& cohesiveLawName,
const dictionary& dict
const dictionary& dict
);
@ -107,7 +107,7 @@ public:
cohesiveLaw
(
const word& cohesiveLawName,
const dictionary& dict
const dictionary& dict
);
//- Construct as copy
@ -124,7 +124,7 @@ public:
// Member Functions
//- Return cohesive law coefficients
const dictionary& cohesiveLawCoeffs() const
{

View file

@ -71,7 +71,7 @@ public:
linearCohesiveLaw
(
const word& cohesiveLawName,
const dictionary& dict
const dictionary& dict
);
//- Construct as copy

View file

@ -245,7 +245,7 @@ void cohesiveLawFvPatchVectorField::write(Ostream& os) const
{
fvPatchVectorField::write(os);
traction_.writeEntry("traction", os);
os.writeKeyword("cohesiveLaw") << law().type()
os.writeKeyword("cohesiveLaw") << law().type()
<< token::END_STATEMENT << nl;
os.writeKeyword("relaxationFactor") << relaxationFactor_
<< token::END_STATEMENT << nl;

View file

@ -99,7 +99,7 @@ cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField
{
this->refValue() = vector::zero;
}
if (dict.found("refGradient"))
{
this->refGrad() = vectorField("refGradient", dict, p.size());
@ -111,7 +111,7 @@ cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField
if (dict.found("valueFraction"))
{
this->valueFraction() =
this->valueFraction() =
symmTensorField("valueFraction", dict, p.size());
}
else
@ -206,14 +206,14 @@ void cohesiveZoneFvPatchVectorField::updateCoeffs()
const rheologyModel& rheology =
this->db().objectRegistry::lookupObject<rheologyModel>(rheologyName_);
const scalarField mu =
const scalarField mu =
rheology.mu()().boundaryField()[patch().index()];
const scalarField lambda =
rheology.lambda()().boundaryField()[patch().index()];
const fvPatchField<tensor>& gradU =
lookupPatchField<volTensorField, tensor>
patch().lookupPatchField<volTensorField, tensor>
(
"grad(" +UName_ + ")"
);
@ -276,17 +276,17 @@ void cohesiveZoneFvPatchVectorField::updateCoeffs()
if(magSqr(valueFraction()[faceI]) < SMALL)
{
cohesiveTraction =
relaxationFactor_*cohesiveTraction
cohesiveTraction =
relaxationFactor_*cohesiveTraction
+ (1.0 - relaxationFactor_)*sigmaN[faceI]*n[faceI];
refGrad()[faceI] =
(
cohesiveTraction
- (
n[faceI]
n[faceI]
& (
mu[faceI]*gradU[faceI].T()
mu[faceI]*gradU[faceI].T()
- (mu[faceI] + lambda[faceI])*gradU[faceI]
)
)
@ -306,7 +306,7 @@ void cohesiveZoneFvPatchVectorField::write(Ostream& os) const
directionMixedFvPatchVectorField::write(os);
os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl;
os.writeKeyword("rheology") << rheologyName_ << token::END_STATEMENT << nl;
os.writeKeyword("cohesiveLaw") << law().type()
os.writeKeyword("cohesiveLaw") << law().type()
<< token::END_STATEMENT << nl;
os.writeKeyword("relaxationFactor") << relaxationFactor_
<< token::END_STATEMENT << nl;

View file

@ -174,7 +174,7 @@ public:
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;

View file

@ -195,7 +195,7 @@ void nusseltFvPatchScalarField::updateCoeffs()
// Lookup temperature diffusivity of the patch
const fvPatchField<scalar>& DT =
this->lookupPatchField<volScalarField, scalar>(DTName_);
this->patch().lookupPatchField<volScalarField, scalar>(DTName_);
// Calculate flux
scalarField tempFlux = alpha_*(Tinternal - Tinf_);

View file

@ -68,7 +68,6 @@ tractionDisplacementFvPatchVectorField
traction_("traction", dict, p.size()),
pressure_("pressure", dict, p.size())
{
Info << "creating tractionDisplacement boundary" << endl;
fvPatchVectorField::operator=(patchInternalField());
gradient() = vector::zero;
Info << "rf: " << rheologyName_ << endl;
@ -182,6 +181,7 @@ void tractionDisplacementFvPatchVectorField::updateCoeffs()
fixedGradientFvPatchVectorField::updateCoeffs();
}
// Write
void tractionDisplacementFvPatchVectorField::write(Ostream& os) const
{

View file

@ -180,7 +180,7 @@ void tractionDisplacementThermoFvPatchVectorField::updateCoeffs()
vectorField n = patch().nf();
const fvPatchField<tensor>& gradU =
lookupPatchField<volTensorField, tensor>("grad(" +UName_ + ")");
patch().lookupPatchField<volTensorField, tensor>("grad(" +UName_ + ")");
// Thermal component
@ -189,7 +189,7 @@ void tractionDisplacementThermoFvPatchVectorField::updateCoeffs()
this->db().objectRegistry::lookupObject<thermalModel>(thermoName_);
const fvPatchField<scalar>& T =
lookupPatchField<volScalarField, scalar>(TName_);
patch().lookupPatchField<volScalarField, scalar>(TName_);
const scalarField rhoThreeKalpha =
rheology.rho()().boundaryField()[patch().index()]*

View file

@ -107,7 +107,7 @@ Foam::tmp<Foam::volScalarField> Foam::BurgersViscoelastic::E(scalar t) const
+ eta2_.value()/k2_.value();
scalar p2 = eta1_.value()*eta2_.value()/(k1_.value()*k2_.value());
scalar q1 = eta1_.value();
scalar q2 = eta1_.value()*eta2_.value()/k2_.value();
@ -120,7 +120,7 @@ Foam::tmp<Foam::volScalarField> Foam::BurgersViscoelastic::E(scalar t) const
E = (q1 - q2*r1)*exp(-r1*t)/A - (q1 - q2*r2)*exp(-r2*t)/A;
}
tmp<volScalarField> tresult
(
@ -178,7 +178,7 @@ Foam::tmp<Foam::volScalarField> Foam::BurgersViscoelastic::J(scalar t) const
if(t >= 0)
{
J = 1.0/k1_.value()
J = 1.0/k1_.value()
+ (1 - exp(-k2_.value()*t/eta2_.value()))/k2_.value()
+ t/eta1_.value();
}

View file

@ -102,14 +102,14 @@ Foam::tmp<Foam::volScalarField> Foam::KelvinSLSViscoelastic::E(scalar t) const
if(t>=0)
{
scalar p1 = eta2_.value()/(k1_.value() + k2_.value());
scalar q0 = k1_.value()*k2_.value()/(k1_.value() + k2_.value());
scalar q1 = k1_.value()*eta2_.value()/(k1_.value() + k2_.value());
E = q0 + (q1/p1 - q0)*exp(-t/p1);
}
tmp<volScalarField> tresult
(
@ -168,7 +168,7 @@ Foam::tmp<Foam::volScalarField> Foam::KelvinSLSViscoelastic::J(scalar t) const
if(t >= 0)
{
scalar p1 = eta2_.value()/(k1_.value() + k2_.value());
scalar q0 = k1_.value()*k2_.value()/(k1_.value() + k2_.value());
scalar q1 = k1_.value()*eta2_.value()/(k1_.value() + k2_.value());

View file

@ -183,8 +183,8 @@ Foam::MaxwellElasticViscoelastic::J(scalar t) const
mesh(),
dimensionedScalar
(
"J",
dimless/k_.dimensions(),
"J",
dimless/k_.dimensions(),
1.0/k_.value() + t/eta_.value()
),
zeroGradientFvPatchScalarField::typeName

View file

@ -101,7 +101,7 @@ Foam::tmp<Foam::volScalarField> Foam::MaxwellSLSViscoelastic::E(scalar t) const
{
E = k2_.value() + k1_.value()*exp(-k1_.value()*t/eta1_.value());
}
tmp<volScalarField> tresult
(

View file

@ -169,8 +169,8 @@ Foam::tmp<Foam::volScalarField> Foam::MaxwellViscoelastic::J(scalar t) const
mesh(),
dimensionedScalar
(
"J",
dimless/k_.dimensions(),
"J",
dimless/k_.dimensions(),
1.0/k_.value() + t/eta_.value()
),
zeroGradientFvPatchScalarField::typeName

View file

@ -105,7 +105,7 @@ Foam::tmp<Foam::volScalarField> Foam::PronyViscoelastic::E(scalar t) const
{
E += k_[i]*exp(-t/tau_[i]);
}
if(t < 0)
{
E = 0;
@ -162,7 +162,7 @@ Foam::tmp<Foam::volScalarField> Foam::PronyViscoelastic::nu(scalar t) const
Foam::tmp<Foam::volScalarField> Foam::PronyViscoelastic::J(scalar t) const
{
notImplemented(type() + "::J(scalar t)");
return 1.0/E(t);
}

View file

@ -104,7 +104,7 @@ Foam::contactPatchPair::contactPatchPair
cp.mesh().boundaryMesh()[slavePatch_.index()], // to patch
intersection::algorithmNames_.read(dict.lookup("projectionAlgo")),
intersection::directionNames_.read(dict.lookup("projectionDir"))
),
slaveToMasterInterpolate_
(
@ -112,7 +112,7 @@ Foam::contactPatchPair::contactPatchPair
cp.mesh().boundaryMesh()[masterPatch_.index()], // to patch
intersection::algorithmNames_.read(dict.lookup("projectionAlgo")),
intersection::directionNames_.read(dict.lookup("projectionDir"))
)
{}

View file

@ -241,7 +241,7 @@ void contactProblem::correct()
(
lambdaPatches[patchI]*tr(gradUpatches[patchI])
)
)/(2.0*muPatches[patchI] + lambdaPatches[patchI]);
// Set the value fractions

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