From ab6cd72839c15aa130fc6e9a2c50427fc36ac31e Mon Sep 17 00:00:00 2001 From: Philip Cardiff Date: Fri, 11 Oct 2013 14:31:14 +0100 Subject: [PATCH] Rearranging solidMechanics solvers and src, and added wmake darwin rules --- .../solvers/newStressAnalysis/Allwmake | 9 - .../materialModels/Make/files | 35 - .../materialModels/Make/options | 5 - .../cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C | 88 -- .../cohesiveLaws/cohesiveLaw/cohesiveLaw.C | 112 -- .../cohesiveLaws/cohesiveLaw/cohesiveLaw.H | 165 -- .../componentReference/componentReference.H | 237 --- .../componentReferenceList.H | 56 - .../cohesiveLawFvPatchVectorField.C | 265 ---- .../cohesiveZoneFvPatchVectorField.C | 325 ---- .../newDirectionMixedFvPatchField.C | 328 ---- .../newDirectionMixedFvPatchField.H | 302 ---- .../nusselt/nusseltFvPatchScalarField.C | 243 --- .../nusselt/nusseltFvPatchScalarField.H | 201 --- .../tractionDisplacementFvPatchVectorField.C | 205 --- .../tractionDisplacementFvPatchVectorField.H | 199 --- ...tionDisplacementThermoFvPatchVectorField.C | 243 --- ...tionDisplacementThermoFvPatchVectorField.H | 201 --- .../BurgersViscoelastic/BurgersViscoelastic.C | 210 --- .../BurgersViscoelastic/BurgersViscoelastic.H | 154 -- .../KelvinSLSViscoelastic.C | 203 --- .../MaxwellElasticViscoelastic.C | 204 --- .../MaxwellElasticViscoelastic.H | 148 -- .../MaxwellSLSViscoelastic.C | 197 --- .../MaxwellSLSViscoelastic.H | 150 -- .../MaxwellViscoelastic/MaxwellViscoelastic.C | 190 --- .../PronyViscoelastic/PronyViscoelastic.C | 170 --- .../PronyViscoelastic/PronyViscoelastic.H | 153 -- .../linearElastic/linearElastic.C | 148 -- .../multiMaterial/multiMaterial.C | 261 ---- .../rheologyModel/rheologyModel.C | 282 ---- .../rheologyModel/rheologyModel.H | 158 -- .../newContactStressFoam/Make/files | 5 - .../newContactStressFoam/Make/options | 11 - .../calculateContactArea.H | 5 - .../newContactStressFoam/contactPatchPair.C | 447 ------ .../newContactStressFoam/contactPatchPair.H | 178 --- .../contactPatchPairList.H | 56 - .../newContactStressFoam/contactProblem.C | 336 ----- .../newContactStressFoam/contactProblem.H | 161 -- .../newContactStressFoam/createFields.H | 38 - .../newContactStressFoam.C | 120 -- .../newStressedFoam/Make/files | 3 - .../newStressedFoam/Make/options | 8 - .../newStressedFoam/calculateSigma.H | 1 - .../newStressedFoam/calculateStress.H | 101 -- .../newStressedFoam/createFields.H | 29 - .../newStressedFoam/newStressedFoam.C | 115 -- .../readStressedFoamControls.H | 11 - .../elasticAcpSolidFoam/Make/files | 3 + .../elasticAcpSolidFoam/Make/options | 16 + .../elasticAcpSolidFoam/aitkenRelaxation.H | 35 + .../calculateDivSigmaExp.H | 49 + .../calculateEpsilonSigma.H | 0 .../calculateForceResidual.H | 19 + .../calculateRelativeResidual.H | 12 + .../elasticAcpSolidFoam/calculateTraction.H | 41 + .../checkCohesivePatchOrdering.H | 22 + .../elasticAcpSolidFoam/createCrack.H | 226 +++ .../elasticAcpSolidFoam/createCrackerMesh.H} | 7 +- .../elasticAcpSolidFoam/createFields.H | 148 ++ .../elasticAcpSolidFoam/createHistory.H | 30 + .../elasticAcpSolidFoam/createReference.H | 7 + .../elasticAcpSolidFoam/elasticAcpSolidFoam.C | 257 ++++ .../elasticAcpSolidFoam/initialiseSolution.H | 136 ++ .../readDivSigmaExpMethod.H | 6 +- .../readStressedFoamControls.H | 19 + .../setComponentReference.H | 0 .../elasticAcpSolidFoam/setDeltaT.H | 36 + .../elasticAcpSolidFoam/setReference.H | 36 + .../elasticAcpSolidFoam/updateCrack.H | 564 +++++++ ...dateCrackPropagationPatchesInternalFaces.H | 87 ++ .../elasticAcpSolidFoam/updateReference.H | 60 + .../elasticAcpSolidFoam/waveCourantNo.H | 17 + .../elasticAcpSolidFoam/writeFields.H | 149 ++ .../elasticAcpSolidFoam/writeHistory.H | 40 + .../elasticContactIncrSolidFoam/Make/files | 3 - .../elasticContactIncrSolidFoam/Make/options | 14 - .../Make/options_myLib | 15 - .../Make/options_old | 9 - .../calculateDivDSigmaExp.H | 47 - .../correctGlobalFaceZoneMesh.H | 153 -- .../createGlobalToLocalFaceZonePointMap.H | 138 -- .../createSolidInterface.H | 25 - .../elasticContactIncrSolidFoam.C | 220 --- .../moveSolidMesh.H | 28 - .../printContactResults.H | 55 - .../readContactControls.H | 16 - .../readDivDSigmaExpMethod.H | 15 - .../readStressedFoamControls.H | 7 - .../writeBoundaryNetForces.H | 14 - .../elasticContactIncrSolidFoam/writeFields.H | 78 - .../Make/files | 3 - .../Make/options | 14 - .../Make/options_myLib | 15 - .../Make/options_old | 9 - .../calculateDEpsilonDSigma.H | 3 - .../calculateDivDSigmaExp.H | 47 - .../calculateDivDSigmaExpLargeStrain.H | 34 - .../calculateExtrapolationVectors.H | 72 - .../calculatePointBoundaryWeights.H | 123 -- .../correctGlobalFaceZoneMesh.H | 153 -- .../createGlobalToLocalFaceZonePointMap.H | 135 -- .../elasticContactNonLinULSolidFoam.C | 202 --- .../findBoundaryPoints.H | 39 - .../moveMesh.H | 15 - .../moveMeshInverseDistance.H | 65 - .../moveMeshLeastSquares.H | 55 - .../moveSolidMeshForContact.H | 27 - ...erformEdgeCorrectedVolPointInterpolation.H | 139 -- .../printContactResults.H | 55 - .../readContactControls.H | 16 - .../readDivDSigmaExpMethod.H | 15 - .../readDivDSigmaLargeStrainMethod.H | 10 - .../readMoveMeshMethod.H | 10 - .../rotateFields.H | 24 - .../writeBoundaryNetForces.H | 14 - .../writeFields.H | 36 - .../elasticContactSolidFoam/Make/files | 3 - .../elasticContactSolidFoam/Make/options | 14 - .../Make/options_myLib | 15 - .../elasticContactSolidFoam/Make/options_old | 9 - .../calculateDivSigmaExp.H | 46 - .../correctGlobalFaceZoneMesh.H | 153 -- .../createGlobalToLocalFaceZonePointMap.H | 135 -- .../elasticContactSolidFoam.C | 206 --- .../moveMeshLeastSquares.H | 55 - .../elasticContactSolidFoam/moveSolidMesh.H | 30 - .../printContactResults.H | 55 - .../readContactControls.H | 16 - .../readStressedFoamControls.H | 7 - .../writeBoundaryNetForces.H | 14 - .../elasticContactSolidFoam/writeFields.H | 36 - .../elasticGravitySolidFoam/Make/options | 16 +- .../calculateDivSigmaExp.H | 85 +- .../elasticGravitySolidFoam/createFields.H | 20 +- .../elasticGravitySolidFoam.C | 170 +-- .../readDivSigmaExpMethod.H | 16 +- .../elasticGravitySolidFoam/writeFields.H | 56 +- .../elasticIncrAcpSolidFoam/Make/files | 3 + .../elasticIncrAcpSolidFoam/Make/options | 16 + .../aitkenRelaxation.H | 35 + .../calculateDEpsilonDSigma.H | 0 .../calculateDivDSigmaExp.H | 49 + .../calculateForceResidual.H | 19 + .../calculateRelativeResidual.H | 15 + .../calculateTraction.H | 41 + .../checkCohesivePatchOrdering.H | 22 + .../elasticIncrAcpSolidFoam/createCrack.H | 245 +++ .../createCrackerMesh.H | 10 + .../elasticIncrAcpSolidFoam/createFields.H | 166 ++ .../elasticIncrAcpSolidFoam/createHistory.H | 18 + .../elasticIncrAcpSolidFoam/createReference.H | 7 + .../elasticIncrAcpSolidFoam.C | 233 +++ .../initialiseSolution.H | 136 ++ .../readDivDSigmaExpMethod.H | 9 + .../readStressedFoamControls.H | 21 + .../setComponentReference.H | 10 + .../elasticIncrAcpSolidFoam/setDeltaT.H | 36 + .../elasticIncrAcpSolidFoam/setReference.H | 36 + .../elasticIncrAcpSolidFoam/updateCrack.H | 605 ++++++++ ...dateCrackPropagationPatchesInternalFaces.H | 87 ++ .../elasticIncrAcpSolidFoam/updateReference.H | 60 + .../elasticIncrAcpSolidFoam/waveCourantNo.H | 17 + .../elasticIncrAcpSolidFoam/writeFields.H | 173 +++ .../elasticIncrAcpSolidFoam/writeHistory.H | 40 + .../elasticIncrSolidFoam/Make/options | 18 +- .../calculateDivDSigmaExp.H | 86 +- .../elasticIncrSolidFoam/calculateNetForces.H | 4 +- .../elasticIncrSolidFoam/createFields.H | 22 +- .../elasticIncrSolidFoam.C | 179 ++- .../readDivDSigmaExpMethod.H | 16 +- .../readStressedFoamControls.H | 2 + .../elasticIncrSolidFoam/writeFields.H | 56 +- .../writeForceDisplacement.H | 33 +- .../elasticNonLinIncrTLSolidFoam/Make/files | 3 + .../elasticNonLinIncrTLSolidFoam/Make/options | 16 + .../calculateDEpsilonDSigma.H | 5 + .../calculateRelativeResidual.H | 0 .../createFields.H | 61 +- .../elasticNonLinIncrTLSolidFoam.C | 149 ++ .../readStressedFoamControls.H | 0 .../writeFields.H | 109 ++ .../elasticNonLinTLSolidFoam/Make/options | 19 +- .../correctDirectionMixedTL.H | 58 +- .../elasticNonLinTLSolidFoam/createFields.H | 23 +- .../createForceDisplacementFile.H | 8 + .../createSolidInterfaceNonLin.H | 21 + .../elasticNonLinTLSolidFoam.C | 186 +-- .../moveMeshLeastSquares.H | 59 +- .../elasticNonLinTLSolidFoam/writeFields.H | 222 ++- .../writeForceDisplacement.H | 44 + .../elasticNonLinULSolidFoam/Make/options | 15 +- .../calculateDivDSigmaExp.H | 86 +- .../calculateDivDSigmaLargeStrainExp.H | 51 +- .../calculateExtrapolationVectors.H | 95 +- .../calculatePointBoundaryWeights.H | 206 ++- .../elasticNonLinULSolidFoam/createFields.H | 68 +- .../createForceDisplacementFile.H | 8 + .../createSolidInterface.H | 34 +- .../createSolidInterfaceNonLin.H | 22 + .../elasticNonLinULSolidFoam.C | 211 ++- .../findBoundaryPoints.H | 16 +- .../elasticNonLinULSolidFoam/moveMesh.H | 26 +- .../moveMeshInverseDistance.H | 65 +- .../moveMeshLeastSquares.H | 65 +- ...erformEdgeCorrectedVolPointInterpolation.H | 152 +- .../readDivDSigmaExpMethod.H | 19 +- .../elasticNonLinULSolidFoam/rotateFields.H | 22 +- .../elasticNonLinULSolidFoam/writeFields.H | 96 +- .../writeForceDisplacement.H | 41 + .../elasticOrthoAcpSolidFoam/Make/files | 3 + .../elasticOrthoAcpSolidFoam/Make/options | 16 + .../aitkenRelaxation.H | 35 + .../calculateDivSigmaExp.H | 25 + .../calculateEpsilonSigma.H | 5 + .../calculateForceResidual.H | 19 + .../calculateRelativeResidual.H | 12 + .../calculateTraction.H | 41 + .../checkCohesivePatchOrdering.H | 22 + .../elasticOrthoAcpSolidFoam/createCrack.H | 225 +++ .../createCrackerMesh.H | 10 + .../elasticOrthoAcpSolidFoam/createFields.H | 148 ++ .../elasticOrthoAcpSolidFoam/createHistory.H | 22 + .../createReference.H | 7 + .../elasticOrthoAcpSolidFoam.C | 259 ++++ .../initialiseSolution.H | 136 ++ .../readDivSigmaExpMethod.H | 10 + .../readStressedFoamControls.H | 18 + .../setComponentReference.H | 10 + .../elasticOrthoAcpSolidFoam/setDeltaT.H | 36 + .../elasticOrthoAcpSolidFoam/setReference.H | 36 + .../elasticOrthoAcpSolidFoam/updateCrack.H | 568 +++++++ ...dateCrackPropagationPatchesInternalFaces.H | 87 ++ .../updateReference.H | 60 + .../elasticOrthoAcpSolidFoam/waveCourantNo.H | 17 + .../elasticOrthoAcpSolidFoam/writeFields.H | 149 ++ .../elasticOrthoAcpSolidFoam/writeHistory.H | 37 + .../elasticOrthoNonLinULSolidFoam/Make/files | 3 + .../Make/options | 16 + .../checkPlaneStress.H | 27 + .../createFields.H | 77 +- .../createForceDisplacementFile.H | 8 + .../elasticOrthoNonLinULSolidFoam.C | 186 +++ .../moveMeshLeastSquares.H | 61 +- .../readStressedFoamControls.H | 7 + .../rotateFields.H | 49 + .../writeFields.H | 72 + .../writeForceDisplacement.H | 40 + .../elasticOrthoSolidFoam/Make/files | 3 + .../elasticOrthoSolidFoam/Make/options | 16 + .../calculateDivSigmaExp.H | 25 + .../calculateEpsilonSigma.H | 5 + .../calculateRelativeResidual.H | 0 .../createFields.H | 41 +- .../elasticOrthoSolidFoam/createHistory.H | 30 + .../createSolidInterfaceOrthotropic.H | 27 + .../elasticOrthoSolidFoam.C | 161 ++ .../readDivSigmaExpMethod.H | 9 + .../readStressedFoamControls.H | 6 + .../setPlaneStressGradU.H | 13 + .../elasticOrthoSolidFoam/writeFields.H | 38 + .../elasticOrthoSolidFoam/writeHistory.H | 40 + .../Make/files | 3 + .../Make/options | 16 + .../aitkenRelaxation.H | 40 + .../calculateDEpsilonDSigma.H | 5 + .../calculateDivDSigmaExp.H | 67 + .../calculateDivDSigmaNonLinExp.H | 63 + .../calculateRelativeResidual.H | 35 + .../calculateThirdOrderDissipativeTerm.H | 265 ++++ .../createFields.H | 195 +++ .../createHistory.H | 36 + .../elasticPlasticNonLinTLSolidFoam.C | 208 +++ .../readDivDSigmaExpMethod.H | 9 + .../readDivDSigmaNonLinExpMethod.H | 9 + .../readStressedFoamControls.H | 10 + .../writeFields.H | 100 ++ .../writeHistory.H | 45 + .../Make/options | 14 +- .../aitkenRelaxation.H | 40 + .../calculateDEpsilonDSigma.H | 3 +- .../calculateDivDSigmaExp.H | 86 +- .../calculateDivDSigmaNonLinExp.H | 34 + .../calculateExtrapolationVectors.H | 95 +- .../calculatePointBoundaryWeights.H | 206 ++- .../calculateRelativeResidual.H | 4 +- .../createFields.H | 181 ++- .../createForceDisplacementFile.H | 8 + .../createHistory.H | 36 + .../createSolidInterface.H | 34 +- .../createSolidInterfaceNonLin.H | 29 + .../elasticPlasticNonLinULSolidFoam.C | 283 ++-- .../findBoundaryPoints.H | 34 +- .../moveMesh.H | 24 +- .../moveMeshInverseDistance.H | 68 +- .../moveMeshLeastSquares.H | 79 +- ...erformEdgeCorrectedVolPointInterpolation.H | 152 +- .../readDivDSigmaExpMethod.H | 19 +- .../readDivDSigmaNonLinExpMethod.H | 9 + .../readStressedFoamControls.H | 17 +- .../rotateFields.H | 30 +- .../writeFields.H | 148 +- .../writeForceDisplacement.H | 41 + .../writeHistory.H | 49 + .../elasticPlasticSolidFoam/Make/options | 12 +- .../aitkenRelaxation.H | 40 + .../calculateDEpsilonDSigma.H | 3 +- .../calculateDivDSigmaExp.H | 91 +- .../calculateRelativeResidual.H | 24 + .../elasticPlasticSolidFoam/createFields.H | 56 +- .../elasticPlasticSolidFoam/createHistory.H | 36 + .../createSolidInterface.H | 24 +- .../elasticPlasticSolidFoam.C | 252 ++-- .../readDivDSigmaExpMethod.H | 16 +- .../readStressedFoamControls.H | 20 +- .../elasticPlasticSolidFoam/writeFields.H | 100 +- .../elasticPlasticSolidFoam/writeHistory.H | 43 + .../elasticSolidFoam/Make/options | 16 +- .../elasticSolidFoam/aitkenRelaxation.H | 36 + .../elasticSolidFoam/calculateDivSigmaExp.H | 86 +- .../elasticSolidFoam/calculateForceResidual.H | 19 + .../calculateRelativeResidual.H | 35 +- .../calculateThirdOrderDissipativeTerm.H | 265 ++++ .../elasticSolidFoam/createFields.H | 118 +- .../elasticSolidFoam/createHistory.H | 22 + .../createSolidInterface_orig.H | 53 + .../elasticSolidFoam/elasticSolidFoam.C | 224 +-- .../elasticSolidFoam/readDivSigmaExpMethod.H | 4 +- .../readStressedFoamControls.H | 19 +- .../elasticSolidFoam/writeFields.H | 128 +- .../elasticSolidFoam/writeHistory.H | 45 + .../elasticThermalSolidFoam/Make/options | 16 +- .../aitkenRelaxation.H | 35 + .../calculateDivSigmaExp.H | 54 + .../calculateRelResT.H | 10 + .../calculateRelResU.H | 10 + .../elasticThermalSolidFoam/createFields.H | 81 +- .../elasticThermalSolidFoam.C | 223 +-- .../readDivSigmaExpMethod.H | 11 + .../readStressedFoamControls.H | 15 +- .../elasticThermalSolidFoam/writeFields.H | 56 +- .../Make/options | 16 +- .../calcFsiResidual.H | 12 +- .../calculateLiftAndDrag.H | 32 +- .../createInterfaceFields.H | 4 +- .../createStressFields.H | 42 +- .../createStressPointMesh.H | 6 +- .../createZoneToZoneInterpolators.H | 32 +- .../icoFsiElasticNonLinULSolidFoam.C | 10 +- .../moveFluidMesh.H | 28 +- .../moveSolidMesh.H_old | 2 +- .../moveSolidMeshLeastSquares.H | 53 +- .../readCouplingProperties.H | 32 +- .../readFsiControls.H | 8 +- .../rotateSolidFields.H | 8 +- .../setInterfaceDisplacement.H | 12 +- .../setInterfaceForce.H | 12 +- .../solveSolidBackward.H | 8 +- .../solveSolidEuler.H | 8 +- ...ionalParabolicVelocityFvPatchVectorField.C | 2 +- ...ionalParabolicVelocityFvPatchVectorField.H | 2 +- .../solvers/solidMechanics/readMe.txt | 44 +- .../solidMechanics/solidModels/Make/files | 59 - .../solidMechanics/solidModels/Make/options | 13 - .../bilinear/bilinearCohesiveLaw.C | 98 -- .../cohesiveLaws/cohesiveLaw/cohesiveLaw.C | 116 -- .../cohesiveLaws/cohesiveLaw/cohesiveLaw.H | 165 -- .../cohesiveLaws/linear/linearCohesiveLaw.C | 88 -- .../cohesiveLaws/linear/linearCohesiveLaw.H | 113 -- .../componentReference/componentReference.H | 237 --- .../componentReferenceList.H | 56 - .../contactModel/contactPatchPair.C | 440 ------ .../contactModel/contactPatchPair.H | 252 ---- .../contactModel/contactPatchPairCorrect.C | 295 ---- .../solidModels/contactModel/contactProblem.C | 336 ----- .../solidModels/contactModel/contactProblem.H | 158 -- .../cohesiveLawFvPatchVectorField.C | 265 ---- .../cohesiveLawFvPatchVectorField.H | 183 --- .../cohesiveZoneFvPatchVectorField.C | 327 ---- ...ohesiveZoneIncrementalFvPatchVectorField.C | 471 ------ ...dDisplacementZeroShearFvPatchVectorField.C | 336 ----- .../tractionDisplacementFvPatchVectorField.C | 205 --- .../tractionDisplacementFvPatchVectorField.H | 199 --- .../leastSquaresVolPointInterpolation.C | 387 ----- .../plasticityModel/plasticityModel.C | 465 ------ .../BurgersViscoelastic/BurgersViscoelastic.C | 256 ---- .../KelvinSLSViscoelastic.C | 249 --- .../KelvinSLSViscoelastic.H | 166 -- .../MaxwellElasticViscoelastic.C | 250 --- .../MaxwellElasticViscoelastic.H | 164 -- .../MaxwellSLSViscoelastic.C | 243 --- .../MaxwellSLSViscoelastic.H | 166 -- .../MaxwellViscoelastic/MaxwellViscoelastic.H | 164 -- .../elasticNLPlastic/elasticNLPlastic.C | 240 --- .../elasticNLPlastic/elasticNLPlastic.H | 173 --- .../nonLinearElasticPlastic.C | 282 ---- .../nonLinearElasticPlastic.H | 169 --- .../solidModels/rheologyModel/rheologyModel.C | 355 ----- .../solidModels/rheologyModel/rheologyModel.H | 182 --- .../solidInterface/solidInterface.C | 1342 ----------------- .../solidInterface/solidInterface.H | 202 --- .../constantThermal/constantThermal.C | 170 --- .../multiMaterialThermal.C | 294 ---- .../solidModels/thermalModel/thermalModel.H | 149 -- .../calculateCourantNumber/Make/files | 3 + .../calculateCourantNumber/Make/options | 16 + .../calculateCourantNumber.C | 119 ++ .../utilities/forceDisp/Make/files | 3 + .../utilities/forceDisp}/Make/options | 4 +- .../utilities/forceDisp/forceDisp.C | 179 +++ .../utilities/patchStressIntegrate/Make/files | 3 + .../patchStressIntegrate}/Make/options | 4 +- .../patchStressIntegrate.C | 221 +++ .../utilities/smoothMesh/Make/files | 3 + .../utilities/smoothMesh/Make/options | 10 + .../utilities/smoothMesh/smoothMesh.C | 301 ++++ .../utilities/surfaceTractions/Make/files | 3 + .../utilities/surfaceTractions/Make/options | 6 + .../surfaceTractions/surfaceTractions.C | 178 +++ .../viscoElasticSolidFoam/Make/files | 2 +- .../viscoElasticSolidFoam/Make/options | 19 +- .../viscoElasticSolidFoam/calcInitialState.H | 88 ++ .../calcResidual.H} | 2 +- .../viscoElasticSolidFoam/calculateDSigma.H | 5 + .../viscoElasticSolidFoam/calculateSigma.H | 87 ++ .../viscoElasticSolidFoam/createFields.H | 29 +- .../viscoElasticSolidFoam/createFluid.H | 50 + .../viscoElasticSolidFoam/createHistory.H | 36 + .../readStressedFoamControls.H | 4 + .../setInterfaceTraction.H | 46 + .../viscoElasticSolidFoam/setRootCase.H | 11 + .../updateBoundaryConditions.H | 63 + .../viscoElasticSolidFoam/updateCrack.H | 20 + .../updateLoadingPatchDisplacementIncrement.H | 93 ++ .../updateLoadingPatchTraction.H | 81 + ...updateTractionFreePatchTractionIncrement.H | 52 + .../viscoElasticSolidFoam.C | 166 +- .../viscoElasticSolidFoam/writeFields.H | 149 +- .../viscoElasticSolidFoam/writeHistory.H | 43 + .../contactStressFoam/Make/files | 6 - .../contactStressFoam/Make/options | 6 - .../calculatePatchTraction.H | 26 - .../contactStressFoam/calculateStress.H | 106 -- .../contactStressFoam/contactBoundaries.H | 86 -- .../contactStressFoam/contactPatchPair.C | 81 - .../contactStressFoam/contactPatchPair.H | 144 -- .../contactPatchPairUpdateContact.C | 105 -- .../contactStressFoam/contactStressFoam.C | 120 -- .../contactStressFoam/createFields.H | 140 -- .../contactStressFoam/traction.H | 17 - .../contactStressFoam/tractionBoundaries.H | 46 - .../stressAnalysis/icoFsiFoam/Make/files | 4 - .../stressAnalysis/icoFsiFoam/Make/options | 15 - .../stressAnalysis/icoFsiFoam/createFields.H | 59 - .../icoFsiFoam/createStressFields.H | 13 - .../stressAnalysis/icoFsiFoam/icoFsiFoam.C | 98 -- .../icoFsiFoam/readCouplingProperties.H | 85 -- .../icoFsiFoam/readMechanicalProperties.H | 41 - .../icoFsiFoam/readStressedFoamControls.H | 5 - .../stressAnalysis/icoFsiFoam/setMotion.H | 35 - .../stressAnalysis/icoFsiFoam/setPressure.H | 25 - .../stressAnalysis/icoFsiFoam/solveFluid.H | 52 - .../stressAnalysis/icoFsiFoam/solveSolid.H | 26 - .../tractionDisplacementFvPatchVectorField.C | 203 --- .../solidDisplacementFoam/Make/files | 4 - .../solidDisplacementFoam/calculateStress.H | 39 - .../solidDisplacementFoam/createFields.H | 74 - .../readMechanicalProperties.H | 44 - .../readSolidDisplacementFoamControls.H | 5 - .../readThermalProperties.H | 46 - .../solidDisplacementFoam.C | 138 -- .../tractionDisplacementFvPatchVectorField.C | 217 --- .../tractionDisplacementFvPatchVectorField.H | 188 --- .../Make/files | 4 - .../Make/options | 8 - .../calculateStress.H | 33 - .../createFields.H | 54 - .../kineticEnergyLimiter.H | 19 - .../readSteadyStressFoamControls.H | 3 - .../solidEquilibriumDisplacementFoam.C | 96 -- ...DisplacementCorrectionFvPatchVectorField.C | 208 --- ...DisplacementCorrectionFvPatchVectorField.H | 186 --- .../stressAnalysis/stressFemFoam/Make/files | 4 - .../stressAnalysis/stressFemFoam/Make/options | 9 - .../stressFemFoam/calculateStress.H | 53 - .../stressFemFoam/createFemFields.H | 13 - .../stressFemFoam/createFemMesh.H | 2 - .../Traction/TractionPointPatchVectorField.C | 303 ---- .../Traction/TractionPointPatchVectorField.H | 214 --- .../stressFemFoam/readControls.H | 2 - .../stressFemFoam/readMechanicalProperties.H | 42 - .../stressFemFoam/stressFemFoam.C | 87 -- .../stressAnalysis/stressedFoam/Make/files | 4 - .../stressedFoam/calculateStress.H | 111 -- .../stressedFoam/createFields.H | 35 - .../stressedFoam/readMechanicalProperties.H | 44 - .../stressedFoam/readStressedFoamControls.H | 5 - .../stressedFoam/readThermalProperties.H | 46 - .../stressedFoam/stressedFoam.C | 120 -- .../tractionDisplacementFvPatchVectorField.C | 220 --- src/Allwmake | 2 + src/solidModels/Make/files | 90 ++ src/solidModels/Make/options | 21 + .../db/IOobjects/IOReferencer/IOReferencer.C | 120 ++ .../db/IOobjects/IOReferencer/IOReferencer.H | 144 ++ .../cohesive/cohesivePolyPatch.C | 211 +++ .../crackerFvMesh/crackerFvMesh.C | 589 ++++++++ .../crackerFvMesh/crackerFvMesh.H | 189 +++ .../crackerFvMesh/crackerFvMeshTemplates.C | 47 +- .../faceCracker/detachFaceCracker.C | 594 ++++++++ .../detachFaceCracker_firstFixNotRight.C | 467 ++++++ .../faceCracker/detachFaceCracker_orig.C | 435 ++++++ .../faceCracker/detachFaceCracker_philipc.C | 462 ++++++ .../detachFaceCracker_secondFixNotRight.C | 529 +++++++ .../arbitraryCrack/faceCracker/faceCracker.C | 293 ++++ .../arbitraryCrack/faceCracker/faceCracker.H | 176 +++ .../solidCohesiveFvPatchVectorField.C | 1107 ++++++++++++++ .../solidCohesiveFvPatchVectorField.H | 334 ++++ ...idCohesiveFixedModeMixFvPatchVectorField.C | 1085 +++++++++++++ ...idCohesiveFixedModeMixFvPatchVectorField.H | 292 ++++ .../cohesiveLaws/cohesiveLaw/cohesiveLaw.C | 14 +- .../cohesiveLaws/cohesiveLaw/cohesiveLaw.H | 239 +++ .../cohesiveLaws/cohesiveLaw/newCohesiveLaw.C | 25 +- .../dugdaleCohesiveLaw/dugdaleCohesiveLaw.C | 288 ++-- .../dugdaleCohesiveLaw/dugdaleCohesiveLaw.H | 188 +++ .../linearCohesiveLaw/linearCohesiveLaw.C | 290 ++++ .../linearCohesiveLaw/linearCohesiveLaw.H | 187 +++ .../multiMaterialCohesiveLaw.C | 1056 +++++++++++++ .../multiMaterialCohesiveLaw.H | 222 +++ .../constitutiveModel/constitutiveModel.C | 596 ++++++++ .../constitutiveModel/constitutiveModel.H | 269 ++++ .../aravasMises/aravasMises.C | 484 ++++++ .../aravasMises/aravasMises.H | 186 +++ .../aravasMises/aravasMisesUpdateBeta.H | 182 +++ .../newPlasticityStressReturn.C | 61 +- .../plasticityStressReturn.C | 22 +- .../plasticityStressReturn.H | 108 +- .../yamadaMises/yamadaMises.C | 545 +++++++ .../yamadaMises/yamadaMises.H | 125 +- .../PronyViscoelastic/PronyViscoelastic.C | 4 +- .../PronyViscoelastic/PronyViscoelastic.H | 12 + .../elasticPlastic/elasticPlastic.C | 8 +- .../elasticPlastic/elasticPlastic.H | 11 +- .../linearElastic/linearElastic.C | 5 + .../linearElastic/linearElastic.H | 4 + .../linearElasticTabulatedPlastic.C | 287 ++++ .../linearElasticTabulatedPlastic.H | 65 +- .../multiMaterial/multiMaterial.C | 116 ++ .../multiMaterial/multiMaterial.H | 12 + .../orthotropicLinearElastic.C | 412 +++++ .../orthotropicLinearElastic.H | 138 +- .../rheologyLaws/rheologyLaw/newRheologyLaw.C | 0 .../rheologyLaws/rheologyLaw/rheologyLaw.C | 154 ++ .../rheologyLaws/rheologyLaw/rheologyLaw.H | 21 + .../solidInterfaces/createSolidInterface.H | 29 + .../createSolidInterfaceIncr.H | 29 + .../createSolidInterfaceIncrNoModify.H | 29 + .../createSolidInterfaceNoModify.H | 29 + .../largeStrainULSolidInterface.C | 325 ++++ .../largeStrainULSolidInterface.H | 72 +- .../largeStrainULCorrectedSolidInterface.C | 369 +++++ .../largeStrainULCorrectedSolidInterface.H | 109 ++ .../solidInterfaces/none/noneSolidInterface.C | 45 +- .../solidInterfaces/none/noneSolidInterface.H | 117 +- .../smallStrain/smallStrainSolidInterface.C | 434 ++++++ .../smallStrain/smallStrainSolidInterface.H | 74 +- .../smallStrainCorrectedSolidInterface.C | 356 +++++ .../smallStrainCorrectedSolidInterface.H | 71 +- .../smallStrainOrthotropicSolidInterface.C | 308 ++++ .../smallStrainOrthotropicSolidInterface.H | 109 ++ ...StrainOrthotropicCorrectedSolidInterface.C | 353 +++++ ...StrainOrthotropicCorrectedSolidInterface.H | 109 ++ .../solidInterface/newSolidInterface.C | 54 +- .../solidInterface/solidInterface.C | 984 ++++++++++++ .../solidInterface/solidInterface.H | 335 ++++ .../tractionBoundaryGradient.C | 572 +++++++ .../tractionBoundaryGradient.H | 93 +- .../dirichletNeumannFriction.C | 616 ++++++++ .../dirichletNeumannFriction.H | 207 +++ .../dirichletNeumannFriction_old.C | 546 +++++++ .../frictionContactModel.C | 61 +- .../frictionContactModel.H | 242 +++ .../newFrictionContactModel.C | 86 ++ .../coulombFriction/coulombFriction.C | 65 +- .../coulombFriction/coulombFriction.H | 73 +- .../frictionLaws/frictionLaw/frictionLaw.C | 30 +- .../frictionLaws/frictionLaw/frictionLaw.H | 96 +- .../frictionLaws/frictionLaw/newFrictionLaw.C | 24 +- .../frictionless/frictionless.C | 61 +- .../frictionless/frictionless.H | 123 +- .../iterativePenaltyFriction.C | 549 +++++++ .../iterativePenaltyFriction.H | 211 +++ .../standardPenaltyFriction.C | 545 +++++++ .../standardPenaltyFriction.H | 215 +++ .../dirichletNeumann/dirichletNeumann.C | 781 ++++++++++ .../dirichletNeumann/dirichletNeumann.H | 271 ++++ ...irichletNeumannCalculateSlaveFaceNormals.H | 224 +++ .../iterativePenalty/iterativePenalty.C | 555 +++++++ .../iterativePenalty/iterativePenalty.H | 252 ++++ .../iterativePenaltyCorrectMissedVertices.H | 44 + .../iterativePenaltyRemoveOscillations.H | 81 + .../newNormalContactModel.C | 104 ++ .../normalContactModel/normalContactModel.C | 87 ++ .../normalContactModel/normalContactModel.H | 258 ++++ .../standardPenalty/standardPenalty.C | 574 +++++++ .../standardPenalty/standardPenalty.H | 238 +++ .../backwardD2dt2Scheme/backwardD2dt2Scheme.C | 415 +++++ .../backwardD2dt2Scheme/backwardD2dt2Scheme.H | 157 ++ .../backwardD2dt2Schemes.C | 35 +- .../leastSquaresSolidInterfaceGrad.C | 254 ++++ .../leastSquaresSolidInterfaceGrad.H | 117 +- .../leastSquaresSolidInterfaceGrads.C | 34 +- .../leastSquaresSolidInterfaceVectors.C | 363 +++++ .../leastSquaresSolidInterfaceVectors.H | 95 +- .../leastSquaresVolPointInterpolation.C | 386 +++++ .../leastSquaresVolPointInterpolation.H | 29 +- .../skewCorrectedSnGrad/skewCorrectedSnGrad.C | 278 ++++ .../skewCorrectedSnGrad/skewCorrectedSnGrad.H | 153 ++ .../skewCorrectedSnGrads.C | 27 +- ...ticalPlateHoleTractionFvPatchVectorField.C | 49 +- ...ticalPlateHoleTractionFvPatchVectorField.H | 0 .../fixedDisplacementFvPatchVectorField.C | 47 +- .../fixedDisplacementFvPatchVectorField.H | 8 + ...placementFixedRotationFvPatchVectorField.C | 257 ++++ ...placementFixedRotationFvPatchVectorField.H | 120 +- ...acementOrSolidTractionFvPatchVectorField.C | 253 ++++ ...acementOrSolidTractionFvPatchVectorField.H | 102 +- ...dDisplacementZeroShearFvPatchVectorField.C | 252 ++++ ...dDisplacementZeroShearFvPatchVectorField.H | 20 +- ...roShearOrSolidTractionFvPatchVectorField.C | 271 ++++ ...roShearOrSolidTractionFvPatchVectorField.H | 104 +- .../fixedRotationFvPatchVectorField.C | 113 +- .../fixedRotationFvPatchVectorField.H | 31 +- .../solidContactFvPatchVectorField.C | 1337 ++++++++++++++++ .../solidContactFvPatchVectorField.H | 402 +++++ .../solidDirectionMixedFvPatchVectorField.C | 14 +- .../solidDirectionMixedFvPatchVectorField.H | 0 .../solidSymmetryFvPatchVectorField.C | 207 +++ .../solidSymmetryFvPatchVectorField.H | 112 +- .../solidTractionFvPatchVectorField.C | 223 +-- .../solidTractionFvPatchVectorField.H | 15 +- .../solidTractionFreeFvPatchVectorField.C | 184 +-- .../solidTractionFreeFvPatchVectorField.H | 19 +- ...ryingFixedDisplacementFvPatchVectorField.C | 17 +- ...ryingFixedDisplacementFvPatchVectorField.H | 0 ...dDisplacementZeroShearFvPatchVectorField.C | 259 ++++ ...dDisplacementZeroShearFvPatchVectorField.H | 125 +- ...meVaryingFixedRotationFvPatchVectorField.C | 246 +++ ...meVaryingFixedRotationFvPatchVectorField.H | 130 +- ...meVaryingSolidTractionFvPatchVectorField.C | 43 +- ...meVaryingSolidTractionFvPatchVectorField.H | 4 +- .../constantThermal/constantThermal.C | 0 .../constantThermal/constantThermal.H | 0 .../multiMaterialThermal.C | 0 .../multiMaterialThermal.H | 0 .../thermalLaws/thermalLaw/newThermalLaw.C | 0 .../thermalLaws/thermalLaw/thermalLaw.C | 0 .../thermalLaws/thermalLaw/thermalLaw.H | 0 .../solidModels}/thermalModel/thermalModel.C | 0 .../solidModels}/thermalModel/thermalModel.H | 0 .../stressAnalysis/contactStressFoam/Allclean | 15 - .../stressAnalysis/contactStressFoam/Allrun | 12 - .../contactStressFoam/ballAndBrick/0/U | 83 - .../ballAndBrick/constant/boundaryConditions | 45 - .../constant/mechanicalProperties | 25 - .../constant/polyMesh/blockMeshDict | 101 -- .../ballAndBrick/constant/polyMesh/boundary | 92 -- .../ballAndBrick/system/controlDict | 47 - .../ballAndBrick/system/fvSchemes | 56 - .../ballAndBrick/system/fvSolution | 36 - .../icoFsiFoam/flappingConsoleSmall/Allclean | 17 - .../icoFsiFoam/flappingConsoleSmall/Allrun | 27 - .../icoFsiFoam/flappingConsoleSmall/fluid/0/U | 56 - .../flappingConsoleSmall/fluid/0/motionU | 63 - .../icoFsiFoam/flappingConsoleSmall/fluid/0/p | 59 - .../fluid/constant/couplingProperties | 25 - .../fluid/constant/dynamicMeshDict | 35 - .../fluid/constant/polyMesh/blockMeshDict | 100 -- .../fluid/constant/polyMesh/boundary | 58 - .../fluid/constant/transportProperties | 24 - .../fluid/system/controlDict | 54 - .../fluid/system/fvSchemes | 67 - .../fluid/system/fvSolution | 49 - .../fluid/system/sampleDict | 42 - .../fluid/system/tetFemSolution | 32 - .../icoFsiFoam/flappingConsoleSmall/solid/0/U | 49 - .../solid/constant/mechanicalProperties | 28 - .../solid/constant/polyMesh/blockMeshDict | 66 - .../solid/constant/polyMesh/boundary | 40 - .../solid/system/controlDict | 52 - .../solid/system/fvSchemes | 62 - .../solid/system/fvSolution | 38 - .../newContactStressFoam/Allclean | 16 - .../newContactStressFoam/Allrun | 13 - .../ballAndBrickFriction/0/U | 100 -- .../ballAndBrickFriction/0/materials | 65 - .../ballAndBrickFriction/0/materials.org | 65 - .../constant/contactProperties | 36 - .../constant/polyMesh/blockMeshDict | 112 -- .../constant/polyMesh/boundary | 82 - .../constant/rheologyProperties | 51 - .../ballAndBrickFriction/system/controlDict | 45 - .../ballAndBrickFriction/system/fvSchemes | 38 - .../ballAndBrickFriction/system/fvSolution | 45 - .../ballAndBrickFriction/system/setFieldsDict | 36 - .../stressAnalysis/newStressedFoam/Allclean | 15 - .../stressAnalysis/newStressedFoam/Allrun | 12 - .../newStressedFoam/plateHole/0/U | 66 - .../newStressedFoam/plateHole/0/materials | 50 - .../newStressedFoam/plateHole/0/materials.org | 50 - .../plateHole/constant/polyMesh/blockMeshDict | 113 -- .../plateHole/constant/polyMesh/boundary | 58 - .../plateHole/constant/rheologyProperties | 60 - .../plateHole/system/controlDict | 48 - .../plateHole/system/fvSchemes | 54 - .../plateHole/system/fvSolution | 45 - .../plateHole/system/setFieldsDict | 47 - .../solidDisplacementFoam/plateHole/0/D | 58 - .../solidDisplacementFoam/plateHole/0/T | 49 - .../plateHole/constant/mechanicalProperties | 25 - .../plateHole/constant/polyMesh/blockMeshDict | 112 -- .../plateHole/constant/polyMesh/boundary | 62 - .../plateHole/constant/thermalProperties | 25 - .../plateHole/system/controlDict | 49 - .../plateHole/system/fvSchemes | 59 - .../plateHole/system/fvSolution | 57 - .../plateHole/system/sampleDict | 41 - .../plateHole/system/sampleSurfaceDict | 36 - .../beamEndLoad/0/D | 59 - .../beamEndLoad/0/p | 53 - .../beamEndLoad/constant/mechanicalProperties | 23 - .../constant/polyMesh/blockMeshDict | 74 - .../beamEndLoad/constant/polyMesh/boundary | 55 - .../beamEndLoad/constant/thermalProperties | 25 - .../beamEndLoad/system/controlDict | 43 - .../beamEndLoad/system/controlDict.org | 43 - .../beamEndLoad/system/fvSchemes | 53 - .../beamEndLoad/system/fvSolution | 57 - .../stressAnalysis/stressFemFoam/Allclean | 15 - tutorials/stressAnalysis/stressFemFoam/Allrun | 12 - .../stressFemFoam/plateHole/0/U | 64 - .../plateHole/constant/mechanicalProperties | 26 - .../plateHole/constant/polyMesh/blockMeshDict | 113 -- .../plateHole/constant/polyMesh/boundary | 64 - .../plateHole/system/controlDict | 48 - .../stressFemFoam/plateHole/system/fvSchemes | 35 - .../stressFemFoam/plateHole/system/fvSolution | 18 - .../plateHole/system/tetFemSolution | 29 - .../stressAnalysis/stressedFoam/Allclean | 15 - tutorials/stressAnalysis/stressedFoam/Allrun | 12 - .../stressAnalysis/stressedFoam/plateHole/0/T | 55 - .../stressAnalysis/stressedFoam/plateHole/0/U | 64 - .../plateHole/constant/mechanicalProperties | 26 - .../plateHole/constant/polyMesh/blockMeshDict | 113 -- .../plateHole/constant/polyMesh/boundary | 64 - .../plateHole/constant/thermalProperties | 26 - .../stressedFoam/plateHole/system/controlDict | 48 - .../stressedFoam/plateHole/system/fvSchemes | 58 - .../stressedFoam/plateHole/system/fvSolution | 43 - .../stressedFoam/plateHole/system/sampleDict | 44 - .../plateHole/system/sampleSurfaceDict | 37 - .../darwinIntel64Gcc/ARCHITECTURE_TESTED | 1 + wmake/rules/darwinIntel64Gcc/X | 3 + wmake/rules/darwinIntel64Gcc/c | 16 + wmake/rules/darwinIntel64Gcc/c++ | 22 + wmake/rules/darwinIntel64Gcc/c++Debug | 2 + wmake/rules/darwinIntel64Gcc/c++Opt | 4 + wmake/rules/darwinIntel64Gcc/c++Prof | 2 + wmake/rules/darwinIntel64Gcc/cDebug | 2 + wmake/rules/darwinIntel64Gcc/cOpt | 2 + wmake/rules/darwinIntel64Gcc/cProf | 2 + wmake/rules/darwinIntel64Gcc/general | 10 + wmake/rules/darwinIntel64Gcc/mplib | 3 + .../darwinIntel64Gcc/mplibMACPORTOPENMPI | 3 + wmake/rules/darwinIntel64Gcc/mplibOPENMPI | 3 + .../rules/darwinIntel64Gcc/mplibSYSTEMOPENMPI | 1 + 777 files changed, 45905 insertions(+), 35089 deletions(-) delete mode 100755 applications/solvers/newStressAnalysis/Allwmake delete mode 100644 applications/solvers/newStressAnalysis/materialModels/Make/files delete mode 100644 applications/solvers/newStressAnalysis/materialModels/Make/options delete mode 100644 applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/componentReference/componentReference.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/componentReference/componentReferenceList.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.H delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/linearElastic/linearElastic.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/multiMaterial/multiMaterial.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.C delete mode 100644 applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/Make/files delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/Make/options delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/calculateContactArea.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.C delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPairList.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.C delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/createFields.H delete mode 100644 applications/solvers/newStressAnalysis/newContactStressFoam/newContactStressFoam.C delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/Make/files delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/Make/options delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/calculateSigma.H delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/calculateStress.H delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/createFields.H delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/newStressedFoam.C delete mode 100644 applications/solvers/newStressAnalysis/newStressedFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateDivSigmaExp.H rename applications/solvers/solidMechanics/{elasticContactSolidFoam => elasticAcpSolidFoam}/calculateEpsilonSigma.H (100%) create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateForceResidual.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateRelativeResidual.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateTraction.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/checkCohesivePatchOrdering.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrack.H rename applications/solvers/{stressAnalysis/icoFsiFoam/createStressMesh.H => solidMechanics/elasticAcpSolidFoam/createCrackerMesh.H} (52%) create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/createFields.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/createReference.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/elasticAcpSolidFoam.C create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/initialiseSolution.H rename applications/solvers/solidMechanics/{elasticContactSolidFoam => elasticAcpSolidFoam}/readDivSigmaExpMethod.H (66%) create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/readStressedFoamControls.H rename applications/solvers/{newStressAnalysis/newStressedFoam => solidMechanics/elasticAcpSolidFoam}/setComponentReference.H (100%) create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/setDeltaT.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/setReference.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/updateCrack.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/updateCrackPropagationPatchesInternalFaces.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/updateReference.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/waveCourantNo.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticAcpSolidFoam/writeHistory.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/Make/files delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/Make/options delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/Make/options_myLib delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/Make/options_old delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/calculateDivDSigmaExp.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/correctGlobalFaceZoneMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/createGlobalToLocalFaceZonePointMap.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/createSolidInterface.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/elasticContactIncrSolidFoam.C delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/moveSolidMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/printContactResults.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/readContactControls.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/readDivDSigmaExpMethod.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/readStressedFoamControls.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/writeBoundaryNetForces.H delete mode 100644 applications/solvers/solidMechanics/elasticContactIncrSolidFoam/writeFields.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/Make/files delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/Make/options delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/Make/options_myLib delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/Make/options_old delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/calculateDEpsilonDSigma.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/calculateDivDSigmaExp.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/calculateDivDSigmaExpLargeStrain.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/calculateExtrapolationVectors.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/calculatePointBoundaryWeights.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/correctGlobalFaceZoneMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/createGlobalToLocalFaceZonePointMap.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/elasticContactNonLinULSolidFoam.C delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/findBoundaryPoints.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/moveMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/moveMeshInverseDistance.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/moveMeshLeastSquares.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/moveSolidMeshForContact.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/performEdgeCorrectedVolPointInterpolation.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/printContactResults.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/readContactControls.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/readDivDSigmaExpMethod.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/readDivDSigmaLargeStrainMethod.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/readMoveMeshMethod.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/rotateFields.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/writeBoundaryNetForces.H delete mode 100644 applications/solvers/solidMechanics/elasticContactNonLinULSolidFoam/writeFields.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/Make/files delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/Make/options delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/Make/options_myLib delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/Make/options_old delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/calculateDivSigmaExp.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/correctGlobalFaceZoneMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/createGlobalToLocalFaceZonePointMap.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/elasticContactSolidFoam.C delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/moveMeshLeastSquares.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/moveSolidMesh.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/printContactResults.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/readContactControls.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/readStressedFoamControls.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/writeBoundaryNetForces.H delete mode 100644 applications/solvers/solidMechanics/elasticContactSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/aitkenRelaxation.H rename applications/solvers/solidMechanics/{elasticContactIncrSolidFoam => elasticIncrAcpSolidFoam}/calculateDEpsilonDSigma.H (100%) create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/calculateDivDSigmaExp.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/calculateForceResidual.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/calculateRelativeResidual.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/calculateTraction.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/checkCohesivePatchOrdering.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/createCrack.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/createCrackerMesh.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/createFields.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/createReference.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/elasticIncrAcpSolidFoam.C create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/initialiseSolution.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/readDivDSigmaExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/setComponentReference.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/setDeltaT.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/setReference.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/updateCrack.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/updateCrackPropagationPatchesInternalFaces.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/updateReference.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/waveCourantNo.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticIncrAcpSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinIncrTLSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticNonLinIncrTLSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticNonLinIncrTLSolidFoam/calculateDEpsilonDSigma.H rename applications/solvers/solidMechanics/{elasticContactIncrSolidFoam => elasticNonLinIncrTLSolidFoam}/calculateRelativeResidual.H (100%) rename applications/solvers/solidMechanics/{elasticContactIncrSolidFoam => elasticNonLinIncrTLSolidFoam}/createFields.H (72%) create mode 100644 applications/solvers/solidMechanics/elasticNonLinIncrTLSolidFoam/elasticNonLinIncrTLSolidFoam.C rename applications/solvers/solidMechanics/{elasticContactNonLinULSolidFoam => elasticNonLinIncrTLSolidFoam}/readStressedFoamControls.H (100%) create mode 100644 applications/solvers/solidMechanics/elasticNonLinIncrTLSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinTLSolidFoam/createForceDisplacementFile.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinTLSolidFoam/createSolidInterfaceNonLin.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinTLSolidFoam/writeForceDisplacement.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinULSolidFoam/createForceDisplacementFile.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinULSolidFoam/createSolidInterfaceNonLin.H create mode 100644 applications/solvers/solidMechanics/elasticNonLinULSolidFoam/writeForceDisplacement.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/calculateDivSigmaExp.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/calculateEpsilonSigma.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/calculateForceResidual.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/calculateRelativeResidual.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/calculateTraction.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/checkCohesivePatchOrdering.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/createCrack.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/createCrackerMesh.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/createFields.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/createReference.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/elasticOrthoAcpSolidFoam.C create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/initialiseSolution.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/readDivSigmaExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/setComponentReference.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/setDeltaT.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/setReference.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/updateCrack.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/updateCrackPropagationPatchesInternalFaces.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/updateReference.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/waveCourantNo.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoAcpSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/checkPlaneStress.H rename applications/solvers/solidMechanics/{elasticContactNonLinULSolidFoam => elasticOrthoNonLinULSolidFoam}/createFields.H (62%) create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/createForceDisplacementFile.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/elasticOrthoNonLinULSolidFoam.C rename applications/solvers/solidMechanics/{elasticContactIncrSolidFoam => elasticOrthoNonLinULSolidFoam}/moveMeshLeastSquares.H (56%) create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/rotateFields.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoNonLinULSolidFoam/writeForceDisplacement.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/calculateDivSigmaExp.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/calculateEpsilonSigma.H rename applications/solvers/solidMechanics/{elasticContactSolidFoam => elasticOrthoSolidFoam}/calculateRelativeResidual.H (100%) rename applications/solvers/solidMechanics/{elasticContactSolidFoam => elasticOrthoSolidFoam}/createFields.H (58%) create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/createSolidInterfaceOrthotropic.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/elasticOrthoSolidFoam.C create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/readDivSigmaExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/setPlaneStressGradU.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticOrthoSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/Make/files create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/calculateDEpsilonDSigma.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/calculateDivDSigmaExp.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/calculateDivDSigmaNonLinExp.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/calculateRelativeResidual.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/calculateThirdOrderDissipativeTerm.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/createFields.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/elasticPlasticNonLinTLSolidFoam.C create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/readDivDSigmaExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/readDivDSigmaNonLinExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/readStressedFoamControls.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/writeFields.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinTLSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/calculateDivDSigmaNonLinExp.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/createForceDisplacementFile.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/createSolidInterfaceNonLin.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/readDivDSigmaNonLinExpMethod.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/writeForceDisplacement.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticNonLinULSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticPlasticSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/calculateForceResidual.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/calculateThirdOrderDissipativeTerm.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/createSolidInterface_orig.H create mode 100644 applications/solvers/solidMechanics/elasticSolidFoam/writeHistory.H create mode 100644 applications/solvers/solidMechanics/elasticThermalSolidFoam/aitkenRelaxation.H create mode 100644 applications/solvers/solidMechanics/elasticThermalSolidFoam/calculateDivSigmaExp.H create mode 100644 applications/solvers/solidMechanics/elasticThermalSolidFoam/calculateRelResT.H create mode 100644 applications/solvers/solidMechanics/elasticThermalSolidFoam/calculateRelResU.H create mode 100644 applications/solvers/solidMechanics/elasticThermalSolidFoam/readDivSigmaExpMethod.H delete mode 100644 applications/solvers/solidMechanics/solidModels/Make/files delete mode 100644 applications/solvers/solidMechanics/solidModels/Make/options delete mode 100644 applications/solvers/solidMechanics/solidModels/cohesiveLaws/bilinear/bilinearCohesiveLaw.C delete mode 100644 applications/solvers/solidMechanics/solidModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.C delete mode 100644 applications/solvers/solidMechanics/solidModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.H delete mode 100644 applications/solvers/solidMechanics/solidModels/cohesiveLaws/linear/linearCohesiveLaw.C delete mode 100644 applications/solvers/solidMechanics/solidModels/cohesiveLaws/linear/linearCohesiveLaw.H delete mode 100644 applications/solvers/solidMechanics/solidModels/componentReference/componentReference.H delete mode 100644 applications/solvers/solidMechanics/solidModels/componentReference/componentReferenceList.H delete mode 100644 applications/solvers/solidMechanics/solidModels/contactModel/contactPatchPair.C delete mode 100644 applications/solvers/solidMechanics/solidModels/contactModel/contactPatchPair.H delete mode 100644 applications/solvers/solidMechanics/solidModels/contactModel/contactPatchPairCorrect.C delete mode 100644 applications/solvers/solidMechanics/solidModels/contactModel/contactProblem.C delete mode 100644 applications/solvers/solidMechanics/solidModels/contactModel/contactProblem.H delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.H delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveZoneIncremental/cohesiveZoneIncrementalFvPatchVectorField.C delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/fixedDisplacementZeroShear/fixedDisplacementZeroShearFvPatchVectorField.C delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C delete mode 100644 applications/solvers/solidMechanics/solidModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.H delete mode 100644 applications/solvers/solidMechanics/solidModels/interpolation/leastSquaresVolPointInterpolation/leastSquaresVolPointInterpolation.C delete mode 100644 applications/solvers/solidMechanics/solidModels/plasticityModel/plasticityModel.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.H delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.H delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.H delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.H delete mode 100755 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/elasticNLPlastic/elasticNLPlastic.C delete mode 100755 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/elasticNLPlastic/elasticNLPlastic.H delete mode 100755 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/nonLinearElasticPlastic/nonLinearElasticPlastic.C delete mode 100755 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/nonLinearElasticPlastic/nonLinearElasticPlastic.H delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyModel.C delete mode 100644 applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyModel.H delete mode 100644 applications/solvers/solidMechanics/solidModels/solidInterface/solidInterface.C delete mode 100644 applications/solvers/solidMechanics/solidModels/solidInterface/solidInterface.H delete mode 100644 applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/constantThermal/constantThermal.C delete mode 100644 applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/multiMaterialThermal/multiMaterialThermal.C delete mode 100644 applications/solvers/solidMechanics/solidModels/thermalModel/thermalModel.H create mode 100644 applications/solvers/solidMechanics/utilities/calculateCourantNumber/Make/files create mode 100644 applications/solvers/solidMechanics/utilities/calculateCourantNumber/Make/options create mode 100644 applications/solvers/solidMechanics/utilities/calculateCourantNumber/calculateCourantNumber.C create mode 100644 applications/solvers/solidMechanics/utilities/forceDisp/Make/files rename applications/solvers/{stressAnalysis/solidDisplacementFoam => solidMechanics/utilities/forceDisp}/Make/options (62%) create mode 100644 applications/solvers/solidMechanics/utilities/forceDisp/forceDisp.C create mode 100644 applications/solvers/solidMechanics/utilities/patchStressIntegrate/Make/files rename applications/solvers/{stressAnalysis/stressedFoam => solidMechanics/utilities/patchStressIntegrate}/Make/options (62%) create mode 100644 applications/solvers/solidMechanics/utilities/patchStressIntegrate/patchStressIntegrate.C create mode 100644 applications/solvers/solidMechanics/utilities/smoothMesh/Make/files create mode 100644 applications/solvers/solidMechanics/utilities/smoothMesh/Make/options create mode 100644 applications/solvers/solidMechanics/utilities/smoothMesh/smoothMesh.C create mode 100644 applications/solvers/solidMechanics/utilities/surfaceTractions/Make/files create mode 100644 applications/solvers/solidMechanics/utilities/surfaceTractions/Make/options create mode 100644 applications/solvers/solidMechanics/utilities/surfaceTractions/surfaceTractions.C mode change 100644 => 100755 applications/solvers/solidMechanics/viscoElasticSolidFoam/Make/files mode change 100644 => 100755 applications/solvers/solidMechanics/viscoElasticSolidFoam/Make/options create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/calcInitialState.H rename applications/solvers/solidMechanics/{elasticContactNonLinULSolidFoam/calculateRelativeResidual.H => viscoElasticSolidFoam/calcResidual.H} (93%) create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/calculateDSigma.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/calculateSigma.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/createFluid.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/createHistory.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/setInterfaceTraction.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/setRootCase.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/updateBoundaryConditions.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/updateCrack.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/updateLoadingPatchDisplacementIncrement.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/updateLoadingPatchTraction.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/updateTractionFreePatchTractionIncrement.H create mode 100644 applications/solvers/solidMechanics/viscoElasticSolidFoam/writeHistory.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/Make/options delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/calculatePatchTraction.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/calculateStress.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/contactBoundaries.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/contactPatchPair.C delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/contactPatchPair.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/contactPatchPairUpdateContact.C delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/contactStressFoam.C delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/createFields.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/traction.H delete mode 100644 applications/solvers/stressAnalysis/contactStressFoam/tractionBoundaries.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/Make/options delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/createFields.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/createStressFields.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/icoFsiFoam.C delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/readCouplingProperties.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/readMechanicalProperties.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/readStressedFoamControls.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/setMotion.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/setPressure.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/solveFluid.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/solveSolid.H delete mode 100644 applications/solvers/stressAnalysis/icoFsiFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.C delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/calculateStress.H delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/createFields.H delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/readMechanicalProperties.H delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/readThermalProperties.H delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/solidDisplacementFoam.C delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.C delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.H delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/Make/options delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/calculateStress.H delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/createFields.H delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/kineticEnergyLimiter.H delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/readSteadyStressFoamControls.H delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/tractionDisplacementCorrection/tractionDisplacementCorrectionFvPatchVectorField.C delete mode 100644 applications/solvers/stressAnalysis/solidEquilibriumDisplacementFoam/tractionDisplacementCorrection/tractionDisplacementCorrectionFvPatchVectorField.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/Make/options delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/calculateStress.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/createFemFields.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/createFemMesh.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/femStress/Traction/TractionPointPatchVectorField.C delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/femStress/Traction/TractionPointPatchVectorField.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/readControls.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/readMechanicalProperties.H delete mode 100644 applications/solvers/stressAnalysis/stressFemFoam/stressFemFoam.C delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/Make/files delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/calculateStress.H delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/createFields.H delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/readMechanicalProperties.H delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/readStressedFoamControls.H delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/readThermalProperties.H delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/stressedFoam.C delete mode 100644 applications/solvers/stressAnalysis/stressedFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.C create mode 100644 src/solidModels/Make/files create mode 100644 src/solidModels/Make/options create mode 100644 src/solidModels/OpenFOAM/db/IOobjects/IOReferencer/IOReferencer.C create mode 100644 src/solidModels/OpenFOAM/db/IOobjects/IOReferencer/IOReferencer.H create mode 100644 src/solidModels/arbitraryCrack/cohesive/cohesivePolyPatch.C create mode 100644 src/solidModels/arbitraryCrack/crackerFvMesh/crackerFvMesh.C create mode 100644 src/solidModels/arbitraryCrack/crackerFvMesh/crackerFvMesh.H rename applications/solvers/stressAnalysis/contactStressFoam/contactPatchPairSlavePressure.C => src/solidModels/arbitraryCrack/crackerFvMesh/crackerFvMeshTemplates.C (60%) create mode 100644 src/solidModels/arbitraryCrack/faceCracker/detachFaceCracker.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/detachFaceCracker_firstFixNotRight.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/detachFaceCracker_orig.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/detachFaceCracker_philipc.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/detachFaceCracker_secondFixNotRight.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/faceCracker.C create mode 100644 src/solidModels/arbitraryCrack/faceCracker/faceCracker.H create mode 100644 src/solidModels/arbitraryCrack/solidCohesive/solidCohesiveFvPatchVectorField.C create mode 100644 src/solidModels/arbitraryCrack/solidCohesive/solidCohesiveFvPatchVectorField.H create mode 100644 src/solidModels/arbitraryCrack/solidCohesiveFixedModeMix/solidCohesiveFixedModeMixFvPatchVectorField.C create mode 100644 src/solidModels/arbitraryCrack/solidCohesiveFixedModeMix/solidCohesiveFixedModeMixFvPatchVectorField.H rename applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/rheologyLaw/rheologyLaw.C => src/solidModels/constitutiveModel/cohesiveLaws/cohesiveLaw/cohesiveLaw.C (85%) create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/cohesiveLaw/cohesiveLaw.H rename applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/rheologyLaw/newRheologyLaw.C => src/solidModels/constitutiveModel/cohesiveLaws/cohesiveLaw/newCohesiveLaw.C (80%) rename applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.C => src/solidModels/constitutiveModel/cohesiveLaws/dugdaleCohesiveLaw/dugdaleCohesiveLaw.C (55%) create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/dugdaleCohesiveLaw/dugdaleCohesiveLaw.H create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/linearCohesiveLaw/linearCohesiveLaw.C create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/linearCohesiveLaw/linearCohesiveLaw.H create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/multiMaterialCohesiveLaw/multiMaterialCohesiveLaw.C create mode 100644 src/solidModels/constitutiveModel/cohesiveLaws/multiMaterialCohesiveLaw/multiMaterialCohesiveLaw.H create mode 100644 src/solidModels/constitutiveModel/constitutiveModel.C create mode 100644 src/solidModels/constitutiveModel/constitutiveModel.H create mode 100644 src/solidModels/constitutiveModel/plasticityStressReturnMethods/aravasMises/aravasMises.C create mode 100644 src/solidModels/constitutiveModel/plasticityStressReturnMethods/aravasMises/aravasMises.H create mode 100644 src/solidModels/constitutiveModel/plasticityStressReturnMethods/aravasMises/aravasMisesUpdateBeta.H rename applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchFieldFwd.H => src/solidModels/constitutiveModel/plasticityStressReturnMethods/plasticityStressReturn/newPlasticityStressReturn.C (61%) rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/rheologyLaw/rheologyLaw.C => src/solidModels/constitutiveModel/plasticityStressReturnMethods/plasticityStressReturn/plasticityStressReturn.C (83%) rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/rheologyLaw/rheologyLaw.H => src/solidModels/constitutiveModel/plasticityStressReturnMethods/plasticityStressReturn/plasticityStressReturn.H (59%) create mode 100644 src/solidModels/constitutiveModel/plasticityStressReturnMethods/yamadaMises/yamadaMises.C rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/multiMaterial/multiMaterial.H => src/solidModels/constitutiveModel/plasticityStressReturnMethods/yamadaMises/yamadaMises.H (52%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C (99%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/PronyViscoelastic/PronyViscoelastic.H (94%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/elasticPlastic/elasticPlastic.C (96%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/elasticPlastic/elasticPlastic.H (93%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/linearElastic/linearElastic.C (97%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/linearElastic/linearElastic.H (96%) create mode 100755 src/solidModels/constitutiveModel/rheologyLaws/linearElasticTabulatedPlastic/linearElasticTabulatedPlastic.C rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/linearElastic/linearElastic.H => src/solidModels/constitutiveModel/rheologyLaws/linearElasticTabulatedPlastic/linearElasticTabulatedPlastic.H (63%) mode change 100644 => 100755 rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/multiMaterial/multiMaterial.C (79%) rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/multiMaterial/multiMaterial.H (89%) create mode 100644 src/solidModels/constitutiveModel/rheologyLaws/orthotropicLinearElastic/orthotropicLinearElastic.C rename applications/solvers/solidMechanics/solidModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.H => src/solidModels/constitutiveModel/rheologyLaws/orthotropicLinearElastic/orthotropicLinearElastic.H (50%) rename {applications/solvers/newStressAnalysis/materialModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/rheologyLaw/newRheologyLaw.C (100%) create mode 100644 src/solidModels/constitutiveModel/rheologyLaws/rheologyLaw/rheologyLaw.C rename {applications/solvers/solidMechanics/solidModels/rheologyModel => src/solidModels/constitutiveModel}/rheologyLaws/rheologyLaw/rheologyLaw.H (88%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/createSolidInterface.H create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/createSolidInterfaceIncr.H create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/createSolidInterfaceIncrNoModify.H create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/createSolidInterfaceNoModify.H create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/largeStrainUL/largeStrainULSolidInterface.C rename applications/solvers/solidMechanics/solidModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.H => src/solidModels/constitutiveModel/solidInterfaces/largeStrainUL/largeStrainULSolidInterface.H (58%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/largeStrainULCorrected/largeStrainULCorrectedSolidInterface.C create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/largeStrainULCorrected/largeStrainULCorrectedSolidInterface.H rename applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchFields.C => src/solidModels/constitutiveModel/solidInterfaces/none/noneSolidInterface.C (68%) rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.H => src/solidModels/constitutiveModel/solidInterfaces/none/noneSolidInterface.H (56%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrain/smallStrainSolidInterface.C rename applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/linear/linearCohesiveLaw.H => src/solidModels/constitutiveModel/solidInterfaces/smallStrain/smallStrainSolidInterface.H (59%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrainCorrected/smallStrainCorrectedSolidInterface.C rename applications/solvers/newStressAnalysis/materialModels/thermalModel/thermalLaws/multiMaterialThermal/multiMaterialThermal.H => src/solidModels/constitutiveModel/solidInterfaces/smallStrainCorrected/smallStrainCorrectedSolidInterface.H (59%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrainOrthotropic/smallStrainOrthotropicSolidInterface.C create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrainOrthotropic/smallStrainOrthotropicSolidInterface.H create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrainOrthotropicCorrected/smallStrainOrthotropicCorrectedSolidInterface.C create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/smallStrainOrthotropicCorrected/smallStrainOrthotropicCorrectedSolidInterface.H rename applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchFields.H => src/solidModels/constitutiveModel/solidInterfaces/solidInterface/newSolidInterface.C (61%) create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/solidInterface/solidInterface.C create mode 100644 src/solidModels/constitutiveModel/solidInterfaces/solidInterface/solidInterface.H create mode 100644 src/solidModels/constitutiveModel/tractionBoundaryGradient/tractionBoundaryGradient.C rename applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.H => src/solidModels/constitutiveModel/tractionBoundaryGradient/tractionBoundaryGradient.H (55%) create mode 100644 src/solidModels/contactModels/frictionContactModels/dirichletNeumannFriction/dirichletNeumannFriction.C create mode 100644 src/solidModels/contactModels/frictionContactModels/dirichletNeumannFriction/dirichletNeumannFriction.H create mode 100644 src/solidModels/contactModels/frictionContactModels/dirichletNeumannFriction/dirichletNeumannFriction_old.C rename applications/solvers/solidMechanics/solidModels/thermalModel/thermalModel.C => src/solidModels/contactModels/frictionContactModels/frictionContactModel/frictionContactModel.C (67%) create mode 100644 src/solidModels/contactModels/frictionContactModels/frictionContactModel/frictionContactModel.H create mode 100644 src/solidModels/contactModels/frictionContactModels/frictionContactModel/newFrictionContactModel.C rename applications/solvers/solidMechanics/solidModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C => src/solidModels/contactModels/frictionContactModels/frictionLaws/coulombFriction/coulombFriction.C (62%) rename applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/constantThermal/constantThermal.H => src/solidModels/contactModels/frictionContactModels/frictionLaws/coulombFriction/coulombFriction.H (63%) rename applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/thermalLaw/thermalLaw.C => src/solidModels/contactModels/frictionContactModels/frictionLaws/frictionLaw/frictionLaw.C (77%) rename applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/thermalLaw/thermalLaw.H => src/solidModels/contactModels/frictionContactModels/frictionLaws/frictionLaw/frictionLaw.H (63%) rename applications/solvers/solidMechanics/solidModels/thermalModel/thermalLaws/thermalLaw/newThermalLaw.C => src/solidModels/contactModels/frictionContactModels/frictionLaws/frictionLaw/newFrictionLaw.C (79%) rename applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/linear/linearCohesiveLaw.C => src/solidModels/contactModels/frictionContactModels/frictionless/frictionless.C (60%) rename applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.H => src/solidModels/contactModels/frictionContactModels/frictionless/frictionless.H (54%) create mode 100644 src/solidModels/contactModels/frictionContactModels/iterativePenaltyFriction/iterativePenaltyFriction.C create mode 100644 src/solidModels/contactModels/frictionContactModels/iterativePenaltyFriction/iterativePenaltyFriction.H create mode 100644 src/solidModels/contactModels/frictionContactModels/standardPenaltyFriction/standardPenaltyFriction.C create mode 100644 src/solidModels/contactModels/frictionContactModels/standardPenaltyFriction/standardPenaltyFriction.H create mode 100644 src/solidModels/contactModels/normalContactModels/dirichletNeumann/dirichletNeumann.C create mode 100644 src/solidModels/contactModels/normalContactModels/dirichletNeumann/dirichletNeumann.H create mode 100644 src/solidModels/contactModels/normalContactModels/dirichletNeumann/dirichletNeumannCalculateSlaveFaceNormals.H create mode 100644 src/solidModels/contactModels/normalContactModels/iterativePenalty/iterativePenalty.C create mode 100644 src/solidModels/contactModels/normalContactModels/iterativePenalty/iterativePenalty.H create mode 100644 src/solidModels/contactModels/normalContactModels/iterativePenalty/iterativePenaltyCorrectMissedVertices.H create mode 100644 src/solidModels/contactModels/normalContactModels/iterativePenalty/iterativePenaltyRemoveOscillations.H create mode 100644 src/solidModels/contactModels/normalContactModels/normalContactModel/newNormalContactModel.C create mode 100644 src/solidModels/contactModels/normalContactModels/normalContactModel/normalContactModel.C create mode 100644 src/solidModels/contactModels/normalContactModels/normalContactModel/normalContactModel.H create mode 100644 src/solidModels/contactModels/normalContactModels/standardPenalty/standardPenalty.C create mode 100644 src/solidModels/contactModels/normalContactModels/standardPenalty/standardPenalty.H create mode 100644 src/solidModels/finiteVolume/d2dt2Schemes/backwardD2dt2Scheme/backwardD2dt2Scheme.C create mode 100644 src/solidModels/finiteVolume/d2dt2Schemes/backwardD2dt2Scheme/backwardD2dt2Scheme.H rename applications/solvers/stressAnalysis/stressFemFoam/femStress/tractionTetPolyPatchVectorField.H => src/solidModels/finiteVolume/d2dt2Schemes/backwardD2dt2Scheme/backwardD2dt2Schemes.C (67%) create mode 100644 src/solidModels/finiteVolume/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceGrad.C rename applications/solvers/solidMechanics/solidModels/plasticityModel/plasticityModel.H => src/solidModels/finiteVolume/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceGrad.H (56%) rename applications/solvers/solidMechanics/solidModels/contactModel/contactPatchPairList.H => src/solidModels/finiteVolume/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceGrads.C (66%) create mode 100644 src/solidModels/finiteVolume/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceVectors.C rename applications/solvers/solidMechanics/solidModels/cohesiveLaws/bilinear/bilinearCohesiveLaw.H => src/solidModels/finiteVolume/gradSchemes/leastSquaresSolidInterfaceGrad/leastSquaresSolidInterfaceVectors.H (52%) create mode 100644 src/solidModels/finiteVolume/interpolation/leastSquaresVolPointInterpolation/leastSquaresVolPointInterpolation.C rename {applications/solvers/solidMechanics/solidModels => src/solidModels/finiteVolume}/interpolation/leastSquaresVolPointInterpolation/leastSquaresVolPointInterpolation.H (82%) create mode 100644 src/solidModels/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.C create mode 100644 src/solidModels/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.H rename applications/solvers/stressAnalysis/stressFemFoam/femStress/tractionTetPolyPatchVectorField.C => src/solidModels/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrads.C (75%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/analyticalPlateHoleTraction/analyticalPlateHoleTractionFvPatchVectorField.C (91%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/analyticalPlateHoleTraction/analyticalPlateHoleTractionFvPatchVectorField.H (100%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/fixedDisplacement/fixedDisplacementFvPatchVectorField.C (82%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/fixedDisplacement/fixedDisplacementFvPatchVectorField.H (97%) create mode 100644 src/solidModels/fvPatchFields/fixedDisplacementFixedRotation/fixedDisplacementFixedRotationFvPatchVectorField.C rename applications/solvers/stressAnalysis/icoFsiFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.H => src/solidModels/fvPatchFields/fixedDisplacementFixedRotation/fixedDisplacementFixedRotationFvPatchVectorField.H (55%) create mode 100644 src/solidModels/fvPatchFields/fixedDisplacementOrSolidTraction/fixedDisplacementOrSolidTractionFvPatchVectorField.C rename applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.H => src/solidModels/fvPatchFields/fixedDisplacementOrSolidTraction/fixedDisplacementOrSolidTractionFvPatchVectorField.H (64%) create mode 100644 src/solidModels/fvPatchFields/fixedDisplacementZeroShear/fixedDisplacementZeroShearFvPatchVectorField.C rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/fixedDisplacementZeroShear/fixedDisplacementZeroShearFvPatchVectorField.H (96%) create mode 100644 src/solidModels/fvPatchFields/fixedDisplacementZeroShearOrSolidTraction/fixedDisplacementZeroShearOrSolidTractionFvPatchVectorField.C rename applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.H => src/solidModels/fvPatchFields/fixedDisplacementZeroShearOrSolidTraction/fixedDisplacementZeroShearOrSolidTractionFvPatchVectorField.H (61%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/fixedRotation/fixedRotationFvPatchVectorField.C (70%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/fixedRotation/fixedRotationFvPatchVectorField.H (88%) create mode 100644 src/solidModels/fvPatchFields/solidContact/solidContactFvPatchVectorField.C create mode 100644 src/solidModels/fvPatchFields/solidContact/solidContactFvPatchVectorField.H rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidDirectionMixed/solidDirectionMixedFvPatchVectorField.C (99%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidDirectionMixed/solidDirectionMixedFvPatchVectorField.H (100%) create mode 100644 src/solidModels/fvPatchFields/solidSymmetry/solidSymmetryFvPatchVectorField.C rename applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.H => src/solidModels/fvPatchFields/solidSymmetry/solidSymmetryFvPatchVectorField.H (54%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidTraction/solidTractionFvPatchVectorField.C (52%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidTraction/solidTractionFvPatchVectorField.H (97%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidTractionFree/solidTractionFreeFvPatchVectorField.C (57%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/solidTractionFree/solidTractionFreeFvPatchVectorField.H (96%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/timeVaryingFixedDisplacement/timeVaryingFixedDisplacementFvPatchVectorField.C (90%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/timeVaryingFixedDisplacement/timeVaryingFixedDisplacementFvPatchVectorField.H (100%) create mode 100644 src/solidModels/fvPatchFields/timeVaryingFixedDisplacementZeroShear/timeVaryingFixedDisplacementZeroShearFvPatchVectorField.C rename applications/solvers/solidMechanics/solidModels/fvPatchFields/cohesiveZoneIncremental/cohesiveZoneIncrementalFvPatchVectorField.H => src/solidModels/fvPatchFields/timeVaryingFixedDisplacementZeroShear/timeVaryingFixedDisplacementZeroShearFvPatchVectorField.H (62%) create mode 100644 src/solidModels/fvPatchFields/timeVaryingFixedRotation/timeVaryingFixedRotationFvPatchVectorField.C rename applications/solvers/stressAnalysis/stressedFoam/tractionDisplacement/tractionDisplacementFvPatchVectorField.H => src/solidModels/fvPatchFields/timeVaryingFixedRotation/timeVaryingFixedRotationFvPatchVectorField.H (55%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/timeVaryingSolidTraction/timeVaryingSolidTractionFvPatchVectorField.C (83%) rename {applications/solvers/solidMechanics => src}/solidModels/fvPatchFields/timeVaryingSolidTraction/timeVaryingSolidTractionFvPatchVectorField.H (99%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/constantThermal/constantThermal.C (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/constantThermal/constantThermal.H (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/multiMaterialThermal/multiMaterialThermal.C (100%) rename {applications/solvers/solidMechanics => src}/solidModels/thermalModel/thermalLaws/multiMaterialThermal/multiMaterialThermal.H (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/thermalLaw/newThermalLaw.C (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/thermalLaw/thermalLaw.C (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalLaws/thermalLaw/thermalLaw.H (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalModel.C (100%) rename {applications/solvers/newStressAnalysis/materialModels => src/solidModels}/thermalModel/thermalModel.H (100%) delete mode 100755 tutorials/stressAnalysis/contactStressFoam/Allclean delete mode 100755 tutorials/stressAnalysis/contactStressFoam/Allrun delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/0/U delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/constant/boundaryConditions delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/system/controlDict delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/contactStressFoam/ballAndBrick/system/fvSolution delete mode 100755 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/Allclean delete mode 100755 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/Allrun delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/0/U delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/0/motionU delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/0/p delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/constant/couplingProperties delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/constant/dynamicMeshDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/constant/transportProperties delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/system/controlDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/system/fvSolution delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/system/sampleDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/fluid/system/tetFemSolution delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/0/U delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/system/controlDict delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/icoFsiFoam/flappingConsoleSmall/solid/system/fvSolution delete mode 100755 tutorials/stressAnalysis/newContactStressFoam/Allclean delete mode 100755 tutorials/stressAnalysis/newContactStressFoam/Allrun delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/0/U delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/0/materials delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/0/materials.org delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/constant/contactProperties delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/constant/rheologyProperties delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/system/controlDict delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/system/fvSolution delete mode 100644 tutorials/stressAnalysis/newContactStressFoam/ballAndBrickFriction/system/setFieldsDict delete mode 100755 tutorials/stressAnalysis/newStressedFoam/Allclean delete mode 100755 tutorials/stressAnalysis/newStressedFoam/Allrun delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/0/U delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/0/materials delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/0/materials.org delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/constant/rheologyProperties delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/system/controlDict delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/system/fvSolution delete mode 100644 tutorials/stressAnalysis/newStressedFoam/plateHole/system/setFieldsDict delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/0/D delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/0/T delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/constant/thermalProperties delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/controlDict delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/fvSolution delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/sampleDict delete mode 100644 tutorials/stressAnalysis/solidDisplacementFoam/plateHole/system/sampleSurfaceDict delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/0/D delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/0/p delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/constant/thermalProperties delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/system/controlDict delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/system/controlDict.org delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/solidEquilibriumDisplacementFoam/beamEndLoad/system/fvSolution delete mode 100755 tutorials/stressAnalysis/stressFemFoam/Allclean delete mode 100755 tutorials/stressAnalysis/stressFemFoam/Allrun delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/0/U delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/system/controlDict delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/system/fvSolution delete mode 100644 tutorials/stressAnalysis/stressFemFoam/plateHole/system/tetFemSolution delete mode 100755 tutorials/stressAnalysis/stressedFoam/Allclean delete mode 100755 tutorials/stressAnalysis/stressedFoam/Allrun delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/0/T delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/0/U delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/constant/mechanicalProperties delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/constant/polyMesh/boundary delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/constant/thermalProperties delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/system/controlDict delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/system/fvSchemes delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/system/fvSolution delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/system/sampleDict delete mode 100644 tutorials/stressAnalysis/stressedFoam/plateHole/system/sampleSurfaceDict create mode 100644 wmake/rules/darwinIntel64Gcc/ARCHITECTURE_TESTED create mode 100644 wmake/rules/darwinIntel64Gcc/X create mode 100644 wmake/rules/darwinIntel64Gcc/c create mode 100644 wmake/rules/darwinIntel64Gcc/c++ create mode 100644 wmake/rules/darwinIntel64Gcc/c++Debug create mode 100644 wmake/rules/darwinIntel64Gcc/c++Opt create mode 100644 wmake/rules/darwinIntel64Gcc/c++Prof create mode 100644 wmake/rules/darwinIntel64Gcc/cDebug create mode 100644 wmake/rules/darwinIntel64Gcc/cOpt create mode 100644 wmake/rules/darwinIntel64Gcc/cProf create mode 100644 wmake/rules/darwinIntel64Gcc/general create mode 100644 wmake/rules/darwinIntel64Gcc/mplib create mode 100644 wmake/rules/darwinIntel64Gcc/mplibMACPORTOPENMPI create mode 100644 wmake/rules/darwinIntel64Gcc/mplibOPENMPI create mode 100644 wmake/rules/darwinIntel64Gcc/mplibSYSTEMOPENMPI diff --git a/applications/solvers/newStressAnalysis/Allwmake b/applications/solvers/newStressAnalysis/Allwmake deleted file mode 100755 index 965c9fc2d..000000000 --- a/applications/solvers/newStressAnalysis/Allwmake +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory - -set -x - -wmake libso materialModels - -wmake newStressedFoam -wmake newContactStressFoam diff --git a/applications/solvers/newStressAnalysis/materialModels/Make/files b/applications/solvers/newStressAnalysis/materialModels/Make/files deleted file mode 100644 index 63dde3fe5..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/Make/files +++ /dev/null @@ -1,35 +0,0 @@ -rheologyModel/rheologyModel.C -rheologyLaws = rheologyModel/rheologyLaws - -$(rheologyLaws)/rheologyLaw/rheologyLaw.C -$(rheologyLaws)/rheologyLaw/newRheologyLaw.C - -$(rheologyLaws)/linearElastic/linearElastic.C -$(rheologyLaws)/multiMaterial/multiMaterial.C -$(rheologyLaws)/MaxwellViscoelastic/MaxwellViscoelastic.C -$(rheologyLaws)/BurgersViscoelastic/BurgersViscoelastic.C -$(rheologyLaws)/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C -$(rheologyLaws)/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C -$(rheologyLaws)/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C -$(rheologyLaws)/PronyViscoelastic/PronyViscoelastic.C - -thermalModel/thermalModel.C -thermalLaws = thermalModel/thermalLaws - -$(thermalLaws)/thermalLaw/thermalLaw.C -$(thermalLaws)/thermalLaw/newThermalLaw.C -$(thermalLaws)/constantThermal/constantThermal.C -$(thermalLaws)/multiMaterialThermal/multiMaterialThermal.C - -cohesiveLaws/cohesiveLaw/cohesiveLaw.C -cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C -cohesiveLaws/linear/linearCohesiveLaw.C - -fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C -fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.C -fvPatchFields/nusselt/nusseltFvPatchScalarField.C -fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchFields.C -fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C -fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C - -LIB = $(FOAM_LIBBIN)/libmaterialModels diff --git a/applications/solvers/newStressAnalysis/materialModels/Make/options b/applications/solvers/newStressAnalysis/materialModels/Make/options deleted file mode 100644 index fa15f1245..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/Make/options +++ /dev/null @@ -1,5 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -lfiniteVolume diff --git a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C b/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C deleted file mode 100644 index 6404c15cc..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/Dugdale/DugdaleCohesiveLaw.C +++ /dev/null @@ -1,88 +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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - Dugdale cohesive law. - -\*---------------------------------------------------------------------------*/ - -#include "DugdaleCohesiveLaw.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(DugdaleCohesiveLaw, 0); - addToRunTimeSelectionTable(cohesiveLaw, DugdaleCohesiveLaw, dictionary); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::DugdaleCohesiveLaw::DugdaleCohesiveLaw -( - const word& cohesiveLawName, - const dictionary& dict -) -: - cohesiveLaw(cohesiveLawName, dict), - deltaC_(GIc()/sigmaMax()) -{} - - -Foam::DugdaleCohesiveLaw::DugdaleCohesiveLaw -( - const DugdaleCohesiveLaw& dcl -) -: - cohesiveLaw(dcl), - deltaC_(dcl.deltaC_) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::DugdaleCohesiveLaw::~DugdaleCohesiveLaw() -{} - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -//- Return current holding traction -Foam::scalar Foam::DugdaleCohesiveLaw::traction(scalar delta) const -{ - if (delta > deltaC().value()) - { - return 0.0; - } - else if (delta < 0) - { - return sigmaMax().value(); - } - - return sigmaMax().value(); -} - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.C b/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.C deleted file mode 100644 index 634663d82..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.C +++ /dev/null @@ -1,112 +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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Description - Virtual base class for cohesive law. - -\*---------------------------------------------------------------------------*/ - -#include "cohesiveLaw.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(cohesiveLaw, 0); - defineRunTimeSelectionTable(cohesiveLaw, dictionary); -} - - -// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // - -Foam::autoPtr Foam::cohesiveLaw::New -( - const word& cohesiveLawName, - const dictionary& dict -) -{ - Info << "Selecting cohesive law: " << cohesiveLawName << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(cohesiveLawName); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "cohesiveLaw::New(const word& cohesiveLawName, " - "const dictionary& dict)" - ) << "Unknown cohesive law " << cohesiveLawName - << endl << endl - << "Valid cohesive laws are :" << endl - << dictionaryConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr(cstrIter()(cohesiveLawName, dict)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::cohesiveLaw::cohesiveLaw -( - const word& cohesiveLawName, - const dictionary& dict -) -: - cohesiveLawCoeffs_(dict.subDict(cohesiveLawName + "Coeffs")), - GIc_(cohesiveLawCoeffs_.lookup("GIc")), - sigmaMax_(cohesiveLawCoeffs_.lookup("sigmaMax")) -{} - - -Foam::cohesiveLaw::cohesiveLaw -( - const cohesiveLaw& cl -) -: - refCount(), - cohesiveLawCoeffs_(cl.cohesiveLawCoeffs_), - GIc_(cl.GIc_), - sigmaMax_(cl.sigmaMax_) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::cohesiveLaw::~cohesiveLaw() -{} - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::cohesiveLaw::writeDict(Ostream& os) const -{ - os.writeKeyword(word(type() + "Coeffs")) - << cohesiveLawCoeffs(); -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.H b/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.H deleted file mode 100644 index 6ad767f52..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/cohesiveLaws/cohesiveLaw/cohesiveLaw.H +++ /dev/null @@ -1,165 +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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - cohesiveLaw - -Description - Virtual base class for cohesive zone model. - -SourceFiles - cohesiveLaw.C - -\*---------------------------------------------------------------------------*/ - -#ifndef cohesiveLaw_H -#define cohesiveLaw_H - -#include "IOdictionary.H" -#include "autoPtr.H" -#include "runTimeSelectionTables.H" -#include "dimensionedTypes.H" -#include "tmp.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class cohesiveLaw Declaration -\*---------------------------------------------------------------------------*/ - -class cohesiveLaw -: - public refCount -{ - -private: - - // Private data - - //- Cohesive law coefficients - dictionary cohesiveLawCoeffs_; - - //- Fracture energy - dimensionedScalar GIc_; - - //- Maximum cohesive strength - dimensionedScalar sigmaMax_; - - -public: - - //- Runtime type information - TypeName("cohesiveLaw"); - - - // Declare run-time constructor selection tables - - declareRunTimeSelectionTable - ( - autoPtr, - cohesiveLaw, - dictionary, - ( - const word& cohesiveLawName, - const dictionary& dict - ), - (cohesiveLawName, dict) - ); - - - // Selectors - - //- Select null constructed - static autoPtr New - ( - const word& cohesiveLawName, - const dictionary& dict - ); - - - // Constructors - - //- Construct from components - cohesiveLaw - ( - const word& cohesiveLawName, - const dictionary& dict - ); - - //- Construct as copy - cohesiveLaw(const cohesiveLaw&); - - - //- Construct and return a clone - virtual autoPtr clone() const = 0; - - - // Destructor - - virtual ~cohesiveLaw(); - - - // Member Functions - - //- Return cohesive law coefficients - const dictionary& cohesiveLawCoeffs() const - { - return cohesiveLawCoeffs_; - } - - //- Return reference to fracture energy - const dimensionedScalar& GIc() const - { - return GIc_; - } - - //- Return reference to maximum cohesive strength - const dimensionedScalar& sigmaMax() const - { - return sigmaMax_; - } - - //- Return reference to critical separation distance - virtual const dimensionedScalar& deltaC() const = 0; - - //- Return current holding traction - virtual scalar traction(scalar delta) const = 0; - - //- Write dictionary - void writeDict(Ostream& os) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReference.H b/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReference.H deleted file mode 100644 index 37b6d97ae..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReference.H +++ /dev/null @@ -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 operator()(Istream& is) const - { - dictionary crDict(is); - - autoPtr 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 clone() const - { - return autoPtr(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 - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReferenceList.H b/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReferenceList.H deleted file mode 100644 index e3c800f1b..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/componentReference/componentReferenceList.H +++ /dev/null @@ -1,56 +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 - -Type - componentReferenceList - -Description - container classes for componentReference - -\*---------------------------------------------------------------------------*/ - -#ifndef componentReferenceList_H -#define componentReferenceList_H - -#include "componentReference.H" -#include "PtrList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef PtrList componentReferenceList; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C deleted file mode 100644 index 5a263ab76..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveLaw/cohesiveLawFvPatchVectorField.C +++ /dev/null @@ -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& iF -) -: - fixedGradientFvPatchVectorField(p, iF), - cohesiveLawPtr_(NULL), - relaxationFactor_(1.0), - traction_(p.size(), vector::zero) -{} - - -cohesiveLawFvPatchVectorField::cohesiveLawFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& 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& 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& 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(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& mu = - lookupPatchField("mu"); - - const fvPatchField& lambda = - lookupPatchField("lambda"); - - vectorField n = patch().nf(); - - const fvPatchField& gradU = - lookupPatchField("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 - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C deleted file mode 100644 index 8d69cde47..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/cohesiveZone/cohesiveZoneFvPatchVectorField.C +++ /dev/null @@ -1,325 +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 - cohesiveZoneFvPatchVectorField - -Description - -\*---------------------------------------------------------------------------*/ - -#include "cohesiveZoneFvPatchVectorField.H" -#include "addToRunTimeSelectionTable.H" -#include "transformField.H" -#include "volFields.H" -#include "rheologyModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF -) -: - directionMixedFvPatchVectorField(p, iF), - UName_("undefined"), - rheologyName_("undefined"), - cohesiveLawPtr_(NULL), - relaxationFactor_(1.0) -{} - - -cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField -( - const cohesiveZoneFvPatchVectorField& ptf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - directionMixedFvPatchVectorField(ptf, p, iF, mapper), - UName_(ptf.UName_), - rheologyName_(ptf.rheologyName_), - cohesiveLawPtr_(ptf.cohesiveLawPtr_), - relaxationFactor_(ptf.relaxationFactor_) -{} - - -cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - directionMixedFvPatchVectorField(p, iF), - UName_(dict.lookup("U")), - rheologyName_(dict.lookup("rheology")), - cohesiveLawPtr_ - ( - cohesiveLaw::New(dict.lookup("cohesiveLaw"), dict).ptr() - ), - relaxationFactor_(readScalar(dict.lookup("relaxationFactor"))) -{ - if (dict.found("refValue")) - { - this->refValue() = vectorField("refValue", dict, p.size()); - } - else - { - this->refValue() = vector::zero; - } - - if (dict.found("refGradient")) - { - this->refGrad() = vectorField("refGradient", dict, p.size()); - } - else - { - this->refGrad() = vector::zero; - } - - if (dict.found("valueFraction")) - { - this->valueFraction() = - symmTensorField("valueFraction", dict, p.size()); - } - else - { - vectorField n = patch().nf(); - - this->valueFraction() = sqr(n); - } - - if (dict.found("value")) - { - Field::operator=(vectorField("value", dict, p.size())); - } - else - { - Field normalValue = transform(valueFraction(), refValue()); - - Field gradValue = - this->patchInternalField() + refGrad()/this->patch().deltaCoeffs(); - - Field transformGradValue = - transform(I - valueFraction(), gradValue); - - Field::operator=(normalValue + transformGradValue); - } -} - - -cohesiveZoneFvPatchVectorField::cohesiveZoneFvPatchVectorField -( - const cohesiveZoneFvPatchVectorField& ptf, - const DimensionedField& iF -) -: - directionMixedFvPatchVectorField(ptf, iF), - UName_(ptf.UName_), - rheologyName_(ptf.rheologyName_), - cohesiveLawPtr_(ptf.cohesiveLawPtr_), - relaxationFactor_(ptf.relaxationFactor_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// Map from self -void cohesiveZoneFvPatchVectorField::autoMap -( - const fvPatchFieldMapper& m -) -{ - if (cohesiveLawPtr_ == NULL) - { - FatalErrorIn("cohesiveZoneFvPatchVectorField::autoMap") - << "NULL cohesive law" - << abort(FatalError); - } - - directionMixedFvPatchVectorField::autoMap(m); -} - - -// Reverse-map the given fvPatchField onto this fvPatchField -void cohesiveZoneFvPatchVectorField::rmap -( - const fvPatchField& ptf, - const labelList& addr -) -{ - directionMixedFvPatchVectorField::rmap(ptf, addr); - - const cohesiveZoneFvPatchVectorField& dmptf = - refCast(ptf); - - // No need to grab the cohesive zone pointer more than once - if (!cohesiveLawPtr_) - { - cohesiveLawPtr_ = dmptf.cohesiveLawPtr_->clone().ptr(); - - relaxationFactor_ = dmptf.relaxationFactor_; - } -} - - -void cohesiveZoneFvPatchVectorField::updateCoeffs() -{ - if (this->updated()) - { - return; - } - - // Looking up rheology - const rheologyModel& rheology = - this->db().objectRegistry::lookupObject(rheologyName_); - - const scalarField mu = - rheology.mu()().boundaryField()[patch().index()]; - - const scalarField lambda = - rheology.lambda()().boundaryField()[patch().index()]; - - const fvPatchField& gradU = - lookupPatchField - ( - "grad(" +UName_ + ")" - ); - - // Patch displacement - const vectorField& U = *this; - - // Patch stress - tensorField sigma = mu*(gradU + gradU.T()) + I*(lambda*tr(gradU)); - - // Patch normal - vectorField n = patch().nf(); - - // Normal stress component - scalarField sigmaN = (n&(n&sigma)); - - // Chech crack propagation - forAll(sigmaN, faceI) - { - vector cohesiveTraction = vector::zero; - - if - ( - (magSqr(valueFraction()[faceI]) > 1-SMALL) - && (sigmaN[faceI] >= law().sigmaMax().value()) - ) - { - // Switch to full traction boundary condition - valueFraction()[faceI] = symmTensor::zero; - - Info << "Crack started at face: " << faceI << endl; - - // Cohesive traction - cohesiveTraction = n[faceI]*law().sigmaMax().value(); - } - else if(magSqr(valueFraction()[faceI]) < SMALL) - { - // Normal displacement - scalar Un = -(n[faceI]&U[faceI]); - - if(Un < 0) - { - // Return from traction to symmetryPlane - refValue()[faceI] = vector::zero; - refGrad() = vector::zero; - valueFraction()[faceI] = sqr(n[faceI]); - Info << "Face removed from crack: " << faceI << endl; - } - else if(Un > law().deltaC().value()/2) - { - // Traction free - cohesiveTraction = vector::zero; - } - else - { - // Calculate cohesive traction from cohesive zone model - cohesiveTraction = law().traction(2*Un)*n[faceI]; - } - } - - if(magSqr(valueFraction()[faceI]) < SMALL) - { - cohesiveTraction = - relaxationFactor_*cohesiveTraction - + (1.0 - relaxationFactor_)*sigmaN[faceI]*n[faceI]; - - refGrad()[faceI] = - ( - cohesiveTraction - - ( - n[faceI] - & ( - mu[faceI]*gradU[faceI].T() - - (mu[faceI] + lambda[faceI])*gradU[faceI] - ) - ) - - n[faceI]*lambda[faceI]*tr(gradU[faceI]) - ) - /(2.0*mu[faceI] + lambda[faceI]); - } - } - - directionMixedFvPatchVectorField::updateCoeffs(); -} - - -// Write -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() - << token::END_STATEMENT << nl; - os.writeKeyword("relaxationFactor") << relaxationFactor_ - << token::END_STATEMENT << nl; - law().writeDict(os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchVectorField, cohesiveZoneFvPatchVectorField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.C deleted file mode 100644 index 948b1bad3..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.C +++ /dev/null @@ -1,328 +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 - newDirectionMixedFvPatchField - -Description - Doubly mixed fixed value-fixed gradient boundary condition - separated into a normal and a tangential component given a - direction vector. The mixture is controlled by two separate - valueFraction coefficients in the normal and tangential direction. - -\*---------------------------------------------------------------------------*/ - -#include "newDirectionMixedFvPatchField.H" -#include "transformField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template -void newDirectionMixedFvPatchField::checkNHat() -{ - scalarField magNHat(Foam::mag(nHat_)); - - if (min(magNHat) < SMALL) - { - FatalErrorIn("void newDirectionMixedFvPatchField::checkNHat()") - << "Incorrectly defined normal direction. mag = " - << min(magNHat) - << abort(FatalError); - } - - magNHat /= mag(magNHat); -} - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template -newDirectionMixedFvPatchField::newDirectionMixedFvPatchField -( - const fvPatch& p, - const DimensionedField& iF -) -: - fvPatchField(p, iF), - refValue_(p.size()), - refGrad_(p.size()), - nHat_(p.size()), - normalValueFraction_(p.size()), - tangentialValueFraction_(p.size()) -{} - - -template -newDirectionMixedFvPatchField::newDirectionMixedFvPatchField -( - const newDirectionMixedFvPatchField& ptf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - fvPatchField(ptf, p, iF, mapper), - refValue_(ptf.refValue_, mapper), - refGrad_(ptf.refGrad_, mapper), - nHat_(ptf.nHat_, mapper), - normalValueFraction_(ptf.normalValueFraction_, mapper), - tangentialValueFraction_(ptf.tangentialValueFraction_, mapper) -{ - this->checkNHat(); -} - - -template -newDirectionMixedFvPatchField::newDirectionMixedFvPatchField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - fvPatchField(p, iF, dict), - refValue_("refValue", dict, p.size()), - refGrad_("refGradient", dict, p.size()), - nHat_("nHat", dict, p.size()), - normalValueFraction_("normalValueFraction", dict, p.size()), - tangentialValueFraction_("tangentialValueFraction", dict, p.size()) -{ - this->checkNHat(); - evaluate(); -} - - -template -newDirectionMixedFvPatchField::newDirectionMixedFvPatchField -( - const newDirectionMixedFvPatchField& ptf, - const DimensionedField& iF -) -: - fvPatchField(ptf, iF), - refValue_(ptf.refValue_), - refGrad_(ptf.refGrad_), - nHat_(ptf.nHat_), - normalValueFraction_(ptf.normalValueFraction_), - tangentialValueFraction_(ptf.tangentialValueFraction_) -{ - this->checkNHat(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// Map from self -template -void newDirectionMixedFvPatchField::autoMap -( - const fvPatchFieldMapper& m -) -{ - Field::autoMap(m); - refValue_.autoMap(m); - refGrad_.autoMap(m); - nHat_.autoMap(m); - normalValueFraction_.autoMap(m); - tangentialValueFraction_.autoMap(m); -} - - -// Reverse-map the given fvPatchField onto this fvPatchField -template -void newDirectionMixedFvPatchField::rmap -( - const fvPatchField& ptf, - const labelList& addr -) -{ - fvPatchField::rmap(ptf, addr); - - const newDirectionMixedFvPatchField& dmptf = - refCast >(ptf); - - refValue_.rmap(dmptf.refValue_, addr); - refGrad_.rmap(dmptf.refGrad_, addr); - nHat_.rmap(dmptf.nHat_, addr); - normalValueFraction_.rmap(dmptf.normalValueFraction_, addr); - tangentialValueFraction_.rmap(dmptf.tangentialValueFraction_, addr); -} - - -// Return gradient at boundary -template -tmp > newDirectionMixedFvPatchField::snGrad() const -{ - Field pif = this->patchInternalField(); - - const scalarField& deltaCoeffs = this->patch().deltaCoeffs(); - const tensorField nn= nHat_*nHat_; - - Field normalValue = - normalValueFraction_*transform(nn, refValue_) - + (1.0 - normalValueFraction_)*transform(nn, pif + refGrad_/deltaCoeffs); - - Field tangentialValue = - tangentialValueFraction_*transform(I - nn, refValue_) - + (1.0 - tangentialValueFraction_)* - transform(I - nn, pif + refGrad_/deltaCoeffs); - - return (normalValue + tangentialValue - pif)*deltaCoeffs; -} - - -// Evaluate the field on the patch -template -void newDirectionMixedFvPatchField::evaluate() -{ - if (!this->updated()) - { - this->updateCoeffs(); - } - - Field pif = this->patchInternalField(); - - const scalarField& deltaCoeffs = this->patch().deltaCoeffs(); - const tensorField nn = nHat_*nHat_; - - Field normalValue = - normalValueFraction_*transform(nn, refValue_) - + (1.0 - normalValueFraction_)*transform(nn, pif + refGrad_/deltaCoeffs); - - Field tangentialValue = - tangentialValueFraction_*transform(I - nn, refValue_) - + (1.0 - tangentialValueFraction_)* - transform(I - nn, pif + refGrad_/deltaCoeffs); - - Field::operator=(normalValue + tangentialValue); - - fvPatchField::evaluate(); -} - - -//- Return the matrix diagonal coefficients corresponding to the -// evaluation of the value of this patchField -template -tmp > newDirectionMixedFvPatchField::valueInternalCoeffs -( - const tmp& -) const -{ - const Field one(this->size(), pTraits::one); - const tensorField nn= nHat_*nHat_; - - return - transform(nn, one)*(1.0 - normalValueFraction_) - + transform(I - nn, one)*(1.0 - tangentialValueFraction_); - -} - -//- Return the matrix source coefficients corresponding to the -// evaluation of the value of this patchField -template -tmp > newDirectionMixedFvPatchField::valueBoundaryCoeffs -( - const tmp& -) const -{ - const scalarField& deltaCoeffs = this->patch().deltaCoeffs(); - const tensorField nn= nHat_*nHat_; - - return - normalValueFraction_*transform(nn, refValue_) - + (1.0 - normalValueFraction_)*transform(nn, refGrad_)/deltaCoeffs - + tangentialValueFraction_*transform(I - nn, refValue_) - + (1.0 - tangentialValueFraction_)* - transform(I - nn, refGrad_)/deltaCoeffs; - - // Alternative; allows fiddling internal/boundary split for value coeffs -// return -// *this -// - scale -// ( -// valueInternalCoeffs(this->patch().weights()), -// this->patchInternalField() -// ); -} - -//- Return the matrix diagonal coefficients corresponding to the -// evaluation of the gradient of this patchField -template -tmp > -newDirectionMixedFvPatchField::gradientInternalCoeffs() const -{ - const scalarField& deltaCoeffs = this->patch().deltaCoeffs(); - const Field one(this->size(), pTraits::one); - const tensorField nn= nHat_*nHat_; - - return - -transform(nn, one)*normalValueFraction_*deltaCoeffs - - transform(I - nn, one)*tangentialValueFraction_*deltaCoeffs; -} - -//- Return the matrix source coefficients corresponding to the -// evaluation of the gradient of this patchField -template -tmp > -newDirectionMixedFvPatchField::gradientBoundaryCoeffs() const -{ - const scalarField& deltaCoeffs = this->patch().deltaCoeffs(); - const tensorField nn= nHat_*nHat_; - - return - normalValueFraction_*deltaCoeffs*transform(nn, refValue_) - + (1.0 - normalValueFraction_)*transform(nn, refGrad_) - + tangentialValueFraction_*deltaCoeffs*transform(I - nn, refValue_) - + (1.0 - tangentialValueFraction_)*transform(I - nn, refGrad_); - - // Alternative; allows fiddling internal/boundary split for grad coeffs -// return -// snGrad() -// - scale(gradientInternalCoeffs(), this->patchInternalField()); -} - - -// Write -template -void newDirectionMixedFvPatchField::write(Ostream& os) const -{ - fvPatchField::write(os); - refValue_.writeEntry("refValue", os); - refGrad_.writeEntry("refGradient", os); - nHat_.writeEntry("nHat", os); - normalValueFraction_.writeEntry("normalValueFraction", os); - tangentialValueFraction_.writeEntry("tangentialValueFraction", os); - this->writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.H b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.H deleted file mode 100644 index 8a972fa30..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/newDirectionMixed/newDirectionMixedFvPatchField.H +++ /dev/null @@ -1,302 +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 - newDirectionMixedFvPatchField - -Description - Doubly mixed fixed value-fixed gradient boundary condition - separated into a normal and a tangential component given a - direction vector. The mixture is controlled by two separate - valueFraction coefficients in the normal and tangential direction. - -SourceFiles - newDirectionMixedFvPatchField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef newDirectionMixedFvPatchField_H -#define newDirectionMixedFvPatchField_H - -#include "fvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class directionMixedFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -template -class newDirectionMixedFvPatchField -: - public fvPatchField -{ - // Private data - - //- Value field - Field refValue_; - - //- Gradient field - Field refGrad_; - - //- Normal direction - vectorField nHat_; - - //- Fraction (0-1) of value used for normal component - scalarField normalValueFraction_; - - //- Fraction (0-1) of value used for tangential component - scalarField tangentialValueFraction_; - - - // Private Member Functions - - //- Check and normalize nHat - void checkNHat(); - - -public: - - //- Runtime type information - TypeName("newDirectionMixed"); - - - // Constructors - - //- Construct from patch and internal field - newDirectionMixedFvPatchField - ( - const fvPatch&, - const DimensionedField& - ); - - //- Construct from patch, internal field and dictionary - newDirectionMixedFvPatchField - ( - const fvPatch&, - const DimensionedField&, - const dictionary& - ); - - //- Construct by mapping given newDirectionMixedFvPatchField onto - // a new patch - newDirectionMixedFvPatchField - ( - const newDirectionMixedFvPatchField&, - const fvPatch&, - const DimensionedField&, - const fvPatchFieldMapper& - ); - - //- Construct and return a clone - virtual tmp > clone() const - { - return tmp > - ( - new newDirectionMixedFvPatchField(*this) - ); - } - - //- Construct as copy setting internal field reference - newDirectionMixedFvPatchField - ( - const newDirectionMixedFvPatchField&, - const DimensionedField& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp > clone - ( - const DimensionedField& iF - ) const - { - return tmp > - ( - new newDirectionMixedFvPatchField(*this, iF) - ); - } - - - // Member functions - - // Access - - //- Return true if this patch field fixes a value. - // Needed to check if a level has to be specified while solving - // Poissons equations. - virtual bool fixesValue() const - { - return true; - } - - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchField&, - const labelList& - ); - - - // Return defining fields - - virtual Field& refValue() - { - return refValue_; - } - - virtual const Field& refValue() const - { - return refValue_; - } - - virtual Field& refGrad() - { - return refGrad_; - } - - virtual const Field& refGrad() const - { - return refGrad_; - } - - virtual vectorField& nHat() - { - return nHat_; - } - - virtual const vectorField& nHat() const - { - return nHat_; - } - - virtual scalarField& normalValueFraction() - { - return normalValueFraction_; - } - - virtual const scalarField& normalValueFraction() const - { - return normalValueFraction_; - } - - - virtual scalarField& tangentialValueFraction() - { - return tangentialValueFraction_; - } - - virtual const scalarField& tangentialValueFraction() const - { - return tangentialValueFraction_; - } - - - // Evaluation functions - - //- Return gradient at boundary - virtual tmp > snGrad() const; - - //- Evaluate the patch field - virtual void evaluate(); - - //- Return the matrix diagonal coefficients corresponding to the - // evaluation of the value of this patchField with given weights - virtual tmp > valueInternalCoeffs - ( - const tmp& - ) const; - - //- Return the matrix source coefficients corresponding to the - // evaluation of the value of this patchField with given weights - virtual tmp > valueBoundaryCoeffs - ( - const tmp& - ) const; - - //- Return the matrix diagonal coefficients corresponding to the - // evaluation of the gradient of this patchField - virtual tmp > gradientInternalCoeffs() const; - - //- Return the matrix source coefficients corresponding to the - // evaluation of the gradient of this patchField - virtual tmp > gradientBoundaryCoeffs() const; - - - //- Write - virtual void write(Ostream&) const; - - - // Member operators - - virtual void operator=(const fvPatchField&) {} - virtual void operator+=(const fvPatchField&) {} - virtual void operator-=(const fvPatchField&) {} - virtual void operator*=(const fvPatchField&) {} - virtual void operator/=(const fvPatchField&) {} - - virtual void operator=(const Field&) {} - virtual void operator+=(const Field&) {} - virtual void operator-=(const Field&) {} - virtual void operator*=(const Field&) {} - virtual void operator/=(const Field&) {} - - virtual void operator=(const Type&) {} - virtual void operator+=(const Type&) {} - virtual void operator-=(const Type&) {} - virtual void operator*=(const scalar) {} - virtual void operator/=(const scalar) {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "newDirectionMixedFvPatchField.C" -#else -# ifdef xlC -# pragma implementation("newDirectionMixedFvPatchField.C") -# endif -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.C deleted file mode 100644 index 913373c5a..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.C +++ /dev/null @@ -1,243 +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 "nusseltFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "surfaceFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nusseltFvPatchScalarField::nusseltFvPatchScalarField -( - const fvPatch& p, - const DimensionedField& iF -) -: - mixedFvPatchScalarField(p, iF), - DTName_("undefined"), - Tinf_(0.0), - alpha_(p.size(), 0.0) -{ - refValue() = 0.0; - refGrad() = 0.0; - valueFraction() = 0.0; -} - - -nusseltFvPatchScalarField::nusseltFvPatchScalarField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - mixedFvPatchScalarField(p, iF), - DTName_(dict.lookup("DT")), - Tinf_(readScalar(dict.lookup("Tinf"))), - alpha_("alpha", dict, p.size()) -{ - if (dict.found("value")) - { - fvPatchField::operator= - ( - scalarField("value", dict, p.size()) - ); - } - else - { - fvPatchField::operator=(patchInternalField()); - } - - refValue() = *this; - refGrad() = 0.0; - valueFraction() = 0.0; - - if (Tinf_ < SMALL) - { - FatalIOErrorIn - ( - "nusseltFvPatchScalarField::nusseltFvPatchScalarField\n" - "(\n" - " const fvPatch&,\n" - " const DimensionedField&,\n" - " const dictionary&\n" - ")", - dict - ) << "unphysical Tinf specified (Tinf = 0 or negative)" - << exit(FatalError); - } - - if (min(alpha_) < -SMALL) - { - FatalIOErrorIn - ( - "nusseltFvPatchScalarField::nusseltFvPatchScalarField\n" - "(\n" - " const fvPatch&,\n" - " const DimensionedField&,\n" - " const dictionary&\n" - ")", - dict - ) << "unphysical alpha specified (alpha = 0 or negative)" << endl - << exit(FatalError); - } -} - - -nusseltFvPatchScalarField::nusseltFvPatchScalarField -( - const nusseltFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - mixedFvPatchScalarField(ptf, p, iF, mapper), - DTName_(ptf.DTName_), - Tinf_(ptf.Tinf_), - alpha_(ptf.alpha_) -{} - - -nusseltFvPatchScalarField::nusseltFvPatchScalarField -( - const nusseltFvPatchScalarField& ptf -) -: - mixedFvPatchScalarField(ptf), - DTName_(ptf.DTName_), - Tinf_(ptf.Tinf_), - alpha_(ptf.alpha_) -{} - - -nusseltFvPatchScalarField::nusseltFvPatchScalarField -( - const nusseltFvPatchScalarField& ptpsf, - const DimensionedField& iF -) -: - mixedFvPatchScalarField(ptpsf, iF), - DTName_(ptpsf.DTName_), - Tinf_(ptpsf.Tinf_), - alpha_(ptpsf.alpha_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// Map from self -void nusseltFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - mixedFvPatchScalarField::autoMap(m); - alpha_.autoMap(m); -} - - -// Reverse-map the given fvPatchField onto this fvPatchField -void nusseltFvPatchScalarField::rmap -( - const fvPatchField& ptf, - const labelList& addr -) -{ - mixedFvPatchField::rmap(ptf, addr); - - const nusseltFvPatchScalarField& npsf = - refCast(ptf); - - alpha_.rmap(npsf.alpha_, addr); -} - - -// Update the coefficients associated with the patch field -void nusseltFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - scalarField Tinternal = patchInternalField(); - - // Lookup temperature diffusivity of the patch - const fvPatchField& DT = - this->lookupPatchField(DTName_); - - // Calculate flux - scalarField tempFlux = alpha_*(Tinternal - Tinf_); - - refValue() = - neg(tempFlux)* - min - ( - Tinternal - tempFlux/(DT*patch().deltaCoeffs()), - Tinf_ - ) - + pos(tempFlux)* - max - ( - Tinternal - tempFlux/(DT*patch().deltaCoeffs()), - Tinf_ - ); - - refGrad() = -tempFlux; - valueFraction() = pos(tempFlux); - - mixedFvPatchScalarField::updateCoeffs(); -} - - -// Write -void nusseltFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - os.writeKeyword("DT") << DTName_ << token::END_STATEMENT << nl; - os.writeKeyword("Tinf") << Tinf_ << token::END_STATEMENT << endl; - alpha_.writeEntry("alpha", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, nusseltFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.H b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.H deleted file mode 100644 index 01e25dd10..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/nusselt/nusseltFvPatchScalarField.H +++ /dev/null @@ -1,201 +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 - -Class - nusseltFvPatchScalarField - -Description - Nusselt boundary condition for temperature - -SourceFiles - nusseltFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nusseltFvPatchScalarFields_H -#define nusseltFvPatchScalarFields_H - -#include "mixedFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class nusseltFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class nusseltFvPatchScalarField -: - public mixedFvPatchScalarField -{ - - // Private data - - //- Name of the displacement field - const word DTName_; - - //- Reference temperature at infinity - scalar Tinf_; - - //- Heat transfer coefficient - scalarField alpha_; - - -public: - - //- Runtime type information - TypeName("nusselt"); - - - // Constructors - - //- Construct from patch and internal field - nusseltFvPatchScalarField - ( - const fvPatch&, - const DimensionedField& - ); - - //- Construct from patch, internal field and dictionary - nusseltFvPatchScalarField - ( - const fvPatch&, - const DimensionedField&, - const dictionary& - ); - - //- Construct by mapping given nusseltFvPatchScalarField - // onto a new patch - nusseltFvPatchScalarField - ( - const nusseltFvPatchScalarField&, - const fvPatch&, - const DimensionedField&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nusseltFvPatchScalarField - ( - const nusseltFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp clone() const - { - return tmp - ( - new nusseltFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - nusseltFvPatchScalarField - ( - const nusseltFvPatchScalarField&, - const DimensionedField& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp clone - ( - const DimensionedField& iF - ) const - { - return tmp - ( - new nusseltFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Access - - //- Return the temperature at infinity - scalar Tinf() const - { - return Tinf_; - } - - //- Return reference to the temperature at infinity - // to allow adjustment - scalar& Tinf() - { - return Tinf_; - } - - //- Return the heat transfer coefficient - const scalarField& alpha() const - { - return alpha_; - } - - //- Return reference to the heat transfer coefficient - // to allow adjustment - scalarField& alpha() - { - return alpha_; - } - - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchField&, - const labelList& - ); - - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C deleted file mode 100644 index 73915d22a..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.C +++ /dev/null @@ -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& 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& 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& 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& 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(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(rheologyName_); - - const scalarField mu = rheology.mu()().boundaryField()[patch().index()]; - const scalarField lambda = - rheology.lambda()().boundaryField()[patch().index()]; - - vectorField n = patch().nf(); - - const fvPatchField& gradU = - lookupPatchField("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 - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.H b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.H deleted file mode 100644 index 36cc9d933..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacement/tractionDisplacementFvPatchVectorField.H +++ /dev/null @@ -1,199 +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 - -Class - tractionDisplacementFvPatchVectorField - -Description - Fixed traction boundary condition for the standard linear elastic, fixed - coefficient displacement equation (stressedFoam). - -Author - Hrvoje Jasak, Wikki Ltd. All rights reserved - -SourceFiles - tractionDisplacementFvPatchVectorField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef tractionDisplacementFvPatchVectorField_H -#define tractionDisplacementFvPatchVectorField_H - -#include "fvPatchFields.H" -#include "fixedGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class tractionDisplacementFvPatchVectorField Declaration -\*---------------------------------------------------------------------------*/ - -class tractionDisplacementFvPatchVectorField -: - public fixedGradientFvPatchVectorField -{ - - // Private Data - - //- Name of the displacement field - const word UName_; - - //- Name of rheology model - const word rheologyName_; - - //- Traction - vectorField traction_; - - //- Pressure - scalarField pressure_; - - -public: - - //- Runtime type information - TypeName("tractionDisplacement"); - - - // Constructors - - //- Construct from patch and internal field - tractionDisplacementFvPatchVectorField - ( - const fvPatch&, - const DimensionedField& - ); - - //- Construct from patch, internal field and dictionary - tractionDisplacementFvPatchVectorField - ( - const fvPatch&, - const DimensionedField&, - const dictionary& - ); - - //- Construct by mapping given - // tractionDisplacementFvPatchVectorField onto a new patch - tractionDisplacementFvPatchVectorField - ( - const tractionDisplacementFvPatchVectorField&, - const fvPatch&, - const DimensionedField&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - tractionDisplacementFvPatchVectorField - ( - const tractionDisplacementFvPatchVectorField& - ); - - //- Construct and return a clone - virtual tmp clone() const - { - return tmp - ( - new tractionDisplacementFvPatchVectorField(*this) - ); - } - - //- Construct as copy setting internal field reference - tractionDisplacementFvPatchVectorField - ( - const tractionDisplacementFvPatchVectorField&, - const DimensionedField& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp clone - ( - const DimensionedField& iF - ) const - { - return tmp - ( - new tractionDisplacementFvPatchVectorField(*this, iF) - ); - } - - - // Member functions - - // Access - - virtual const vectorField& traction() const - { - return traction_; - } - - virtual vectorField& traction() - { - return traction_; - } - - virtual const scalarField& pressure() const - { - return pressure_; - } - - virtual scalarField& pressure() - { - return pressure_; - } - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchVectorField&, - const labelList& - ); - - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.C b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.C deleted file mode 100644 index bf1ae447b..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.C +++ /dev/null @@ -1,243 +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 "tractionDisplacementThermoFvPatchVectorField.H" -#include "addToRunTimeSelectionTable.H" -#include "volFields.H" -#include "rheologyModel.H" -#include "thermalModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -tractionDisplacementThermoFvPatchVectorField:: -tractionDisplacementThermoFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF -) -: - fixedGradientFvPatchVectorField(p, iF), - UName_("undefined"), - TName_("undefined"), - rheologyName_("undefined"), - thermoName_("undefined"), - traction_(p.size(), vector::zero), - pressure_(p.size(), 0.0) -{ - fvPatchVectorField::operator=(patchInternalField()); - gradient() = vector::zero; -} - - -tractionDisplacementThermoFvPatchVectorField:: -tractionDisplacementThermoFvPatchVectorField -( - const fvPatch& p, - const DimensionedField& iF, - const dictionary& dict -) -: - fixedGradientFvPatchVectorField(p, iF), - UName_(dict.lookup("U")), - TName_(dict.lookup("T")), - rheologyName_(dict.lookup("rheology")), - thermoName_(dict.lookup("thermo")), - traction_("traction", dict, p.size()), - pressure_("pressure", dict, p.size()) -{ - fvPatchVectorField::operator=(patchInternalField()); - gradient() = vector::zero; -} - - -tractionDisplacementThermoFvPatchVectorField:: -tractionDisplacementThermoFvPatchVectorField -( - const tractionDisplacementThermoFvPatchVectorField& tdpvf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - fixedGradientFvPatchVectorField(tdpvf, p, iF, mapper), - UName_(tdpvf.UName_), - TName_(tdpvf.TName_), - rheologyName_(tdpvf.rheologyName_), - thermoName_(tdpvf.thermoName_), - traction_(tdpvf.traction_, mapper), - pressure_(tdpvf.pressure_, mapper) -{} - - -tractionDisplacementThermoFvPatchVectorField:: -tractionDisplacementThermoFvPatchVectorField -( - const tractionDisplacementThermoFvPatchVectorField& tdpvf -) -: - fixedGradientFvPatchVectorField(tdpvf), - UName_(tdpvf.UName_), - TName_(tdpvf.TName_), - rheologyName_(tdpvf.rheologyName_), - thermoName_(tdpvf.thermoName_), - traction_(tdpvf.traction_), - pressure_(tdpvf.pressure_) -{} - - -tractionDisplacementThermoFvPatchVectorField:: -tractionDisplacementThermoFvPatchVectorField -( - const tractionDisplacementThermoFvPatchVectorField& tdpvf, - const DimensionedField& iF -) -: - fixedGradientFvPatchVectorField(tdpvf, iF), - UName_(tdpvf.UName_), - TName_(tdpvf.TName_), - rheologyName_(tdpvf.rheologyName_), - thermoName_(tdpvf.thermoName_), - traction_(tdpvf.traction_), - pressure_(tdpvf.pressure_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void tractionDisplacementThermoFvPatchVectorField::autoMap -( - const fvPatchFieldMapper& m -) -{ - fixedGradientFvPatchVectorField::autoMap(m); - traction_.autoMap(m); - pressure_.autoMap(m); -} - - -// Reverse-map the given fvPatchField onto this fvPatchField -void tractionDisplacementThermoFvPatchVectorField::rmap -( - const fvPatchVectorField& ptf, - const labelList& addr -) -{ - fixedGradientFvPatchVectorField::rmap(ptf, addr); - - const tractionDisplacementThermoFvPatchVectorField& dmptf = - refCast(ptf); - - traction_.rmap(dmptf.traction_, addr); - pressure_.rmap(dmptf.pressure_, addr); -} - - -// Update the coefficients associated with the patch field -void tractionDisplacementThermoFvPatchVectorField::updateCoeffs() -{ - if (updated()) - { - return; - } - - // Looking up rheology - const rheologyModel& rheology = - this->db().objectRegistry:: - lookupObject(rheologyName_); - - const scalarField mu = rheology.mu()().boundaryField()[patch().index()]; - const scalarField lambda = - rheology.lambda()().boundaryField()[patch().index()]; - - vectorField n = patch().nf(); - - const fvPatchField& gradU = - lookupPatchField("grad(" +UName_ + ")"); - - // Thermal component - - // Looking up thermo - const thermalModel& thermo = - this->db().objectRegistry::lookupObject(thermoName_); - - const fvPatchField& T = - lookupPatchField(TName_); - - const scalarField rhoThreeKalpha = - rheology.rho()().boundaryField()[patch().index()]* - rheology.threeK()().boundaryField()[patch().index()]* - thermo.alpha()().boundaryField()[patch().index()]; - - const scalarField T0 = thermo.T0()().boundaryField()[patch().index()]; - - gradient() = - ( - (traction_ - (pressure_)*n) - - (n & (mu*gradU.T() - (mu + lambda)*gradU)) - - n*lambda*tr(gradU) - + n*rhoThreeKalpha*(T - T0) - )/(2.0*mu + lambda); - - fixedGradientFvPatchVectorField::updateCoeffs(); -} - - -// Write -void tractionDisplacementThermoFvPatchVectorField::write -( - Ostream& os -) const -{ - fvPatchVectorField::write(os); - os.writeKeyword("U") << UName_ << token::END_STATEMENT << nl; - os.writeKeyword("T") << TName_ << token::END_STATEMENT << nl; - os.writeKeyword("rheology") << rheologyName_ << token::END_STATEMENT << nl; - os.writeKeyword("thermo") << thermoName_ << token::END_STATEMENT << nl; - traction_.writeEntry("traction", os); - pressure_.writeEntry("pressure", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchVectorField, - tractionDisplacementThermoFvPatchVectorField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.H b/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.H deleted file mode 100644 index 9c6838f29..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/fvPatchFields/tractionDisplacementThermo/tractionDisplacementThermoFvPatchVectorField.H +++ /dev/null @@ -1,201 +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 - -Class - tractionDisplacementThermoFvPatchVectorField - -Author - Hrvoje Jasak, Wikki Ltd. All rights reserved - -SourceFiles - tractionDisplacementThermoFvPatchVectorField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef tractionDisplacementThermoFvPatchVectorField_H -#define tractionDisplacementThermoFvPatchVectorField_H - -#include "fvPatchFields.H" -#include "fixedGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class tractionDisplacementThermoFvPatchVectorField Declaration -\*---------------------------------------------------------------------------*/ - -class tractionDisplacementThermoFvPatchVectorField -: - public fixedGradientFvPatchVectorField -{ - - // Private Data - - //- Name of the displacement field - const word UName_; - - //- Name of the temperature field - const word TName_; - - //- Name of rheology model - const word rheologyName_; - - //- Name of thermal model - const word thermoName_; - - //- Traction - vectorField traction_; - - //- Pressure - scalarField pressure_; - - -public: - - //- Runtime type information - TypeName("tractionDisplacementThermo"); - - - // Constructors - - //- Construct from patch and internal field - tractionDisplacementThermoFvPatchVectorField - ( - const fvPatch&, - const DimensionedField& - ); - - //- Construct from patch, internal field and dictionary - tractionDisplacementThermoFvPatchVectorField - ( - const fvPatch&, - const DimensionedField&, - const dictionary& - ); - - //- Construct by mapping given - // tractionDisplacementThermoFvPatchVectorField onto a new patch - tractionDisplacementThermoFvPatchVectorField - ( - const tractionDisplacementThermoFvPatchVectorField&, - const fvPatch&, - const DimensionedField&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - tractionDisplacementThermoFvPatchVectorField - ( - const tractionDisplacementThermoFvPatchVectorField& - ); - - //- Construct and return a clone - virtual tmp clone() const - { - return tmp - ( - new tractionDisplacementThermoFvPatchVectorField(*this) - ); - } - - //- Construct as copy setting internal field reference - tractionDisplacementThermoFvPatchVectorField - ( - const tractionDisplacementThermoFvPatchVectorField&, - const DimensionedField& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp clone - ( - const DimensionedField& iF - ) const - { - return tmp - ( - new tractionDisplacementThermoFvPatchVectorField(*this, iF) - ); - } - - - // Member functions - - // Access - - virtual const vectorField& traction() const - { - return traction_; - } - - virtual vectorField& traction() - { - return traction_; - } - - virtual const scalarField& pressure() const - { - return pressure_; - } - - virtual scalarField& pressure() - { - return pressure_; - } - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchVectorField&, - const labelList& - ); - - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.C deleted file mode 100644 index 12ec4a171..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.C +++ /dev/null @@ -1,210 +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 "BurgersViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(BurgersViscoelastic, 0); - addToRunTimeSelectionTable(rheologyLaw, BurgersViscoelastic, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::BurgersViscoelastic::BurgersViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k1_(dict.lookup("k1")), - eta1_(dict.lookup("eta1")), - k2_(dict.lookup("k2")), - eta2_(dict.lookup("eta2")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::BurgersViscoelastic::~BurgersViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::BurgersViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::BurgersViscoelastic::E(scalar t) const -{ - scalar E = 0.0; - - if(t>=0) - { - scalar p1 = eta1_.value()/k1_.value() - + eta1_.value()/k2_.value() - + 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(); - - scalar A = sqrt(sqr(p1) - 4*p2); - - scalar r1 = (p1 - A)/(2*p2); - - scalar r2 = (p1 + A)/(2*p2); - - E = (q1 - q2*r1)*exp(-r1*t)/A - (q1 - q2*r2)*exp(-r2*t)/A; - } - - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("E", k1_.dimensions(), E), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::BurgersViscoelastic::nu(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::BurgersViscoelastic::J(scalar t) const -{ - scalar J = 0.0; - - if(t >= 0) - { - J = 1.0/k1_.value() - + (1 - exp(-k2_.value()*t/eta2_.value()))/k2_.value() - + t/eta1_.value(); - } - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "J", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("J", dimless/k1_.dimensions(), J), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.H b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.H deleted file mode 100644 index 662be96a2..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/BurgersViscoelastic/BurgersViscoelastic.H +++ /dev/null @@ -1,154 +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 - BurgersViscoelastic - -Description - Linear elastic rheology - -SourceFiles - BurgersViscoelastic.C - -\*---------------------------------------------------------------------------*/ - -#ifndef BurgersViscoelastic_H -#define BurgersViscoelastic_H - -#include "rheologyLaw.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class BurgersViscoelastic Declaration -\*---------------------------------------------------------------------------*/ - -class BurgersViscoelastic -: - public rheologyLaw -{ - // Private data - - //- Density - dimensionedScalar rho_; - - //- Linear spring constant of Maxwell model - dimensionedScalar k1_; - - //- Coefficient of viscosity of Maxwell model - dimensionedScalar eta1_; - - //- Linear spring constant of Kelvin model - dimensionedScalar k2_; - - //- Coefficient of viscosity of Kelvin model - dimensionedScalar eta2_; - - //- Poisson's ratio - dimensionedScalar nu_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct - BurgersViscoelastic(const BurgersViscoelastic&); - - //- Disallow default bitwise assignment - void operator=(const BurgersViscoelastic&); - - -public: - - //- Runtime type information - TypeName("BurgersViscoelastic"); - - // Static data members - - - // Constructors - - //- Construct from dictionary - BurgersViscoelastic - ( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict - ); - - - // Destructor - - virtual ~BurgersViscoelastic(); - - - // Member Functions - - //- Return density - virtual tmp rho() const - { - return rho(0); - } - - //- Return modulus of elasticity - virtual tmp E() const - { - return E(0); - } - - //- Return Poisson's ratio - virtual tmp nu() const - { - return nu(0); - } - - //- Return density - virtual tmp rho(scalar t) const; - - //- Return modulus of elasticity - virtual tmp E(scalar t) const; - - //- Return Poisson's ratio - virtual tmp nu(scalar t) const; - - //- Return creep compliance - virtual tmp J(scalar t) const; - - //- Correct the rheological model - virtual void correct() - {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C deleted file mode 100644 index e902243fb..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/KelvinSLSViscoelastic/KelvinSLSViscoelastic.C +++ /dev/null @@ -1,203 +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 "KelvinSLSViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(KelvinSLSViscoelastic, 0); - addToRunTimeSelectionTable(rheologyLaw, KelvinSLSViscoelastic, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::KelvinSLSViscoelastic::KelvinSLSViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k1_(dict.lookup("k1")), - k2_(dict.lookup("k2")), - eta2_(dict.lookup("eta2")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::KelvinSLSViscoelastic::~KelvinSLSViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::KelvinSLSViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::KelvinSLSViscoelastic::E(scalar t) const -{ - scalar E = 0.0; - - 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 tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("E", k1_.dimensions(), E), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::KelvinSLSViscoelastic::nu(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::KelvinSLSViscoelastic::J(scalar t) const -{ - scalar J = 0.0; - - 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()); - - J = 1.0/q0 + (p1/q1 - 1.0/q0)*exp(-q0*t/q1); - } - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "J", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("J", dimless/k1_.dimensions(), J), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C deleted file mode 100644 index 19137ea1e..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.C +++ /dev/null @@ -1,204 +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 "MaxwellElasticViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(MaxwellElasticViscoelastic, 0); - addToRunTimeSelectionTable - ( - rheologyLaw, - MaxwellElasticViscoelastic, - dictionary - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::MaxwellElasticViscoelastic::MaxwellElasticViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k_(dict.lookup("k")), - eta_(dict.lookup("eta")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::MaxwellElasticViscoelastic::~MaxwellElasticViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp -Foam::MaxwellElasticViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp -Foam::MaxwellElasticViscoelastic::E(scalar t) const -{ - scalar tau = eta_.value()/k_.value(); - - tmp tE - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - k_*exp(-t/tau), - zeroGradientFvPatchScalarField::typeName - ) - ); - - if (t < 0) - { - tE().internalField() = 0.0; - tE().correctBoundaryConditions(); - } - - return tE; -} - - -Foam::tmp -Foam::MaxwellElasticViscoelastic::nu(scalar t) const -{ - scalar tau = eta_.value()/k_.value(); - - scalar E0 = k_.value(); - - scalar Et = k_.value()*exp(-t/tau); - - scalar nu = 0.5 - Et/(6*E0); - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("nu", dimless, nu), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp -Foam::MaxwellElasticViscoelastic::J(scalar t) const -{ - tmp tJ - ( - new volScalarField - ( - IOobject - ( - "J", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar - ( - "J", - dimless/k_.dimensions(), - 1.0/k_.value() + t/eta_.value() - ), - zeroGradientFvPatchScalarField::typeName - ) - ); - - if (t < 0) - { - tJ().internalField() = 0.0; - tJ().correctBoundaryConditions(); - } - - return tJ; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.H b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.H deleted file mode 100644 index 50bb06fab..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellElasticViscoelastic/MaxwellElasticViscoelastic.H +++ /dev/null @@ -1,148 +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 - MaxwellElasticViscoelastic - -Description - Linear elastic rheology - -SourceFiles - MaxwellElasticViscoelastic.C - -\*---------------------------------------------------------------------------*/ - -#ifndef MaxwellElasticViscoelastic_H -#define MaxwellElasticViscoelastic_H - -#include "rheologyLaw.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class MaxwellElasticViscoelastic Declaration -\*---------------------------------------------------------------------------*/ - -class MaxwellElasticViscoelastic -: - public rheologyLaw -{ - // Private data - - //- Density - dimensionedScalar rho_; - - //- Linear spring constant - dimensionedScalar k_; - - //- Coefficient of viscosity - dimensionedScalar eta_; - - //- Poisson's ratio - dimensionedScalar nu_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct - MaxwellElasticViscoelastic(const MaxwellElasticViscoelastic&); - - //- Disallow default bitwise assignment - void operator=(const MaxwellElasticViscoelastic&); - - -public: - - //- Runtime type information - TypeName("MaxwellElasticViscoelastic"); - - // Static data members - - - // Constructors - - //- Construct from dictionary - MaxwellElasticViscoelastic - ( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict - ); - - - // Destructor - - virtual ~MaxwellElasticViscoelastic(); - - - // Member Functions - - //- Return density - virtual tmp rho() const - { - return rho(0); - } - - //- Return modulus of elasticity - virtual tmp E() const - { - return E(0); - } - - //- Return Poisson's ratio - virtual tmp nu() const - { - return nu(0); - } - - //- Return density - virtual tmp rho(scalar t) const; - - //- Return modulus of elasticity - virtual tmp E(scalar t) const; - - //- Return Poisson's ratio - virtual tmp nu(scalar t) const; - - //- Return creep compliance - virtual tmp J(scalar t) const; - - //- Correct the rheological model - virtual void correct() - {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C deleted file mode 100644 index 25edfff3b..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.C +++ /dev/null @@ -1,197 +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 "MaxwellSLSViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(MaxwellSLSViscoelastic, 0); - addToRunTimeSelectionTable(rheologyLaw, MaxwellSLSViscoelastic, dictionary); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::MaxwellSLSViscoelastic::MaxwellSLSViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k1_(dict.lookup("k1")), - eta1_(dict.lookup("eta1")), - k2_(dict.lookup("k2")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::MaxwellSLSViscoelastic::~MaxwellSLSViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp -Foam::MaxwellSLSViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::MaxwellSLSViscoelastic::E(scalar t) const -{ - scalar E = 0.0; - - if(t>=0) - { - E = k2_.value() + k1_.value()*exp(-k1_.value()*t/eta1_.value()); - } - - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("E", k1_.dimensions(), E), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::MaxwellSLSViscoelastic::nu(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::MaxwellSLSViscoelastic::J(scalar t) const -{ - scalar J = 0.0; - - if(t>=0) - { - scalar Jg = 1.0/(k2_.value() + k1_.value()); - - scalar Jr = 1.0/k2_.value(); - - scalar tau = eta1_.value()/k1_.value(); - - scalar tauC = tau*(k1_.value() + k2_.value())/k2_.value(); - - J = Jg + (Jr - Jg)*(1.0 - exp(-t/tauC)); - } - - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "J", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("J", dimless/k1_.dimensions(), J), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.H b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.H deleted file mode 100644 index f37f41445..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellSLSViscoelastic/MaxwellSLSViscoelastic.H +++ /dev/null @@ -1,150 +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 - MaxwellSLSViscoelastic - -Description - Linear elastic rheology - -SourceFiles - MaxwellSLSViscoelastic.C - -\*---------------------------------------------------------------------------*/ - -#ifndef MaxwellSLSViscoelastic_H -#define MaxwellSLSViscoelastic_H - -#include "rheologyLaw.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class MaxwellSLSViscoelastic Declaration -\*---------------------------------------------------------------------------*/ - -class MaxwellSLSViscoelastic -: - public rheologyLaw -{ - // Private data - - //- Density - dimensionedScalar rho_; - - //- Linear spring constant of Maxwell model - dimensionedScalar k1_; - - //- Coefficient of viscosity of Maxwell model - dimensionedScalar eta1_; - - //- Linear spring constant - dimensionedScalar k2_; - - //- Poisson's ratio - dimensionedScalar nu_; - - // Private Member Functions - - //- Disallow default bitwise copy construct - MaxwellSLSViscoelastic(const MaxwellSLSViscoelastic&); - - //- Disallow default bitwise assignment - void operator=(const MaxwellSLSViscoelastic&); - - -public: - - //- Runtime type information - TypeName("MaxwellSLSViscoelastic"); - - // Static data members - - - // Constructors - - //- Construct from dictionary - MaxwellSLSViscoelastic - ( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict - ); - - - // Destructor - - virtual ~MaxwellSLSViscoelastic(); - - - // Member Functions - - //- Return density - virtual tmp rho() const - { - return rho(0); - } - - //- Return modulus of elasticity - virtual tmp E() const - { - return E(0); - } - - //- Return Poisson's ratio - virtual tmp nu() const - { - return nu(0); - } - - //- Return density - virtual tmp rho(scalar t) const; - - //- Return modulus of elasticity - virtual tmp E(scalar t) const; - - //- Return Poisson's ratio - virtual tmp nu(scalar t) const; - - //- Return creep compliance - virtual tmp J(scalar t) const; - - //- Correct the rheological model - virtual void correct() - {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.C deleted file mode 100644 index c2ea155b7..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/MaxwellViscoelastic/MaxwellViscoelastic.C +++ /dev/null @@ -1,190 +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 "MaxwellViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(MaxwellViscoelastic, 0); - addToRunTimeSelectionTable(rheologyLaw, MaxwellViscoelastic, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::MaxwellViscoelastic::MaxwellViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k_(dict.lookup("k")), - eta_(dict.lookup("eta")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::MaxwellViscoelastic::~MaxwellViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::MaxwellViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::MaxwellViscoelastic::E(scalar t) const -{ - scalar tau = eta_.value()/k_.value(); - - tmp tE - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - k_*exp(-t/tau), - zeroGradientFvPatchScalarField::typeName - ) - ); - - if (t < 0) - { - tE().internalField() = 0.0; - tE().correctBoundaryConditions(); - } - - return tE; -} - - -Foam::tmp Foam::MaxwellViscoelastic::nu(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::MaxwellViscoelastic::J(scalar t) const -{ - tmp tJ - ( - new volScalarField - ( - IOobject - ( - "J", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar - ( - "J", - dimless/k_.dimensions(), - 1.0/k_.value() + t/eta_.value() - ), - zeroGradientFvPatchScalarField::typeName - ) - ); - - if (t < 0) - { - tJ().internalField() = 0.0; - tJ().correctBoundaryConditions(); - } - - return tJ; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C deleted file mode 100644 index c0b319c72..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.C +++ /dev/null @@ -1,170 +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 "PronyViscoelastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(PronyViscoelastic, 0); - addToRunTimeSelectionTable(rheologyLaw, PronyViscoelastic, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::PronyViscoelastic::PronyViscoelastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - k_("k", dict, readInt(dict.lookup("size"))), - kDimensions_(dict.lookup("kDimensions")), - tau_("tau", dict, readInt(dict.lookup("size"))), - tauDimensions_(dict.lookup("tauDimensions")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::PronyViscoelastic::~PronyViscoelastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::PronyViscoelastic::rho(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - return tresult; -} - - -Foam::tmp Foam::PronyViscoelastic::E(scalar t) const -{ - scalar E = 0.0; - - E = k_[0]; - - for(int i=1; i tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("E", kDimensions_, E), - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - return tresult; -} - - -Foam::tmp Foam::PronyViscoelastic::nu(scalar t) const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - return tresult; -} - - -Foam::tmp Foam::PronyViscoelastic::J(scalar t) const -{ - notImplemented(type() + "::J(scalar t)"); - - return 1.0/E(t); -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.H b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.H deleted file mode 100644 index f03d516b8..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/PronyViscoelastic/PronyViscoelastic.H +++ /dev/null @@ -1,153 +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 - PronyViscoelastic - -Description - Linear elastic rheology - -SourceFiles - PronyViscoelastic.C - -\*---------------------------------------------------------------------------*/ - -#ifndef PronyViscoelastic_H -#define PronyViscoelastic_H - -#include "rheologyLaw.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class PronyViscoelastic Declaration -\*---------------------------------------------------------------------------*/ - -class PronyViscoelastic -: - public rheologyLaw -{ - // Private data - - //- Density - dimensionedScalar rho_; - - //- Linear spring constants of generalised Maxwell model - Field k_; - - //- Dimension set for k field - dimensionSet kDimensions_; - - //- Relaxation times of generalised Maxwell model - Field tau_; - - //- Dimension set for tau field - dimensionSet tauDimensions_; - - //- Poisson's ratio - dimensionedScalar nu_; - - // Private Member Functions - - //- Disallow default bitwise copy construct - PronyViscoelastic(const PronyViscoelastic&); - - //- Disallow default bitwise assignment - void operator=(const PronyViscoelastic&); - - -public: - - //- Runtime type information - TypeName("PronyViscoelastic"); - - // Static data members - - - // Constructors - - //- Construct from dictionary - PronyViscoelastic - ( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict - ); - - - // Destructor - - virtual ~PronyViscoelastic(); - - - // Member Functions - - //- Return density - virtual tmp rho() const - { - return rho(0); - } - - //- Return modulus of elasticity - virtual tmp E() const - { - return E(0); - } - - //- Return Poisson's ratio - virtual tmp nu() const - { - return nu(0); - } - - //- Return density - virtual tmp rho(scalar t) const; - - //- Return modulus of elasticity - virtual tmp E(scalar t) const; - - //- Return Poisson's ratio - virtual tmp nu(scalar t) const; - - //- Return creep compliance - virtual tmp J(scalar t) const; - - //- Correct the rheological model - virtual void correct() - {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/linearElastic/linearElastic.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/linearElastic/linearElastic.C deleted file mode 100644 index 2564ac40e..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/linearElastic/linearElastic.C +++ /dev/null @@ -1,148 +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 "linearElastic.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(linearElastic, 0); - addToRunTimeSelectionTable(rheologyLaw, linearElastic, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::linearElastic::linearElastic -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - rho_(dict.lookup("rho")), - E_(dict.lookup("E")), - nu_(dict.lookup("nu")) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::linearElastic::~linearElastic() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::linearElastic::rho() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - rho_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::linearElastic::E() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - E_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::linearElastic::nu() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - nu_, - zeroGradientFvPatchScalarField::typeName - ) - ); - - tresult().correctBoundaryConditions(); - - return tresult; -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/multiMaterial/multiMaterial.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/multiMaterial/multiMaterial.C deleted file mode 100644 index 94e95043e..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyLaws/multiMaterial/multiMaterial.C +++ /dev/null @@ -1,261 +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 - Zoned multi-material rheology controlled by a material indicator field. - -\*---------------------------------------------------------------------------*/ - -#include "multiMaterial.H" -#include "addToRunTimeSelectionTable.H" -#include "zeroGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(multiMaterial, 0); - addToRunTimeSelectionTable(rheologyLaw, multiMaterial, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -Foam::tmp Foam::multiMaterial::indicator -( - const label i -) const -{ - const scalarField& mat = materials_.internalField(); - - tmp tresult(new scalarField(mat.size(), 0.0)); - scalarField& result = tresult(); - - forAll (mat, matI) - { - if (mat[matI] > i - SMALL && mat[matI] < i + 1 - SMALL) - { - result[matI] = 1.0; - } - } - - return tresult; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from dictionary -Foam::multiMaterial::multiMaterial -( - const word& name, - const volSymmTensorField& sigma, - const dictionary& dict -) -: - rheologyLaw(name, sigma, dict), - PtrList(), - materials_ - ( - IOobject - ( - "materials", - mesh().time().timeName(), - mesh(), - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh() - ) -{ - PtrList& laws = *this; - - PtrList lawEntries(dict.lookup("laws")); - laws.setSize(lawEntries.size()); - - forAll (laws, lawI) - { - laws.set - ( - lawI, - rheologyLaw::New - ( - lawEntries[lawI].keyword(), - sigma, - lawEntries[lawI].dict() - ) - ); - } - - if - ( - min(materials_).value() < 0 - || max(materials_).value() > laws.size() + SMALL - ) - { - FatalErrorIn - ( - "multiMaterial::multiMaterial\n" - "(\n" - " const word& name,\n" - " const volSymmTensorField& sigma,\n" - " const dictionary& dict\n" - ")" - ) << "Invalid definition of material indicator field. " - << "Number of materials: " << laws.size() - << " max index: " << max(materials_) - << ". Should be " << laws.size() - 1 - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::multiMaterial::~multiMaterial() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp Foam::multiMaterial::rho() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "rho", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("zeroRho", dimDensity, 0), - zeroGradientFvPatchScalarField::typeName - ) - ); - volScalarField& result = tresult(); - - // Accumulate data for all fields - const PtrList& laws = *this; - - forAll (laws, lawI) - { - result.internalField() += - indicator(lawI)*laws[lawI].rho()().internalField(); - } - - result.correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::multiMaterial::E() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "E", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("zeroE", dimForce/dimArea, 0), - zeroGradientFvPatchScalarField::typeName - ) - ); - volScalarField& result = tresult(); - - // Accumulate data for all fields - const PtrList& laws = *this; - - forAll (laws, lawI) - { - result.internalField() += - indicator(lawI)*laws[lawI].E()().internalField(); - } - - result.correctBoundaryConditions(); - - return tresult; -} - - -Foam::tmp Foam::multiMaterial::nu() const -{ - tmp tresult - ( - new volScalarField - ( - IOobject - ( - "nu", - mesh().time().timeName(), - mesh(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh(), - dimensionedScalar("zeroE", dimless, 0), - zeroGradientFvPatchScalarField::typeName - ) - ); - volScalarField& result = tresult(); - - // Accumulate data for all fields - const PtrList& laws = *this; - - forAll (laws, lawI) - { - result.internalField() += - indicator(lawI)*laws[lawI].nu()().internalField(); - } - - result.correctBoundaryConditions(); - - return tresult; -} - - -void Foam::multiMaterial::correct() -{ - PtrList& laws = *this; - - forAll (laws, lawI) - { - laws[lawI].correct(); - } -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.C b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.C deleted file mode 100644 index 79c1dae05..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.C +++ /dev/null @@ -1,282 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2004-2008 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 - rheologyModel - -Description - Material rheology for solids. - -\*---------------------------------------------------------------------------*/ - -#include "rheologyModel.H" -#include "volFields.H" -#include "fvc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(rheologyModel, 0); - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -rheologyModel::rheologyModel -( - const volSymmTensorField& sigma -) -: - IOdictionary - ( - IOobject - ( - "rheologyProperties", - sigma.time().constant(), - sigma.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - sigma_(sigma), - planeStress_(lookup("planeStress")), - lawPtr_(rheologyLaw::New("law", sigma_, subDict("rheology"))) -{} - - -// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // - -// Return first Lame's coefficient -tmp rheologyModel::mu() const -{ - volScalarField lawE = lawPtr_->E(); - volScalarField lawNu = lawPtr_->nu(); - - return tmp - ( - new volScalarField - ( - IOobject - ( - "mu", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawE/(2.0*(1.0 + lawNu)) - ) - ); -} - -// Return second Lame's coefficient -tmp rheologyModel::lambda() const -{ - volScalarField lawE = lawPtr_->E(); - volScalarField lawNu = lawPtr_->nu(); - - if (planeStress()) - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "lambda", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawNu*lawE/((1.0 + lawNu)*(1.0 - lawNu)) - ) - ); - } - else - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "lambda", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawNu*lawE/((1.0 + lawNu)*(1.0 - 2.0*lawNu)) - ) - ); - } -} - - -// Return threeK -tmp rheologyModel::threeK() const -{ - volScalarField lawRho = lawPtr_->rho(); - volScalarField lawE = lawPtr_->E(); - volScalarField lawNu = lawPtr_->nu(); - - if (planeStress()) - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "threeK", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawE/(lawRho*(1 - lawNu)) - ) - ); - } - else - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "threeK", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawE/(lawRho*(1 - 2*lawNu)) - ) - ); - } -} - - -// Return first Lame's coefficient -tmp rheologyModel::mu(scalar t) const -{ - volScalarField lawE = lawPtr_->E(t); - volScalarField lawNu = lawPtr_->nu(t); - - return tmp - ( - new volScalarField - ( - IOobject - ( - "mu", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawE/(2.0*(1.0 + lawNu)) - ) - ); -} - - -// Return second Lame's coefficient -tmp rheologyModel::lambda(scalar t) const -{ - volScalarField lawE = lawPtr_->E(t); - volScalarField lawNu = lawPtr_->nu(t); - - if (planeStress()) - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "lambda", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawNu*lawE/((1.0 + lawNu)*(1.0 - lawNu)) - ) - ); - } - else - { - return tmp - ( - new volScalarField - ( - IOobject - ( - "lambda", - sigma_.time().timeName(), - sigma_.db(), - IOobject::NO_READ, - IOobject::NO_WRITE - ), - lawNu*lawE/((1.0 + lawNu)*(1.0 - 2.0*lawNu)) - ) - ); - } -} - - -void rheologyModel::correct() -{ - lawPtr_->correct(); -} - - -bool rheologyModel::read() -{ - if (regIOobject::read()) - { - lookup("planeStress") >> planeStress_; - lawPtr_ = rheologyLaw::New("law", sigma_, subDict("rheology")); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.H b/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.H deleted file mode 100644 index 30ec38aea..000000000 --- a/applications/solvers/newStressAnalysis/materialModels/rheologyModel/rheologyModel.H +++ /dev/null @@ -1,158 +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 - rheologyModel - -Description - Material rheology for solids. - -SourceFiles - rheologyModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef rheologyModel_H -#define rheologyModel_H - -#include "IOdictionary.H" -#include "typeInfo.H" -#include "runTimeSelectionTables.H" -#include "volFields.H" -#include "tmp.H" -#include "rheologyLaw.H" -#include "Switch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class rheologyModel Declaration -\*---------------------------------------------------------------------------*/ - -class rheologyModel -: - public IOdictionary -{ - // Private data - - //- Reference to stress field - const volSymmTensorField& sigma_; - - //- Plane stress - Switch planeStress_; - - //- Rheology law - autoPtr lawPtr_; - - - // Private Member Functions - - //- Disallow copy construct - rheologyModel(const rheologyModel&); - - //- Disallow default bitwise assignment - void operator=(const rheologyModel&); - - -public: - - //- Runtime type information - TypeName("rheologyModel"); - - // Constructors - - //- Construct from dictionary - rheologyModel - ( - const volSymmTensorField& sigma - ); - - - // Destructor - - virtual ~rheologyModel() - {} - - - // Member Functions - - //- Return true for plane stress - const Switch& planeStress() const - { - return planeStress_; - } - - //- Return rheology law - const rheologyLaw& law() const - { - return lawPtr_(); - } - - //- Return density - tmp rho() const - { - return lawPtr_->rho(); - } - - //- Return first Lame's coefficient - tmp mu() const; - - //- Return second Lame's coefficient - tmp lambda() const; - - //- Return threeK - tmp threeK() const; - - //- Return density - tmp rho(scalar t) const - { - return lawPtr_->rho(t); - } - - //- Return first Lame's coefficient - tmp mu(scalar t) const; - - //- Return second Lame's coefficient - tmp lambda(scalar t) const; - - //- Correct the rheological model - void correct(); - - //- Read rheologyProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/Make/files b/applications/solvers/newStressAnalysis/newContactStressFoam/Make/files deleted file mode 100644 index f3e0d5bf0..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/Make/files +++ /dev/null @@ -1,5 +0,0 @@ -contactProblem.C -contactPatchPair.C -newContactStressFoam.C - -EXE = $(FOAM_APPBIN)/newContactStressFoam diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/Make/options b/applications/solvers/newStressAnalysis/newContactStressFoam/Make/options deleted file mode 100644 index d2094ff8c..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/Make/options +++ /dev/null @@ -1,11 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I../materialModels/lnInclude \ - -I../newStressedFoam/ - -EXE_LIBS = \ - -lfiniteVolume \ - -lmaterialModels \ - -llduSolvers - diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/calculateContactArea.H b/applications/solvers/newStressAnalysis/newContactStressFoam/calculateContactArea.H deleted file mode 100644 index c6eb5a83e..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/calculateContactArea.H +++ /dev/null @@ -1,5 +0,0 @@ - if (runTime.outputTime()) - { - volScalarField ca = contact.contactArea(); - ca.write(); - } diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.C b/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.C deleted file mode 100644 index ce69f8c32..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.C +++ /dev/null @@ -1,447 +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 "contactPatchPair.H" -#include "contactProblem.H" -#include "surfaceFields.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -Foam::contactPatchPair::contactPatchPair -( - const word& name, - const contactProblem& cp, - const word& masterPatchName, - const word& slavePatchName, - const dimensionedScalar& frictionCoeff, - const scalar contactTol, - const intersection::algorithm alg, - const intersection::direction dir -) -: - name_(name), - cp_(cp), - masterPatch_(masterPatchName, cp.mesh().boundaryMesh()), - slavePatch_(slavePatchName, cp.mesh().boundaryMesh()), - frictionCoeff_(frictionCoeff), - contactTol_(contactTol), - masterInterpolate_ - ( - cp.mesh().boundaryMesh()[masterPatch_.index()] - ), - slaveInterpolate_ - ( - cp.mesh().boundaryMesh()[slavePatch_.index()] - ), - masterToSlaveInterpolate_ - ( - cp.mesh().boundaryMesh()[masterPatch_.index()], // from patch - cp.mesh().boundaryMesh()[slavePatch_.index()], // to patch - alg, - dir - ), - slaveToMasterInterpolate_ - ( - cp.mesh().boundaryMesh()[slavePatch_.index()], // from patch - cp.mesh().boundaryMesh()[masterPatch_.index()], // to patch - alg, - dir - ) -{} - - -// Construct from dictionary -Foam::contactPatchPair::contactPatchPair -( - const word& name, - const contactProblem& cp, - const dictionary& dict -) -: - name_(name), - cp_(cp), - masterPatch_(dict.lookup("masterPatch"), cp.mesh().boundaryMesh()), - slavePatch_(dict.lookup("slavePatch"), cp.mesh().boundaryMesh()), - frictionCoeff_(dict.lookup("frictionCoeff")), - contactTol_(readScalar(dict.lookup("contactTol"))), - masterInterpolate_ - ( - cp.mesh().boundaryMesh()[masterPatch_.index()] - ), - slaveInterpolate_ - ( - cp.mesh().boundaryMesh()[slavePatch_.index()] - ), - masterToSlaveInterpolate_ - ( - cp.mesh().boundaryMesh()[masterPatch_.index()], // from patch - cp.mesh().boundaryMesh()[slavePatch_.index()], // to patch - intersection::algorithmNames_.read(dict.lookup("projectionAlgo")), - intersection::directionNames_.read(dict.lookup("projectionDir")) - - ), - slaveToMasterInterpolate_ - ( - cp.mesh().boundaryMesh()[slavePatch_.index()], // from patch - cp.mesh().boundaryMesh()[masterPatch_.index()], // to patch - intersection::algorithmNames_.read(dict.lookup("projectionAlgo")), - intersection::directionNames_.read(dict.lookup("projectionDir")) - - ) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp -Foam::contactPatchPair::masterTouchFraction() const -{ - // Get reference to displacement field and mesh - const volVectorField& U = cp_.U(); - const fvMesh& mesh = cp_.mesh(); - - // Interpolate slave displacement into master vertices - vectorField masterVertexU = - slaveToMasterInterpolate_.pointInterpolate - ( - slaveInterpolate_.faceToPointInterpolate - ( - U.boundaryField()[slavePatch_.index()] - ) - ); - - const vectorField& projectionDir = - mesh.boundaryMesh()[masterPatch_.index()].pointNormals(); - - - // Calculate master gap function - scalarField vertexMasterGap = - ( - ( - masterVertexU - - masterInterpolate_.faceToPointInterpolate - ( - U.boundaryField()[masterPatch_.index()] - ) - ) - & projectionDir - ) + slaveToMasterInterpolate_.pointDistanceToIntersection() - contactTol_; - - // Calculate area in contact - - const faceList& masterPatchLocalFaces = - mesh.boundaryMesh()[masterPatch_.index()].localFaces(); - - const pointField& masterPatchLocalPoints = - mesh.boundaryMesh()[masterPatch_.index()].localPoints(); - - tmp ttouchFrac - ( - new scalarField(masterPatchLocalFaces.size(), 0) - ); - scalarField& touchFrac = ttouchFrac(); - - forAll (masterPatchLocalFaces, faceI) - { - touchFrac[faceI] = - masterPatchLocalFaces[faceI].areaInContact - ( - masterPatchLocalPoints, - vertexMasterGap - ); - } - - return ttouchFrac; -} - - -Foam::tmp -Foam::contactPatchPair::slaveTouchFraction() const -{ - // Get reference to displacement field and mesh - const volVectorField& U = cp_.U(); - const fvMesh& mesh = cp_.mesh(); - - // Interpolate master displacement into slave vertices - vectorField slaveVertexU = - masterToSlaveInterpolate_.pointInterpolate - ( - masterInterpolate_.faceToPointInterpolate - ( - U.boundaryField()[masterPatch_.index()] - ) - ); - - const vectorField& projectionDir = - mesh.boundaryMesh()[slavePatch_.index()].pointNormals(); - - - // Calculate slave gap function - scalarField vertexSlaveGap = - ( - ( - slaveVertexU - - slaveInterpolate_.faceToPointInterpolate - ( - U.boundaryField()[slavePatch_.index()] - ) - ) - & projectionDir - ) + masterToSlaveInterpolate_.pointDistanceToIntersection() - contactTol_; - - // Calculate area in contact - - const faceList& slavePatchLocalFaces = - mesh.boundaryMesh()[slavePatch_.index()].localFaces(); - - const pointField& slavePatchLocalPoints = - mesh.boundaryMesh()[slavePatch_.index()].localPoints(); - - tmp ttouchFrac - ( - new scalarField(slavePatchLocalFaces.size(), 0) - ); - scalarField& touchFrac = ttouchFrac(); - - forAll (slavePatchLocalFaces, faceI) - { - touchFrac[faceI] = - slavePatchLocalFaces[faceI].areaInContact - ( - slavePatchLocalPoints, - vertexSlaveGap - ); - } - - return ttouchFrac; -} - - -void Foam::contactPatchPair::correct -( - const FieldField& curTraction, - FieldField& newTraction, - FieldField& refValue, - FieldField& valueFraction -) -{ - // Get reference to displacement field and mesh - const volVectorField::GeometricBoundaryField& Upatches = - cp_.U().boundaryField(); - - const fvMesh& mesh = cp_.mesh(); - const surfaceVectorField::GeometricBoundaryField& Apatches = - mesh.Sf().boundaryField(); - const surfaceScalarField::GeometricBoundaryField& magApatches = - mesh.magSf().boundaryField(); - - // Get patch indices - const label masterIndex = masterPatch_.index(); - const label slaveIndex = slavePatch_.index(); - - // Calculate patch normals - vectorField nMasterPatch = Apatches[masterIndex]/magApatches[masterIndex]; - - vectorField nSlavePatch = Apatches[slaveIndex]/magApatches[slaveIndex]; - - - // Calculate slave pressure and tangential force - - scalarField slavePressure = -( nSlavePatch & curTraction[slaveIndex]); - - // Enforce gradient condition on the master patch - - // Calculate relative tangential velocity for master patch - vectorField relUmaster = - slaveToMasterInterpolate_.faceInterpolate - ( - Upatches[slaveIndex] - ) - - Upatches[masterIndex]; - - relUmaster -= nMasterPatch*(nMasterPatch & relUmaster); - relUmaster /= mag(relUmaster) + VSMALL; - - // Calculate tangential master traction - scalarField magMasterTangential = - Foam::mag((I - nMasterPatch*nMasterPatch) & curTraction[masterIndex]); - - // Calculate master pressure - scalarField masterPressure = - max - ( - slaveToMasterInterpolate_.faceInterpolate - ( - slavePressure - ), - 0.0 - ); - - // Calculate master traction, using the positive part of - // slave pressure and tangential fricton - // Mind the signs: pressure = negative gradient (minus master normal) - // friction = positive pressure - newTraction[masterIndex] += - masterTouchFraction()* - ( - -nMasterPatch*masterPressure - + relUmaster* - min - ( - frictionCoeff_.value()*masterPressure, - magMasterTangential - ) - ); - - // Enforce direction mixed condition on the slave patch - - // Calculate slave fraction. Correct for negative pressure - // (if the pressure is negative, the contact is released) - //HJ, fiddle pos pressure!!! - scalarField slaveFrac = slaveTouchFraction(); - - // Calculate slave displacement - vectorField slaveVertexU = - masterToSlaveInterpolate_.pointInterpolate - ( - masterInterpolate_.faceToPointInterpolate - ( - Upatches[masterIndex] - ) - ); - - const vectorField& projectionDir = - mesh.boundaryMesh()[slaveIndex].pointNormals(); - - // Calculate slave displacement - vectorField slaveDisp = - slaveInterpolate_.pointToFaceInterpolate - ( - slaveVertexU - + masterToSlaveInterpolate_.pointDistanceToIntersection() - *projectionDir - ); - - // Accumulate normal of slave displacement - refValue[slaveIndex] += - nSlavePatch* - min - ( - pos(slaveFrac)* - ( - (nSlavePatch & Upatches[slaveIndex]) - + slaveFrac*contactTol_ - ), - (nSlavePatch & slaveDisp) - ); - - - // Accumulate slave friction - - // Calculate relative tangential velocity for slave patch - vectorField relUslave = - masterToSlaveInterpolate_.faceInterpolate - ( - Upatches[masterIndex] - ) - - Upatches[slaveIndex]; - - relUslave -= nSlavePatch*(nSlavePatch & relUslave); - relUslave /= mag(relUslave) + VSMALL; - - // Take out normal component out of slave traction and find the - // magnitude of the tangential traction. - scalarField magSlaveTangential = - Foam::mag((I - nSlavePatch*nSlavePatch) & curTraction[slaveIndex]); - - // Calculate slave traction - newTraction[slaveIndex] += - slaveFrac*relUslave* - min - ( - frictionCoeff_.value()*max(slavePressure, scalar(0)), - magSlaveTangential - ); - - // Accumulate slave touch fraction - valueFraction[slaveIndex] += slaveFrac; - -/* - Info << "slavePressure: " << slavePressure << nl - << "slaveTouchFrac: " << slaveTouchFraction() << nl -// << "slaveFrac: " << slaveFrac << nl - << "refValueSlave: " << refValue[slaveIndex].component(vector::Y) << nl -// << "slaveTraction: " << newTraction[slaveIndex] << nl - << "masterTouchFrac: " << masterTouchFraction() << nl -// << "interpolated slave pressure: " -// << slaveToMasterInterpolate_.faceInterpolate -// ( -// slavePressure -// ) -// << nl -// << "masterTraction: " -// << newTraction[masterIndex].component(vector::Y) - << endl; -*/ -} - - -void Foam::contactPatchPair::writeDict(Ostream& os) const -{ - os << nl << name() << nl << token::BEGIN_BLOCK; - - os << "masterPatch " << masterPatch_.name() << token::END_STATEMENT << nl - << "slavePatch " << slavePatch_.name() << token::END_STATEMENT << nl - << "frictionCoeff " << frictionCoeff_ << token::END_STATEMENT << nl - << "contactTol " << contactTol_ << token::END_STATEMENT << nl - << "projectionAlgo " - << intersection::algorithmNames_ - [masterToSlaveInterpolate_.projectionAlgo()] - << token::END_STATEMENT << nl - << "projectionDir " - << intersection::directionNames_ - [masterToSlaveInterpolate_.projectionDir()] - << token::END_STATEMENT << nl - << token::END_BLOCK << endl; -} - - -// * * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * // - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.H b/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.H deleted file mode 100644 index 2fa8ffe32..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPair.H +++ /dev/null @@ -1,178 +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 - contactPatchPair - -Description - A pair of surfaces in contact. - -SourceFiles - contactPatchPair.C - -\*---------------------------------------------------------------------------*/ - -#ifndef contactPatchPair_H -#define contactPatchPair_H - -#include "polyPatchID.H" -#include "dimensionedTypes.H" -#include "volFieldsFwd.H" -#include "primitivePatchInterpolation.H" -#include "patchToPatchInterpolation.H" -#include "FieldFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class contactProblem; - -/*---------------------------------------------------------------------------*\ - Class contactPatchPair Declaration -\*---------------------------------------------------------------------------*/ - -class contactPatchPair -{ -private: - - // Private data - - //- Name - const word name_; - - //- Reference to contact problem - const contactProblem& cp_; - - //- Master patch ID. Gradient condition will be enforced - const polyPatchID masterPatch_; - - //- Slave patch ID. Direction mixed condition will be enforced - const polyPatchID slavePatch_; - - //- Friction coefficient - dimensionedScalar frictionCoeff_; - - //- Contact tolerance - const scalar contactTol_; - - //- Master patch interpolator - primitivePatchInterpolation masterInterpolate_; - - //- Slave patch interpolator - primitivePatchInterpolation slaveInterpolate_; - - //- Master to slave patch interpolator - patchToPatchInterpolation masterToSlaveInterpolate_; - - //- Master to slave patch interpolator - patchToPatchInterpolation slaveToMasterInterpolate_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct - contactPatchPair(const contactPatchPair&); - - //- Disallow default bitwise assignment - void operator=(const contactPatchPair&); - - - -public: - - // Constructors - - //- Construct from components - contactPatchPair - ( - const word& name, - const contactProblem& cp, - const word& masterPatchName, - const word& slavePatchName, - const dimensionedScalar& frictionCoeff, - const scalar contactTol, - const intersection::algorithm alg = intersection::FULL_RAY, - const intersection::direction dir = intersection::CONTACT_SPHERE - ); - - //- Construct from components - contactPatchPair - ( - const word& name, - const contactProblem& cp, - const dictionary& dict - ); - - - // Member Functions - - //- Return name - const word& name() const - { - return name_; - } - - //- Return master patch ID - const polyPatchID masterPatch() const - { - return masterPatch_; - } - - //- Return slave patch ID - const polyPatchID& slavePatch() const - { - return slavePatch_; - } - - //- Return master touch fraction - tmp masterTouchFraction() const; - - //- Return slave touch fraction - tmp slaveTouchFraction() const; - - //- Correct contact data - void correct - ( - const FieldField& curTraction, - FieldField& newTraction, - FieldField& refValue, - FieldField& normalValueFraction - ); - - //- Write dictionary - void writeDict(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPairList.H b/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPairList.H deleted file mode 100644 index 2b0e44ae5..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/contactPatchPairList.H +++ /dev/null @@ -1,56 +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 - -Type - contactPatchPairList - -Description - Container classes for contactPatchPair - -\*---------------------------------------------------------------------------*/ - -#ifndef contactPatchPairList_H -#define contactPatchPairList_H - -#include "contactPatchPair.H" -#include "PtrList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -typedef PtrList contactPatchPairList; - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.C b/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.C deleted file mode 100644 index 8a9a0ee9e..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.C +++ /dev/null @@ -1,336 +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 - Class describes a multiple body contact problem. Each individual contact - is described by a contactPatchPair. contactProblem handles - multiple contact updates and sets the boundary conditions on the - displacement field. - -\*---------------------------------------------------------------------------*/ - -#include "contactProblem.H" -#include "fvMesh.H" -#include "FieldFields.H" -#include "directionMixedFvPatchFields.H" -#include "surfaceFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(contactProblem, 0); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Read constructor given IOobject -contactProblem::contactProblem -( - volVectorField& U, - const volTensorField& gradU -) -: - IOdictionary - ( - IOobject - ( - "contactProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - contactPatchPairList(), - U_(U), - gradU_(gradU), - urfValue_(readScalar(lookup("urfValue"))), - urfTraction_(readScalar(lookup("urfTraction"))), - urfFraction_(readScalar(lookup("urfFraction"))) -{ - // Read contactPatchPairList - Istream& is = lookup("contacts"); - - PtrList contactEntries(is); - - contactPatchPairList& contacts = *this; - - contacts.setSize(contactEntries.size()); - - forAll(contacts, contactI) - { - contacts.set - ( - contactI, - new contactPatchPair - ( - contactEntries[contactI].keyword(), - *this, - contactEntries[contactI].dict() - ) - ); - } -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void contactProblem::correct() -{ - contactPatchPairList& contacts = *this; - - // Create fields for accumulation - volVectorField::GeometricBoundaryField& Upatches = U().boundaryField(); - - FieldField curTraction(Upatches.size()); - FieldField newTraction(Upatches.size()); - FieldField refValue(Upatches.size()); - FieldField valueFraction(Upatches.size()); - - forAll (Upatches, patchI) - { - curTraction.set - ( - patchI, - new vectorField(Upatches[patchI].size(), vector::zero) - ); - - newTraction.set - ( - patchI, - new vectorField(Upatches[patchI].size(), vector::zero) - ); - - refValue.set - ( - patchI, - new vectorField(Upatches[patchI].size(), vector::zero) - ); - - valueFraction.set - ( - patchI, - new scalarField(Upatches[patchI].size(), 0) - ); - } - - // Collect patches involved in contact - boolList contactPatches(Upatches.size(), false); - - forAll (contacts, contactI) - { - contactPatches[contacts[contactI].masterPatch().index()] = true; - contactPatches[contacts[contactI].slavePatch().index()] = true; - } - - // Calculate the traction for all involved patches - - // Collect fields - const volTensorField::GeometricBoundaryField& gradUpatches = - gradU().boundaryField(); - - const surfaceVectorField::GeometricBoundaryField& Apatches = - mesh().Sf().boundaryField(); - const surfaceScalarField::GeometricBoundaryField& magApatches = - mesh().magSf().boundaryField(); - - // Lookup mu and lambda form object registry - const volScalarField& mu = - mesh().objectRegistry::lookupObject("mu"); - - const volScalarField::GeometricBoundaryField& muPatches = - mu.boundaryField(); - - const volScalarField& lambda = - mesh().objectRegistry::lookupObject("lambda"); - - const volScalarField::GeometricBoundaryField& lambdaPatches = - lambda.boundaryField(); - - forAll (Upatches, patchI) - { - if (contactPatches[patchI]) - { - vectorField nPatch = Apatches[patchI]/magApatches[patchI]; - - curTraction[patchI] = - nPatch & - ( - muPatches[patchI]* - ( - gradUpatches[patchI] - + gradUpatches[patchI].T() - ) - + I*(lambdaPatches[patchI]*tr(gradUpatches[patchI])) - ); - } - } - - // Accumulate contact data and active patches - forAll (contacts, contactI) - { - contacts[contactI].correct - ( - curTraction, - newTraction, - refValue, - valueFraction - ); - } - - // Enforce accumulated contact onto the patches - forAll (Upatches, patchI) - { - if (contactPatches[patchI]) - { - // Cast the patch into direction mixed type - directionMixedFvPatchVectorField& curUPatch = - refCast(Upatches[patchI]); - - // Set the values using under-relaxation - curUPatch.refValue() = - (1.0 - urfValue_)*curUPatch.refValue() - + urfValue_*refValue[patchI]; - - // Calculate the gradient from under-relaxad accumulated traction - vectorField nPatch = Apatches[patchI]/magApatches[patchI]; - - curUPatch.refGrad() = - ( - (1.0 - urfTraction_)*curTraction[patchI] - + urfTraction_*newTraction[patchI] - - - (nPatch & - ( - muPatches[patchI]*gradUpatches[patchI].T() - - ( - muPatches[patchI] - + lambdaPatches[patchI] - )*gradUpatches[patchI] - ) - ) - - - nPatch* - ( - lambdaPatches[patchI]*tr(gradUpatches[patchI]) - ) - - )/(2.0*muPatches[patchI] + lambdaPatches[patchI]); - - // Set the value fractions - curUPatch.valueFraction() = - (1.0 - urfFraction_)*curUPatch.valueFraction() - + I*urfFraction_*valueFraction[patchI]; - } - } -} - - -tmp contactProblem::contactArea() const -{ - tmp tca - ( - new volScalarField - ( - IOobject - ( - "contactArea", - U().time().timeName(), - U().db(), - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - mesh(), - dimensionedScalar(0) - ) - ); - - volScalarField& ca = tca(); - - // Set contact area boundary - const contactPatchPairList& contacts = *this; - - forAll (contacts, contactI) - { - // Get master contact - ca.boundaryField()[contacts[contactI].masterPatch().index()] += - contacts[contactI].masterTouchFraction(); - - // Get slave contact - ca.boundaryField()[contacts[contactI].slavePatch().index()] += - contacts[contactI].slaveTouchFraction(); - } - - return tca; -} - - -// Return a list of contactPatchPair names -wordList contactProblem::names() const -{ - const contactPatchPairList& contacts = *this; - - wordList t(contacts.size()); - - forAll (contacts, contactI) - { - t[contactI] = contacts[contactI].name(); - } - - return t; -} - - -bool contactProblem::read() -{ - if (regIOobject::read()) - { - urfValue_ = readScalar(lookup("urfValue")); - urfTraction_ = readScalar(lookup("urfTraction")); - urfFraction_ = readScalar(lookup("urfFraction")); - - // Decided not to re-read contactPatchPairList. HJ, 10/Jul/2004 - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * // - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.H b/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.H deleted file mode 100644 index 52bd53a61..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/contactProblem.H +++ /dev/null @@ -1,161 +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 - contactProblem - -Description - Class describes a multiple body contact problem. Each individual contact - is described by a contactPatchPair. contactProblem handles - multiple contact updates and sets the boundary conditions on the - displacement field. - -SourceFiles - contactProblem.C - -\*---------------------------------------------------------------------------*/ - -#ifndef contactProblem_H -#define contactProblem_H - -#include "contactPatchPairList.H" -#include "IOdictionary.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class fvMesh; - -/*---------------------------------------------------------------------------*\ - Class contactProblem Declaration -\*---------------------------------------------------------------------------*/ - -class contactProblem -: - public IOdictionary, - public contactPatchPairList -{ -private: - - // Private data - - //- Reference to displacement field - volVectorField& U_; - - //- Reference to displacement gradient field - const volTensorField& gradU_; - - //- Value under-relaxation - scalar urfValue_; - - //- Gradient under-relaxation - scalar urfTraction_; - - //- Fraction under-relaxation - scalar urfFraction_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct - contactProblem(const contactProblem&); - - //- Disallow default bitwise assignment - void operator=(const contactProblem&); - - -public: - - //- Runtime type information - TypeName("contactProblem"); - - - // Constructors - - //- Read constructor - contactProblem - ( - volVectorField& U, - const volTensorField& gradU - ); - - - // Destructor - - virtual ~contactProblem() - {} - - - // Member Functions - - //- Return const reference to displacement field - const volVectorField& U() const - { - return U_; - } - - //- Return reference to displacement field - volVectorField& U() - { - return U_; - } - - //- Return const reference to displacement gradient field - const volTensorField& gradU() const - { - return gradU_; - } - - //- Return reference to displacement field - const fvMesh& mesh() const - { - return U_.mesh(); - } - - //- Return contact area field - tmp contactArea() const; - - //- Return a list of contact patch pair names - wordList names() const; - - //- Correct contact conditions - void correct(); - - //- Read rheologyProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/createFields.H b/applications/solvers/newStressAnalysis/newContactStressFoam/createFields.H deleted file mode 100644 index d18d9d166..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/createFields.H +++ /dev/null @@ -1,38 +0,0 @@ - mesh.weights(); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - // Create gradient field - volTensorField gradU = fvc::grad(U); - - volSymmTensorField sigma - ( - IOobject - ( - "sigma", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedSymmTensor("zero", dimForce/dimArea, symmTensor::zero) - ); - - // Create rheology model - rheologyModel rheology(sigma); - - // Create contact problem - contactProblem contact(U, gradU); diff --git a/applications/solvers/newStressAnalysis/newContactStressFoam/newContactStressFoam.C b/applications/solvers/newStressAnalysis/newContactStressFoam/newContactStressFoam.C deleted file mode 100644 index 5086cf4b7..000000000 --- a/applications/solvers/newStressAnalysis/newContactStressFoam/newContactStressFoam.C +++ /dev/null @@ -1,120 +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 - -Application - stressedFoam - -Description - Transient/steady-state solver for solid bodies in contact. - - Solves for the displacement vector field U, also generating the - stress tensor field sigma. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "rheologyModel.H" -#include "contactProblem.H" -#include "componentReferenceList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createMesh.H" -# include "createFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nCalculating displacement field\n" << endl; - - volScalarField rho = rheology.rho(); - - // Force n-sqaured projection -// polyPatch::setNSquaredProjection(true); - - while (runTime.loop()) - { - Info<< "Iteration: " << runTime.timeName() << nl << endl; - -# include "readStressedFoamControls.H" - - volScalarField mu = rheology.mu(); - volScalarField lambda = rheology.lambda(); - - int iCorr=0; - scalar initialResidual=0; - - contact.correct(); - - do - { - fvVectorMatrix UEqn - ( - fvm::d2dt2(rho, U) - == - fvm::laplacian(2*mu + lambda, U, "laplacian(DU,U)") - - + fvc::div - ( - mu*gradU.T() + lambda*(I*tr(gradU)) - (mu + lambda)*gradU, - "div(sigma)" - ) - ); - -# include "setComponentReference.H" - - initialResidual = UEqn.solve().initialResidual(); - - gradU = fvc::grad(U); - -# include "calculateSigma.H" - - rheology.correct(); - - rho = rheology.rho(); - mu = rheology.mu(); - lambda = rheology.lambda(); - - } while (initialResidual > convergenceTolerance && ++iCorr < nCorr); - -# include "calculateStress.H" -# include "calculateContactArea.H" - - Info<< "ExecutionTime = " - << runTime.elapsedCpuTime() - << " s\n\n" << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/Make/files b/applications/solvers/newStressAnalysis/newStressedFoam/Make/files deleted file mode 100644 index 7ca341dba..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -newStressedFoam.C - -EXE = $(FOAM_APPBIN)/newStressedFoam diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/Make/options b/applications/solvers/newStressAnalysis/newStressedFoam/Make/options deleted file mode 100644 index fcb6187ed..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/Make/options +++ /dev/null @@ -1,8 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I../materialModels/lnInclude - -EXE_LIBS = \ - -lfiniteVolume \ - -lmaterialModels \ - -llduSolvers diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/calculateSigma.H b/applications/solvers/newStressAnalysis/newStressedFoam/calculateSigma.H deleted file mode 100644 index 9695540ce..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/calculateSigma.H +++ /dev/null @@ -1 +0,0 @@ -sigma = 2*mu*symm(gradU) + lambda*(I*tr(gradU)); diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/calculateStress.H b/applications/solvers/newStressAnalysis/newStressedFoam/calculateStress.H deleted file mode 100644 index f201c5412..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/calculateStress.H +++ /dev/null @@ -1,101 +0,0 @@ - if (runTime.outputTime()) - { - volScalarField sigmaEq - ( - IOobject - ( - "sigmaEq", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sqrt((3.0/2.0)*magSqr(dev(sigma))) - ); - - Info<< "Max sigmaEq = " << max(sigmaEq).value() - << endl; - - volScalarField sigmaxx - ( - IOobject - ( - "sigmaxx", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::XX) - ); - - volScalarField sigmayy - ( - IOobject - ( - "sigmayy", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::YY) - ); - - volScalarField sigmazz - ( - IOobject - ( - "sigmazz", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::ZZ) - ); - - Info<< "Max sigmazz = " << max(sigmazz).value() - << endl; - - volScalarField sigmaxy - ( - IOobject - ( - "sigmaxy", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::XY) - ); - - volScalarField sigmaxz - ( - IOobject - ( - "sigmaxz", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::XZ) - ); - - volScalarField sigmayz - ( - IOobject - ( - "sigmayz", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sigma.component(symmTensor::YZ) - ); - - runTime.write(); - } diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/createFields.H b/applications/solvers/newStressAnalysis/newStressedFoam/createFields.H deleted file mode 100644 index 2801d4b99..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/createFields.H +++ /dev/null @@ -1,29 +0,0 @@ - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - volSymmTensorField sigma - ( - IOobject - ( - "sigma", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - dimensionedSymmTensor("zero", dimForce/dimArea, symmTensor::zero) - ); - - rheologyModel rheology(sigma); diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/newStressedFoam.C b/applications/solvers/newStressAnalysis/newStressedFoam/newStressedFoam.C deleted file mode 100644 index 68420167a..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/newStressedFoam.C +++ /dev/null @@ -1,115 +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 - -Application - stressedFoam - -Description - Transient/steady-state segregated finite-volume solver for a solid - body. - - Solves for the displacement vector field U, also generating the - stress tensor field sigma. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "rheologyModel.H" -#include "componentReferenceList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createMesh.H" -# include "createFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nCalculating displacement field\n" << endl; - - volTensorField gradU = fvc::grad(U); - volScalarField rho = rheology.rho(); - - while (runTime.loop()) - { - Info<< "Iteration: " << runTime.timeName() << nl << endl; - -# include "readStressedFoamControls.H" - - volScalarField mu = rheology.mu(); - volScalarField lambda = rheology.lambda(); - - int iCorr = 0; - scalar initialResidual = 0; - - do - { - fvVectorMatrix UEqn - ( - fvm::d2dt2(rho, U) - == - fvm::laplacian(2*mu + lambda, U, "laplacian(DU,U)") - - + fvc::div - ( - mu*gradU.T() + lambda*(I*tr(gradU)) - (mu + lambda)*gradU, - "div(sigma)" - ) - ); - -# include "setComponentReference.H" - - initialResidual = UEqn.solve().initialResidual(); - - gradU = fvc::grad(U); - -# include "calculateSigma.H" - - rheology.correct(); - - rho = rheology.rho(); - mu = rheology.mu(); - lambda = rheology.lambda(); - - } while (initialResidual > convergenceTolerance && ++iCorr < nCorr); - -# include "calculateStress.H" - - Info<< "ExecutionTime = " - << runTime.elapsedCpuTime() - << " s\n\n" << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/newStressAnalysis/newStressedFoam/readStressedFoamControls.H b/applications/solvers/newStressAnalysis/newStressedFoam/readStressedFoamControls.H deleted file mode 100644 index d2c7c972a..000000000 --- a/applications/solvers/newStressAnalysis/newStressedFoam/readStressedFoamControls.H +++ /dev/null @@ -1,11 +0,0 @@ - const dictionary& stressControl = - mesh.solutionDict().subDict("stressedFoam"); - - int nCorr(readInt(stressControl.lookup("nCorrectors"))); - scalar convergenceTolerance(readScalar(stressControl.lookup("U"))); - - componentReferenceList cr - ( - stressControl.lookup("componentReference"), - componentReference::iNew(mesh) - ); diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/files b/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/files new file mode 100644 index 000000000..ee44077be --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/files @@ -0,0 +1,3 @@ +elasticAcpSolidFoam.C + +EXE = $(FOAM_APPBIN)/elasticAcpSolidFoam diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/options b/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/options new file mode 100644 index 000000000..0aa531afe --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/Make/options @@ -0,0 +1,16 @@ +EXE_INC = \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/topoChangerFvMesh/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/solidModels/lnInclude + +EXE_LIBS = \ + -lfiniteVolume \ + -lmeshTools \ + -ldynamicFvMesh \ + -ldynamicMesh \ + -ltopoChangerFvMesh \ + -lsolidModels diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/aitkenRelaxation.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/aitkenRelaxation.H new file mode 100644 index 000000000..962a1b433 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/aitkenRelaxation.H @@ -0,0 +1,35 @@ +// aitken acceleration +aitkenDelta.storePrevIter(); + +// update delta +aitkenDelta = (U - U.prevIter()) / aitkenInitialRes; + +// update relaxation factor +if(iCorr == 0) + { + aitkenTheta = 0.01; + if(mesh.relax(U.name())) + { + aitkenTheta = mesh.relaxationFactor(U.name()); + } + } + else + { + vectorField b = aitkenDelta.internalField() - aitkenDelta.prevIter().internalField(); + //scalar sumMagB = gSum(mag(b)); + scalar sumMagB = gSum(magSqr(b)); + if(sumMagB < SMALL) + { + //Warning << "Aitken under-relaxation: denominator less then SMALL" + // << endl; + sumMagB += SMALL; + } + + aitkenTheta = -aitkenTheta* + gSum(aitkenDelta.prevIter().internalField() & b) + / + sumMagB; + } + +// correction to the latest U +U += aitkenTheta*aitkenDelta*aitkenInitialRes; diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateDivSigmaExp.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateDivSigmaExp.H new file mode 100644 index 000000000..4739c0925 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateDivSigmaExp.H @@ -0,0 +1,49 @@ +if(divSigmaExpMethod == "standard") + { + divSigmaExp = fvc::div + ( + mu*gradU.T() + lambda*(I*tr(gradU)) - (mu + lambda)*gradU, + "div(sigma)" + ); + } + else if(divSigmaExpMethod == "surface") + { + divSigmaExp = fvc::div + ( + muf*(mesh.Sf() & fvc::interpolate(gradU.T())) + + lambdaf*(mesh.Sf() & I*fvc::interpolate(tr(gradU))) + - (muf + lambdaf)*(mesh.Sf() & fvc::interpolate(gradU)) + ); + } + else if(divSigmaExpMethod == "decompose") + { + snGradU = fvc::snGrad(U); + + surfaceTensorField shearGradU = + ((I - n*n)&fvc::interpolate(gradU)); + + divSigmaExp = fvc::div + ( + mesh.magSf() + *( + - (muf + lambdaf)*(snGradU&(I - n*n)) + + lambdaf*tr(shearGradU&(I - n*n))*n + + muf*(shearGradU&n) + ) + ); + } + else if(divSigmaExpMethod == "expLaplacian") + { + divSigmaExp = + - fvc::laplacian(mu + lambda, U, "laplacian(DU,U)") + + fvc::div + ( + mu*gradU.T() + + lambda*(I*tr(gradU)), + "div(sigma)" + ); + } + else + { + FatalError << "divSigmaExp method " << divSigmaExpMethod << " not found!" << endl; + } diff --git a/applications/solvers/solidMechanics/elasticContactSolidFoam/calculateEpsilonSigma.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateEpsilonSigma.H similarity index 100% rename from applications/solvers/solidMechanics/elasticContactSolidFoam/calculateEpsilonSigma.H rename to applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateEpsilonSigma.H diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateForceResidual.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateForceResidual.H new file mode 100644 index 000000000..028916ecf --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateForceResidual.H @@ -0,0 +1,19 @@ +{ + // force residual is the net force on the model + // this should got to zero in a converged steady state model + // should be altered for parallel runs + vector netForce = vector::zero; + forAll(mesh.boundary(), patchi) + { + netForce += + sum( + mesh.Sf().boundaryField()[patchi] + & + ( + 2*mu.boundaryField()[patchi]*symm(gradU.boundaryField()[patchi]) + + lambda*tr(gradU.boundaryField()[patchi])*I + ) + ); + } + forceResidual = mag(netForce); +} diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateRelativeResidual.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateRelativeResidual.H new file mode 100644 index 000000000..5c9ca0bd8 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateRelativeResidual.H @@ -0,0 +1,12 @@ +{ + scalar maxDU = gMax(mag(U.internalField() - U.oldTime().internalField())); + + relativeResidual = + gMax + ( + mag(U.internalField() - U.prevIter().internalField()) + /(maxDU + SMALL) + ); + + resid = (U - U.prevIter())/(max(mag(U-U.oldTime()))+dimensionedScalar("SMALL", dimLength, SMALL)); +} diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateTraction.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateTraction.H new file mode 100644 index 000000000..ff1d7f6db --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/calculateTraction.H @@ -0,0 +1,41 @@ +{ + surfaceVectorField n = mesh.Sf()/mesh.magSf(); + +// traction = (n&fvc::interpolate(sigma)); + + // surfaceTensorField sGradU = + // ((I - n*n)&fvc::interpolate(gradU)); + + // traction = + // (2*mu + lambda)*snGradU + // - (mu + lambda)*(snGradU&(I - n*n)) + // + mu*(sGradU&n) + // + lambda*tr(sGradU&(I - n*n))*n; + +// traction = +// (2*mu + lambda)*fvc::snGrad(U) +// - (mu + lambda)*(n&sGradU) +// + mu*(sGradU&n) +// + lambda*tr(sGradU)*n; + + // philipc + // I am having trouble with back-calculation of interface tractions from solid interface + // procedure (in multiMaterial.C), the tractions have quite large differences from each + // side. Interpolating sigma is OK for now + // traction = rheology.law().interfaceTraction(n, U, gradU, rheology.mu(), rheology.lambda()); +# include "calculateEpsilonSigma.H" + traction = (n&fvc::interpolate(sigma)); + + // forAll(traction.boundaryField(), patchi) + // { + // if (mesh.boundary()[patchi].type() == "cohesive") + // { + // forAll(traction.boundaryField()[patchi], facei) + // { + // Pout << "face " << facei << " with traction magnitude " + // << mag(traction.boundaryField()[patchi][facei])/1e6 << " MPa and traction " + // << traction.boundaryField()[patchi][facei]/1e6 << " MPa" << endl; + // } + // } + // } +} diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/checkCohesivePatchOrdering.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/checkCohesivePatchOrdering.H new file mode 100644 index 000000000..0bc3b3c70 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/checkCohesivePatchOrdering.H @@ -0,0 +1,22 @@ +{ + label sizeByTwo = mesh.boundary()[cohesivePatchID].size()/2; + vectorField Cczm = mesh.boundary()[cohesivePatchID].Cf(); + + for(label i = 0; i < sizeByTwo; i++) + { + Cczm[i] -= Cczm[sizeByTwo + i]; + Cczm[sizeByTwo + i] = Cczm[i]; + } + + scalar error = sum(mag(Cczm)); + + if(error < SMALL) + { + Info << "Cohesive patch face ordering: OK" << endl; + } + else + { + Info << "Cohesive patch face ordering: error (" << error << ")" + << endl; + } +} diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrack.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrack.H new file mode 100644 index 000000000..1f0fa1d6e --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrack.H @@ -0,0 +1,226 @@ + label cohesivePatchID = -1; + + solidCohesiveFvPatchVectorField* cohesivePatchUPtr = NULL; + solidCohesiveFixedModeMixFvPatchVectorField* cohesivePatchUFixedModePtr = NULL; + + forAll (U.boundaryField(), patchI) + { + if (isA(U.boundaryField()[patchI])) + { + cohesivePatchID = patchI; + cohesivePatchUPtr = + &refCast + ( + U.boundaryField()[cohesivePatchID] + ); + break; + } + else if (isA(U.boundaryField()[patchI])) + { + cohesivePatchID = patchI; + cohesivePatchUFixedModePtr = + &refCast + ( + U.boundaryField()[cohesivePatchID] + ); + break; + } + } + + if(cohesivePatchID == -1) + { + FatalErrorIn(args.executable()) + << "Can't find cohesiveLawFvPatch" << nl + << "One of the boundary patches in " << U.name() << ".boundaryField() " + << "should be of type " << solidCohesiveFvPatchVectorField::typeName + << "or " << solidCohesiveFixedModeMixFvPatchVectorField::typeName + << abort(FatalError); + } + + // solidCohesiveFvPatchVectorField& cohesivePatchU = + // refCast + // ( + // U.boundaryField()[cohesivePatchID] + // ); + + // philipc: I have moved cohesive stuff to constitutiveModel + + // cohesiveZone is an index field + // which allows the user to limit the crack to certain areas at runtime + // 1 for faces within cohesiveZone + // 0 for faces outside cohesiveZone + surfaceScalarField cohesiveZone + ( + IOobject + ( + "cohesiveZone", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero", dimless, 0.0) + ); + + // limit crack to specified boxes + { + const dictionary& stressControl = + mesh.solutionDict().subDict("stressedFoam"); + + List userBoxes(stressControl.lookup("crackLimitingBoxes")); + const surfaceVectorField& Cf = mesh.Cf(); + forAll(cohesiveZone.internalField(), faceI) + { + bool faceInsideBox = false; + + forAll(userBoxes, boxi) + { + if(userBoxes[boxi].contains(Cf.internalField()[faceI])) faceInsideBox = true; + } + + if(faceInsideBox) + { + cohesiveZone.internalField()[faceI] = 1.0; + } + } + + forAll(cohesiveZone.boundaryField(), patchI) + { + // cracks may go along proc boundaries + if(mesh.boundaryMesh()[patchI].type() == processorPolyPatch::typeName) + { + forAll(cohesiveZone.boundaryField()[patchI], faceI) + { + bool faceInsideBox = false; + + forAll(userBoxes, boxi) + { + if(userBoxes[boxi].contains(Cf.boundaryField()[patchI][faceI])) faceInsideBox = true; + } + + if(faceInsideBox) + { + cohesiveZone.boundaryField()[patchI][faceI] = 1.0; + } + } + } + } + + Info << "\nThere are " << gSum(cohesiveZone.internalField()) << " potential internal crack faces" << nl << endl; + Info << "\nThere are " << gSum(cohesiveZone.boundaryField())/2 << " potential coupled boundary crack faces" << nl << endl; + + // write field for visualisation + volScalarField cohesiveZoneVol + ( + IOobject + ( + "cohesiveZoneVol", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedScalar("zero", dimless, 0.0) + ); + forAll(cohesiveZone.internalField(), facei) + { + if(cohesiveZone.internalField()[facei]) + { + cohesiveZoneVol.internalField()[mesh.owner()[facei]] = 1.0; + cohesiveZoneVol.internalField()[mesh.neighbour()[facei]] = 1.0; + } + } + forAll(cohesiveZone.boundaryField(), patchi) + { + forAll(cohesiveZone.boundaryField()[patchi], facei) + { + if(cohesiveZone.boundaryField()[patchi][facei] > 0.0) + { + cohesiveZoneVol.boundaryField()[patchi][facei] = 1.0; + } + } + } + Info << "Writing cohesiveZone field" << endl; + cohesiveZoneVol.write(); + } + + + Switch initialiseSolution(false); + + if + ( + mesh.solutionDict().subDict("stressedFoam") + .found("initialiseSolution") + ) + { + initialiseSolution = + Switch + ( + mesh.solutionDict().subDict("stressedFoam").lookup + ( + "initialiseSolution" + ) + ); + } + + + Switch breakOnlyOneFacePerTopologyChange(true); + + if + ( + mesh.solutionDict().subDict("stressedFoam") + .found("breakOnlyOneFacePerTopologyChange") + ) + { + breakOnlyOneFacePerTopologyChange = + Switch + ( + mesh.solutionDict().subDict("stressedFoam").lookup + ( + "breakOnlyOneFacePerTopologyChange" + ) + ); + } + + + Switch crackPropagationFromSpecifiedPatches + ( + mesh.solutionDict().subDict("stressedFoam").lookup + ( + "crackPropagationFromSpecifiedPatches" + ) + ); + + wordList crackPropagationPatchNames + ( + mesh.solutionDict().subDict("stressedFoam").lookup + ( + "crackPropagationPatches" + ) + ); + + labelList crackPropagationPatches(crackPropagationPatchNames.size(), -1); + + forAll(crackPropagationPatchNames, patchI) + { + crackPropagationPatches[patchI] = + mesh.boundaryMesh().findPatchID + ( + crackPropagationPatchNames[patchI] + ); + + if(crackPropagationPatches[patchI] == -1) + { + FatalErrorIn(args.executable()) + << "Can't find " << crackPropagationPatchNames[patchI] + << " patch" << abort(FatalError); + } + } + + // Internal faces next to selected crack propagation patches + labelList crackPropagationPatchesInternalFaces; + +# include "updateCrackPropagationPatchesInternalFaces.H" + diff --git a/applications/solvers/stressAnalysis/icoFsiFoam/createStressMesh.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrackerMesh.H similarity index 52% rename from applications/solvers/stressAnalysis/icoFsiFoam/createStressMesh.H rename to applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrackerMesh.H index e9a081363..6df25ebef 100644 --- a/applications/solvers/stressAnalysis/icoFsiFoam/createStressMesh.H +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createCrackerMesh.H @@ -1,13 +1,10 @@ - fvMesh stressMesh + crackerFvMesh mesh ( IOobject ( - "solid", + fvMesh::defaultRegion, runTime.timeName(), runTime, IOobject::MUST_READ ) ); - - const volPointInterpolation& cpi = volPointInterpolation::New(stressMesh); - diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/createFields.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createFields.H new file mode 100644 index 000000000..809172810 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createFields.H @@ -0,0 +1,148 @@ + Info<< "Reading field U\n" << endl; + volVectorField U + ( + IOobject + ( + "U", + runTime.timeName(), + mesh, + IOobject::MUST_READ, + IOobject::AUTO_WRITE + ), + mesh + ); + + volTensorField gradU //= fvc::grad(U); + ( + IOobject + ( + "grad(U)", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedTensor("zero", dimless, tensor::zero) + ); + surfaceVectorField snGradU // = fvc::snGrad(U); + ( + IOobject + ( + "snGrad(U)", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedVector("zero", dimless, vector::zero) + ); + + volVectorField V + ( + IOobject + ( + "V", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + fvc::ddt(U) + ); + + volSymmTensorField epsilon + ( + IOobject + ( + "epsilon", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedSymmTensor("zero", dimless, symmTensor::zero) + ); + + volSymmTensorField sigma + ( + IOobject + ( + "sigma", + runTime.timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedSymmTensor("zero", dimForce/dimArea, symmTensor::zero) + ); + + volVectorField divSigmaExp + ( + IOobject + ( + "divSigmaExp", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedVector("zero", dimForce/dimVolume, vector::zero) + ); + + constitutiveModel rheology(sigma, U); + + surfaceVectorField traction + ( + IOobject + ( + "traction", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedVector("zero", dimForce/dimArea, vector::zero) + ); + + // for aitken relaxation + volVectorField aitkenDelta + ( + IOobject + ( + "aitkenDelta", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedVector("zero", dimLength, vector::zero) + ); +// aitken relaxation factor +scalar aitkenInitialRes = 1.0; +scalar aitkenTheta = 0.1; +if(mesh.relax(U.name())) + { + aitkenTheta = mesh.relaxationFactor(U.name()); + } + + + volVectorField resid + ( + IOobject + ( + "resid", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh, + dimensionedVector("zero", dimless, vector::zero) + ); diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/createHistory.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createHistory.H new file mode 100644 index 000000000..eec0cb7ec --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createHistory.H @@ -0,0 +1,30 @@ +OFstream * filePtr(NULL); +word historyPatchName(mesh.solutionDict().subDict("stressedFoam").lookup("historyPatch")); +label historyPatchID = mesh.boundaryMesh().findPatchID(historyPatchName); +if(historyPatchID == -1) + { + Warning << "history patch " << historyPatchName + << " not found. Force-displacement will not be written" + << endl; + } + else if(Pstream::master()) + { + Info << "Force-displacement for patch " << historyPatchName + << " will be written to forceDisp.dat" + << endl; + word hisDirName("history"); + mkDir(hisDirName); + filePtr = new OFstream(hisDirName/"forceDisp.dat"); + OFstream& forceDispFile = *filePtr; + forceDispFile << "#Disp(mm)\tForce(N)" << endl; + } + + +clipGauge* clipGPtr = NULL; +if(mesh.solutionDict().subDict("stressedFoam").found("clipGauge")) + { + if(Switch(mesh.solutionDict().subDict("stressedFoam").lookup("clipGauge"))) + { + clipGPtr = new clipGauge("clipGauge1", U); + } + } diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/createReference.H b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createReference.H new file mode 100644 index 000000000..f24e184cf --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/createReference.H @@ -0,0 +1,7 @@ + boolList needRef(mesh.regions().nRegions(), true); + labelList refCells(mesh.regions().nRegions(), -1); + + labelList deadCells; + +# include "updateReference.H" + diff --git a/applications/solvers/solidMechanics/elasticAcpSolidFoam/elasticAcpSolidFoam.C b/applications/solvers/solidMechanics/elasticAcpSolidFoam/elasticAcpSolidFoam.C new file mode 100644 index 000000000..cffb2fdd4 --- /dev/null +++ b/applications/solvers/solidMechanics/elasticAcpSolidFoam/elasticAcpSolidFoam.C @@ -0,0 +1,257 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 + +Application + elasticAcpSolidFoam + +Description + Arbitrary crack propagation solver. + Cracks may propagate along any mesh internal face. + + Please cite: + Carolan D, Tuković Z, Murphy N, Ivankovic A, Arbitrary crack propagation + in multi-phase materials using the finite volume method, Computational + Materials Science, 2013, http://dx.doi.org/10.1016/j.commatsci.2012.11.049. + +Author + Zeljko Tukovic, FSB Zagreb + Declan Carolan UCD + Philip Cardiff UCD + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" +#include "constitutiveModel.H" +//#include "componentReferenceList.H" +#include "crackerFvMesh.H" +#include "processorPolyPatch.H" +#include "SortableList.H" +#include "solidInterface.H" +#include "solidCohesiveFvPatchVectorField.H" +#include "solidCohesiveFixedModeMixFvPatchVectorField.H" +#include "clipGauge.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ +# include "setRootCase.H" +# include "createTime.H" +# include "createCrackerMesh.H" +# include "createFields.H" +# include "createCrack.H" +//# include "createReference.H" +# include "createHistory.H" +# include "readDivSigmaExpMethod.H" +# include "createSolidInterfaceNoModify.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + + Info<< "\nStarting time loop\n" << endl; + + lduMatrix::debug = 0; + + scalar maxEffTractionFraction = 0; + + // time rates for predictor + volTensorField gradV = fvc::ddt(gradU); + surfaceVectorField snGradV = + (snGradU - snGradU.oldTime())/runTime.deltaT(); + + //# include "initialiseSolution.H" + + while (runTime.run()) + { +# include "readStressedFoamControls.H" +# include "setDeltaT.H" + + runTime++; + + Info<< "\nTime: " << runTime.timeName() << " s\n" << endl; + + volScalarField rho = rheology.rho(); + volScalarField mu = rheology.mu(); + volScalarField lambda = rheology.lambda(); + surfaceScalarField muf = fvc::interpolate(mu); + surfaceScalarField lambdaf = fvc::interpolate(lambda); + + if(solidInterfaceCorr) + solidInterfacePtr->modifyProperties(muf, lambdaf); + + //# include "waveCourantNo.H" + + int iCorr = 0; + lduMatrix::solverPerformance solverPerf; + scalar initialResidual = 0; + scalar relativeResidual = 1; + //scalar forceResidual = 1; + label nFacesToBreak = 0; + label nCoupledFacesToBreak = 0; + bool topoChange = false; + + //bool noMoreCracks = false; + + // Predictor step using time rates + if (predictor) + { + Info << "Predicting U, gradU and snGradU using velocity" + << endl; + U += V*runTime.deltaT(); + gradU += gradV*runTime.deltaT(); + snGradU += snGradV*runTime.deltaT(); + } + + do + { + surfaceVectorField n = mesh.Sf()/mesh.magSf(); + do + { + U.storePrevIter(); + +# include "calculateDivSigmaExp.H" + + fvVectorMatrix UEqn + ( + rho*fvm::d2dt2(U) + == + fvm::laplacian(2*muf + lambdaf, U, "laplacian(DU,U)") + + divSigmaExp + ); + + //# include "setReference.H" + + if(solidInterfaceCorr) + solidInterfacePtr->correct(UEqn); + + if(relaxEqn) + UEqn.relax(); + + solverPerf = UEqn.solve(); + + if(aitkenRelax) + { +# include "aitkenRelaxation.H" + } + else + { + U.relax(); + } + + if(iCorr == 0) + { + initialResidual = solverPerf.initialResidual(); + aitkenInitialRes = gMax(mag(U.internalField())); + } + + //gradU = solidInterfacePtr->grad(U); + gradU = fvc::grad(U); // use leastSquaresSolidInterface grad scheme + + +# include "calculateRelativeResidual.H" + //# include "calculateForceResidual.H" + + if(iCorr % infoFrequency == 0) + { + Info << "\tTime " << runTime.value() + << ", Corr " << iCorr + << ", Solving for " << U.name() + << " using " << solverPerf.solverName() + << ", res = " << solverPerf.initialResidual() + << ", rel res = " << relativeResidual; + if(aitkenRelax) Info << ", aitken = " << aitkenTheta; + Info << ", inner iters " << solverPerf.nIterations() << endl; + } + } + while + ( + //iCorr++ == 0 + iCorr++ < 2 + || + ( + solverPerf.initialResidual() > convergenceTolerance + //relativeResidual > convergenceTolerance + && + iCorr < nCorr + ) + ); + + + Info << "Solving for " << U.name() << " using " + << solverPerf.solverName() + << ", Initial residual = " << initialResidual + << ", Final residual = " << solverPerf.initialResidual() + << ", No outer iterations " << iCorr + << ", Relative residual " << relativeResidual << endl; + +# include "calculateTraction.H" +# include "updateCrack.H" + + Info << "Max effective traction fraction: " << maxEffTractionFraction << endl; + + // reset counter if faces want to crack + if((nFacesToBreak > 0) || (nCoupledFacesToBreak > 0)) iCorr = 0; + } + while( (nFacesToBreak > 0) || (nCoupledFacesToBreak > 0)); + + if(cohesivePatchUPtr) + { + if(returnReduce(cohesivePatchUPtr->size(), sumOp