1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
28 Linear shaped cohesive law
29 The stress descreases linearly with displacement (for pure mode I/II).
37 \*---------------------------------------------------------------------------*/
39 #ifndef linearCohesiveLaw_H
40 #define linearCohesiveLaw_H
42 #include "cohesiveLaw.H"
43 #include "volFields.H"
44 #include "surfaceFields.H"
45 #include "PtrDictionary.H"
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
52 /*---------------------------------------------------------------------------*\
53 Class linearCohesiveLaw Declaration
54 \*---------------------------------------------------------------------------*/
56 class linearCohesiveLaw
65 //- Criticial fracture energy mode I
66 dimensionedScalar GIc_;
68 //- Critical fracture energy mode II
69 dimensionedScalar GIIc_;
71 //- Maximum opening cohesive strength
72 dimensionedScalar sigmaMax_;
74 //- Maximum shearing cohesive strength
75 dimensionedScalar tauMax_;
78 // Private Member Functions
80 //- Disallow default bitwise copy construct
81 linearCohesiveLaw(const linearCohesiveLaw&);
83 //- Disallow default bitwise assignment
84 void operator=(const linearCohesiveLaw&);
88 //- Runtime type information
91 // Static data members
96 //- Construct from dictionary
100 const volSymmTensorField& sigma,
101 const dictionary& dict
107 virtual ~linearCohesiveLaw();
112 //- return materials;
113 virtual tmp<volScalarField> materials() const;
115 //- Return opening cohesive strength - surface field
116 virtual scalar sigmaMaxValue() const
118 return sigmaMax_.value();
120 virtual tmp<surfaceScalarField> sigmaMax() const;
122 //- Return shearing cohesive strength - surface field
123 virtual scalar tauMaxValue() const
125 return tauMax_.value();
127 virtual tmp<surfaceScalarField> tauMax() const;
129 //- Return Mode I fracture energy
130 virtual scalar GIcValue() const
134 virtual tmp<surfaceScalarField> GIc() const;
136 //- Return Mode II fracture energy
137 virtual scalar GIIcValue() const
139 return GIIc_.value();
141 virtual tmp<surfaceScalarField> GIIc() const;
143 //- Return normal traction (during damage) given current deltas
144 //virtual scalar normalTraction(scalar deltaN, scalar deltaS) const;
146 //- Return shear traction (during damage) given current deltas
147 //virtual scalar shearTraction(scalar deltaN, scalar deltaS) const;
149 //- Return tractions during damage given current deltas and Gs
150 virtual void damageTractions
152 scalar& tN, // current normal traction
153 scalar& tS, // current shear traction
154 const scalar deltaN, // current deltaN
155 const scalar deltaS, // current deltaS
156 const scalar GI, // current dissipated GI
157 const scalar GII, // current dissipated GII
158 const label faceID, // needed for multi-mat
159 const scalarField& globalPatchMaterials
162 //- Calculate tractions
163 virtual tmp<surfaceVectorField> interfaceTraction
165 surfaceVectorField n,
167 volTensorField gradU,
169 volScalarField lambda
172 //- Correct the rheological model
173 virtual void correct()
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 } // End namespace Foam
182 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 // ************************************************************************* //