Example: dental hygienist

Implementation of solid body stress analysis in …

General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Users may download and print one copy of any publication from the public portal for the purpose of private study or research. You may not further distribute the material or use it for any profit-making activity or commercial gain You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Downloaded from on: Sep 28, 2020 Implementation of solid body stress analysis in OpenFOAMTang, TianPublication date:2013 Document VersionPublisher's PDF, also known as Version of recordLink back to DTU OrbitCitation (APA):Tang, T.

Implementation of solid body stress analysis in OpenFOAM. ... Implementation of solid body ... soil mechanics. It is in a hope that this tutorial could provide the ...

Tags:

  Analysis, Implementation, Tutorials, Stress, Mechanics, Body, Solid, Implementation of solid body stress analysis in, Implementation of solid body stress analysis in openfoam, Openfoam

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Transcription of Implementation of solid body stress analysis in …

1 General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. Users may download and print one copy of any publication from the public portal for the purpose of private study or research. You may not further distribute the material or use it for any profit-making activity or commercial gain You may freely distribute the URL identifying the publication in the public portal If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately and investigate your claim. Downloaded from on: Sep 28, 2020 Implementation of solid body stress analysis in OpenFOAMTang, TianPublication date:2013 Document VersionPublisher's PDF, also known as Version of recordLink back to DTU OrbitCitation (APA):Tang, T.

2 (2013). Implementation of solid body stress analysis in with OpenSource softwareA course at Chalmers University of TechnologyTaught by H akan NilssonProject work: Implementation of solid body stressanalysis in OpenFOAMD eveloped for :TianTangPeer reviewed by:Florian VestingJelena AndricDisclaimer: The material has gone through a review process. The role of the reviewer is to gothrough the tutorial and make sure that it works, that it is possible to follow, and to some extentcorrect the writing. The reviewer has no responsibility for the 6, 2012 Contents1 Introduction22 ThestressedFoamsolver in Theoretical background .. A walk throughstressedFoam.. ThetractionDisplacementboundary .. Run aplateHolecase ..93 Mathematical model .. Let s implement it .. Modify thetractionDisplacementboundary .. Test the solver ..154 Extend Biot s equation.

3 Develop theporoPlasticStressedFoamsolver .. SimulatemyPoroCase..205 Theory of theblock matrix solver.. Construct our ownblock matrix.. The Implementation files ..246 Closure331 Chapter 1 IntroductionDuring last decades, finite volume method (FVM) has been applied widely and successfully tosolve the non-linear fluid flow problems. The fact that solid body mechanics and fluid mechanicsshare the same governing equation, and differ in constitutive relations only, gives a possibility ofapplying FVM to simulate solid body dynamics as well [1, 2]. Having the same discretization andapproximation procedure for both solid body and fluid flow, it becomes much easier to model theinteractions in multi-field problems, for instance, the seabed-wave-structure interaction in offshoreengineering [3].Motivated by the above ideas, this tutorial attempts to show practical implementations of solidbody stress analysis in a CFD open source software openfoam .

4 Of course, it could not cover allaspects of the broad field of solid mechanics , therefore only a few topics will be discussed there, andthe selection of these topics for inclusion is mainly influenced by the author s particular interests insoil mechanics . It is in a hope that this tutorial could provide the readers with some prospects ofusing openfoam to solve solid body content of this tutorial is arranged as follows. In Chapter 2, an available linear stress analysissolverstressedFoamdistributed in is firstly reviewed. Afterwards, Chapter 3describes the newly implementedplasticStressedFoam, which covers material non-linearity insolid body . And Chapter 4 develops the newporoPlasticStressedFoamsolver, which performsthe stress analysis in porous media. Moreover, Chapter 5 introduces the new block matrix solver,coupledPoroFoam, which provides implicit solutions of the pressure-displacement coupling in porousmedia.

5 In the end, a general closure is 2 ThestressedFoamsolver Theoretical backgroundstressedFoamis a linear stress analysis solver for elastic solid , applicable to both steady-stateand transient problems. Thermal stress has also been included originally in the solver, so that userscan choose to switch on/off the influence of temperature. However, this tutorial decides to focus onthe isothermal mechanical stress , the part of temperature effects will therefore been a solid body element, the momentum balance states the following vector equations: 2( u) t2 =0( )whereuis the solid displacement vector, is the density, and is the stress tensor. An assumptionof free body force has been order to close the equation system, a constitutive relation has to been specified, and in thecase ofstressedFoamsolver, it uses linear elasticity: = 2 + tr( )I( )whereIis the unit tensor, and are material properties called Lam e , the strain tensor is defined in terms ofu: =12[ u+ ( u)T]( )Combining Eq.

6 ( ), the governing equation for linear elastic solid body is written with theonly unknown variableu: 2( u) t2 [ u+ ( u)T+ Itr( u)]=0( )Notice that in the above vector equation, the three displacement components are coupled witheach other through the underlined term ( u)T+ Itr( u). In order to handle this issue, thesolution procedure instressedFoamsolver follows the so-calledsegregated manner, where eachdisplacement component is solved separately and the inter-component coupling is treated order to recover the explicit coupling, several iterations are solving the displacement vector, it is then straightforward to obtain the strains and stressdistributions in the solid body using Eq.( ).3A WALK A walk throughstressedFoamWe will now explore how thestressedFoamsolver is implemented in openfoam to solve theabove governing equation for elastic solid body .

7 As a start point, Fig below provides an overviewof the structure ofstressedFoamsolver:cd $FOAM_APP/solvers/ : The file system ofstressedFoamsolver the main file. Some header files are included in it. We will go through thecodes in detail later and explain the included files as well when they are reached. reads the input information of material parameters, and . initializes the variable field of our interests, displacement vectoru. reads the input parameters for controlling the numberof iterations and convergence tolerance. is a post-process tool, which calculates the stress field based onEq ThetractionDisplacementdirectory contains a fixed displacement gradient boundary dueto fixed traction, which is a very common boundary condition for stress analysis problem. Wewill discuss it separately in details in Section TheMakedirectory has the instructions for thewmakecompilation command, including , let s focus on understanding the main file, It starts with1:1A small note for easier reading: codes in the all has a framebox, codes in is coloredwith blue without WALK THROUGHSTRESSEDFOAM5#include " " all the class definitions about finite volume method, it is included from thefollowing path:$FOAM_SRC/finiteVolume/ , inside themainfunction there are case initializations (mesh, time, material parameters,variable fields, etc.)

8 :int main(int argc, char *argv[]){# include " "# include " "# include " "# include " "# include " "where the first three files are included generally from openfoam source library:$FOAM_SRC/ openfoam /lnIncludeThe other two files are included locally with specified case information. simply contains the process of converting the Young s ModulusEand Poisson ratio (user in-puts) into Lam e parameters , . creates the displacement vector field byrequiring an initialization from the user, and the calculated displacement values will be automaticallywritten out:// << "Reading displacement field U\n" << endl;volVectorField U(IOobject("U", (),mesh,IOobject::MUST_READ,IOobject::AU TO_WRITE),mesh);After the case initializations, we come to the time-loop:for (runTime++; ! (); runTime++){Info<< "Iteration: " << () << nl << endl;# include " "int iCorr = 0;scalar initialResidual = 0;Inside the loop, the reads the user-defined convergencerequirement and how many iterative corrections for the explicit treatment of inter-component cou-pling are wanted:A WALK THROUGHSTRESSEDFOAM6// dictionary& stressControl = ().}}

9 SubDict("stressedFoam");int nCorr(readInt( ("nCorrectors")));scalar convergenceTolerance(readScalar( ("U")));Then we reach the core part ofstressedFoam, which is solving the Eq using ado-whileloop:do{volTensorField gradU = fvc::grad(U);fvVectorMatrix UEqn(fvm::d2dt2(U)==fvm::laplacian(2*mu + lambda, U, "laplacian(DU,U)")+ fvc::div(mu* () + lambda*(I*tr(gradU)) - (mu + lambda)*gradU,"div(sigma)"));initialResi dual = ().initialResidual();} while (initialResidual > convergenceTolerance && ++iCorr < nCorr);The namespacefvmdenotes for implicit discretization, whilefvcstands for explicit had mentioned before that, the term of ( u)T+ Itr( u) contains the inter-component cou-pling and therefore shall be taken explicitly. However, thestressedFoamsolver goes a bit furtherby doing the following rearrangement to improve the convergence: = ( u) implicit+ [ ( u)T+ Itr( u)] explicit( )= [(2 + ) u] implicit+ [ ( u)T+ Itr( u) ( + ) u] explicit( )This mainly helps to balance the implicit and explicit parts and give an equal coefficient matrix forall components is providing an iterative prediction-correction process as illustrated in Fig next WALK THROUGHSTRESSEDFOAM7 Figure : Thewhileloop ,uy,uzare the displacement components,nstands for the time step, andidenotes theithiterationAfter solving the converged displacement vector field, the stress is finally calculated through :# include " "where basically Eq and are used:// ( ()){volTensorField gradU = fvc::grad(U);volSymmTensorField sigma =rho*( *mu*symm(gradU) + lambda*I*tr(gradU)).}

10 // some more less important codes are hidden}In the end , there is output information regarding the elapsed time in each timestep and finally we close therunTimeloop:Info<< "ExecutionTime = " << () << " s"<< " ClockTime = " << () << " s"<< nl << endl;}Info<< "End\n" << endl;return(0);}THETRACTIONDISPLACEMENTB OUNDARY8So far, we have gone To summarize it in short, there is a while loop to solvethe inter-component coupled governing equation (Eq ) and then an to obtain the corresponding ThetractionDisplacementboundaryIn case of solid stress problems, we usually encounter a boundary condition with fixed tractionforce (T), which can be expressed as:T= n( )wherenis the surface normal on the , since the displacementuis the computing variable instressedFoamsolver, we have toconvert the traction force into displacement on the boundary:T= n=[ u+ ( u)T+ Itr( u)] n( )= [(2 + ) u implicit+ ( u)T+ Itr( u) ( + ) u explicit] n( ) ( u) n=T [ ( u)T+ Itr( u) ( + ) u] n2 + ( )As a result, the above equation gives a displacement gradient boundary (Neumann type), which canbe derived from the given traction force and the explicitly treated terms on the right hand process has been implemented as thetractionDisplacementboundary instressedFoam.


Related search queries