AceFEMManual



Comments



Description

2 AceFEM Finite Element Environment AceFEM Contents AceFEM Contents .....................................................................................................................3 AceFEM Tutorials ......................................................................................................................19 AceFEM Preface ...............................................................................................................19 • Acknowledgement AceFEM Structure ............................................................................................................26 AceFEM Palettes ..............................................................................................................38 Standard AceFEM Procedure .....................................................................................43 Input Data ............................................................................................................................56 Analysis Phase .................................................................................................................63 Iterative solution procedure ........................................................................................65 Data Base Manipulations ..............................................................................................74 Selecting Nodes ................................................................................................................76 Selecting Elements .........................................................................................................80 Interactive Debugging ....................................................................................................81 Code Profiling ....................................................................................................................96 Implementation Notes for Contact Elements ......................................................107 Semi-analytical solutions .............................................................................................123 User Defined Tasks .........................................................................................................140 Parallel AceFEM computations .................................................................................159 Summary of Examples ...................................................................................................168 • Basic AceFEM Examples • Basic AceGen-AceFEM Examples • Advanced Examples • Examples of Contact Formulations • Implementation of Finite Elements in Alternative Numerical Environments Bibliography .......................................................................................................................174 Shared Finite Element Libraries .........................................................................................179 AceShare .............................................................................................................................179 Accessing elements from shared libraries ..........................................................182 Unified Element Code ....................................................................................................192 Simple AceShare library ...............................................................................................194 Advanced AceShare library .........................................................................................202 Basic AceFEM Examples .......................................................................................................222 Bending of the column (path following procedure, animations, 2D solids) ...................................................................................................................................................223 Boundary conditions (2D solid) ................................................................................231 Solution 2: based on general node selector and calculated nodal forces ..........240 Standard 6-element benchmark test for distortion sensitivity (2D solids) ...................................................................................................................................................247 Solution Convergence Test .........................................................................................251 Postprocessing (3D heat conduction) ....................................................................259 Basic AceGen-AceFEM Examples .....................................................................................274 Simple 2D Solid, Finite Strain Element ..................................................................275 Mixed 3D Solid FE, Elimination of Local Unknowns ........................................285 Mixed 3D Solid FE, Auxiliary Nodes ........................................................................305 Cubic triangle, Additional nodes ..............................................................................329 Inflating the Tyre ..............................................................................................................342 AceFEM Finite Element Environment 3 Inflating the Tyre ..............................................................................................................342 Advanced Examples ................................................................................................................357 Round-off Error Test ......................................................................................................358 Solid, Finite Strain Element for Direct and Sensitivity Analysis ................373 Parameter, Shape and Load Sensitivity Analysis of Multi-Domain Example ...................................................................................................................................................402 Three Dimensional, Elasto-Plastic Element .........................................................420 Axisymmetric, finite strain elasto-plastic element ............................................453 Cyclic tension test, advanced post-processing , animations ......................476 Solid, Finite Strain Element for Dynamic Analysis ...........................................500 Elements that Call User External Subroutines ...................................................510 Examples of Contact Formulations ..................................................................................531 2D slave node, line master segment element .....................................................532 2D indentation problem .................................................................................................545 2D slave node, smooth master segment element .............................................553 2D snooker simulation ...................................................................................................575 3D slave node, triangle master segment element .............................................585 3D slave node, quadrilateral master segment element ..................................594 3D slave node, quadrilateral master segment and 2 neighboring nodes element ...................................................................................................................................................605 3D slave triangle and 2 neighboring nodes, triangle master segment element ...................................................................................................................................................616 3D slave triangle, triangle master segment and 2 neighboring nodes element ...................................................................................................................................................629 3D contact analysis .........................................................................................................641 Troubleshooting and New in version ...............................................................................647 AceFEM Troubleshooting ............................................................................................647 New in version ...................................................................................................................650 Advanced User Documentation ..........................................................................................653 Mesh Input Data Structures ....653 Sensitivity Input Data Structures ........666 Reference Guide ........................................................................................................................669 Description of Problem .................................................................................................669 SMTInputData ............669 SMTAddDomain ........673 SMTAddMesh ............675 SMTAddElement .......677 SMTAddNode 681 SMTAddEssentialBoundary ...682 SMTAddNaturalBoundary .....686 SMTAddInitialBoundary ........687 SMTMesh ......687 SMTAddSensitivity ....708 Analysis ................................................................................................................................715 SMTAnalysis . 715 SMTNewtonIteration . 719 SMTNextStep 720 SMTStepBack 722 SMTConvergence .......723 4 AceFEM Finite Element Environment SMTConvergence .......723 SMTDump .....729 SMTRestart ....742 SMTSensitivity ..........742 SMTTask .......744 SMTStatusReport .......744 SMTSessionTime .......745 SMTErrorCheck .........746 SMTSimulationReport ............749 Postprocessing .................................................................................................................750 SMTShowMesh ..........750 SMTMakeAnimation . 768 SMTResidual . 769 SMTPostData .771 SMTData ........772 SMTPut ..........776 SMTGet .........787 SMTSave .......788 Data Base Manipulations ..............................................................................................789 SMTIData ......789 SMTRData .....791 SMTNodeData ...........791 • Interpreted nodal data SMTNodeSpecData ....795 SMTElementData .......796 SMTDomainData .......798 SMTFindNodes ..........800 SMTFindElements .....800 SMTSetSolver 801 • References Shared Finite Element Libraries ................................................................................807 SMTSetLibrary ...........807 SMTAddToLibrary ....809 SMTLibraryContents . 812 Utilities ..................................................................................................................................813 SMTScanedDiagramToTable . 813 SMTPost ........819 SMTPointValues ........822 SMTMakeDll . 823 1000. etc. or even symbolic evaluation of FE quantities to analyze various properties of the numerical procedures on relatively small examples..lj..si www.. interval arithmetic. graphic post-processing of the results.Jože Korelc.. residual. 2009. etc.fgg.). This unique capability gives the user the opportunity to solve industrial large-scale problems with several 100000 unknowns and to use advanced capabilities of Mathematica such as high precision arithmetic. 3D.. 2010 Ravnikova 4. mesh generation. etc. SI . such as processing of the user input data. 2008. Those procedures are written in Mathematica language and executed inside Mathematica. contact search procedures. sensitivity vectors. The numerical module exists as Mathematica package as well as external program written in C language and is connected with Mathematica via the MathLink protocol. . thermal. 2007. control of the solution procedures..) including full symbolic input for most of the elements.uni . The element oriented approach enables easy creation of costumized finite element based applications in Mathematica. Ljubljana.uni .lj. Slovenia E|mail : AceProducts@fgg. such as evaluation and assembly of the finite element quantities (tangent matrix. solution of the linear system of equations. 2D. contact.AceFEM Finite Element Environment 5 AceFEM Tutorials AceFEM Preface AceFEM © Prof. The AceFEM package comes with a large library of finite elements (solid. Dr. The AceFEM package explores advantages of symbolic capabilities of Mathematica while maintaining numerical efficiency of commercial finite element environments. 2006. The main part of the package includes procedures that are not numerically intensive...si/Symech/ The AceFEM package is a general finite element environment designed to solve multi-physics and multi-field problems. In combination with the automatic code generation package AceGen the AceFem package represents an ideal tool for a rapid development of new numerical models. Additional elements can be accessed through the AceShare finite element file sharing system. The numerical module includes numerically intensive operations. o. which will provide all the necessary formulation dependent codes by automatic code generation. The element oriented concept is the basic concept behind the formulation of the AceFEM environment. Additional elements can be 6 AceFEM Finite Element Environment accessed through the AceShare finite element file sharing system. Institute of Fundamental Technological Research. Poland for helpful discussions and implementation of contact search routines. nodal and element data) as well as numerical algorithms at the local element level.. Vandotova 55. Warszawa. The complexity of advanced numerical software arises also from other sources which include: necessity for realistic description of physical phenomena involved in industrial problems. requirements for highly efficient numerical procedures. contact.) are still written in a standard way. Swietokrzyska 2. One of the reasons for this is that only the shift of complexity of data management has been performed by utilizing OO methods. The idea is to design a FE environment where code complexity will be shifted out of the finite element environment to a symbolic module. as it is the case with all complex environments.comes with a large library of finite elements (solid. However. This of course can not be done manually without the use of reusable parts of the code (often element shape functions. ANSYS. Ljubljana. Also most of the research work is still based on a traditional approach. 2D. The shift concerns the data structures (organization of environment. In the last decade or so the use of object oriented (OO) approach was considered as the main method of obtaining reusable and extensible numerical software. while different material models then entail only different implementation of the same elements.o. In combination with the automatic code generation package AceGen the AceFem package represents an ideal tool for a rapid development of new numerical models. This approach requires the creation of reusable code for material description and element description.. pre and post-processing procedures are written as reusable codes). The traditional definition of the finite element treats the chosen discretization of the unknown fields and a chosen variational formulation as the "definition of the finite element".. etc. multi-physic. This is the way how the "element oriented" concept can be fully exploited in the case of multi-field. . thermal. and multi-domain problems. Normally the complete structure appears inside the FE environment which is typically written in FORTRAN or C language. and all the main FE systems (ABAQUS. Slovenia for his work on AceFEM and especially implementation of various linear solver packages. MARC. Usually it is more convenient to have a single complex symbolic description and to generate several separate elements for various tasks.. than to make a very general element which covers several tasks.. while all the codes at the local level of the finite element are automatically generated. I would like to thank Tomaž Šuštar. The AceFEM package has been designed in a way that explores advantages of this new approach to the design of finite element environments... AceFEM Structure Commercial FE systems have incorporated ten to several hundred different element formulations. In principle each element has a separate source file with the element user subroutines. 3D. the OO approach did not gain much popularity in the field of finite element methods. while the level of abstraction of the problem description remains the same. I am also indebted to my friends Stanislaw Stupkiewicz and Jakub Lengiewicz. material models. the result of scientific cooperation with my colleagues and former students. The element oriented approach enables easy creation of costumized finite element based applications in Mathematica. despite its undoubted success in many areas. Acknowledgement The AceFEM environment is. The symbolic approach can bypass this drawback of the OO formulation since only the basic functionality is provided at the global level of the finite element environment which is manually coded. In the present formulation an element will be identified by its discretization and material models. and the complexity of the data structure. Centre for Computational Continuum Mechanics d.) including full symbolic input for most of the elements. so no reusable code is needed at the local level. contact search procedures. control of the solution procedures. It is designed to solve industrial large-scale problems with several 1. sensitivity vectors. The AceFEM package explores advantages of symbolic capabilities of Mathematica while maintaining numerical efficiency of commercial finite element environment. The alternative version called MDriver is completely written in Mathematica's symbolic language. The basic version called CDriver is independent executable written in C language and is connected with Mathematica via the MathLink protocol. User can derive and use its own user defined finite elements or it can use standard elements from the extensive library of standard elements (Accessing elements from shared libraries).000 unknowns. etc. The MDriver has the same data structures and command language as the CDriver. It also does not support advanced post processing. interval arithmetic... The main part of the package includes procedures that are not numerically intensive such as processing of the user input data. The dll file is created automatically by the SMTMakeDll function. The numerical module exists in two versions. It has advantage that we can use advanced capabilities of Mathematica. but due to the limited functionality and efficiency it should be primary used in element development phase for the problems with less than 10. mesh generation. solution of the linear system of equations. graphic post-processing of the results. etc. such as high precision arithmetic.000. there are as many dynamically linked library files (dll file) as is the number of different elements. Those procedures are written in Mathematica language and executed inside Mathematica.AceFEM Finite Element Environment 7 AceFEM organization scheme The AceFEM package is a general finite element environment designed to solve multi-physics and multi-field problems. The second part includes numerically intensive operations such as evaluation and assembly of the finite element quantities (tangent matrix. etc. The element subroutines are not linked directly with the CDriver but dynamically when they are needed.). Consequently.000 unknowns. residual. etc. . or even symbolic evaluation of FE quantities to analyze various properties of the numerical procedures on relatively small examples.. contact searches. Tee AceFEM package is designed to solve steady-state or transient finite element and similar type problems implicitly by means of Newton-Raphson type procedures. http://www. AceFEM-MDriver. the element source codes for all supported finite element environments (FEAP. Gran Capitan. .g. links. For example. such as high precision arithmetic. formation of the user defined library that can be posted on the internet to be used by other users of the AceFEM system. Additional elements are accessed and automatically downloadable through the AceShare system. or even symbolic evaluation of FE quantities to analyze various properties of the numerical procedures on relatively small examples. thermal and contact elements.. downloading the finite elements from the on-line libraries. The AceFEM has built-in interface to commercial pre/post-processor GID developed by International Center for Numerical Methods in Engineering. coupled and coupled transient problems). authors data. This large collection of prepared Mathematica inputs for a broad range of finite elements can be easily adjusted for users specific problem. interval arithmetic. but due to the limited functionality and efficiency it should be primary used in element development phase for the problems with less than 10. the AceGen template (Mathematica input) for the symbolic description of the element. modified material model) or combine several Mathematica input files into one that would create a coupled finite element (e. test of objectivity. The AceFEM package has laso some basic pre-processing and post-processing functions (SMTMesh.cimne. different forms of the patch tests. 08034 Barcelona. the following tests can be performed directly in Mathematica: fl fl fl fl fl convergence of iterative procedures. . transient. For a more complex geometries the commercial pre/post-processor has to be used. the element Dynamic Link File (dll) used by AceFEM. etc. The AceGen package represents suitable environment for debugging and testing of a new finite element before it is included into the commercial finite element environment.. It can be used for the geometries that can be discretized by the structured meshes of arbitrary shape. etc. Edificio C1.g. the AceGen input files for solid and thermal conduction elements can be combined into new AceGen input file that would create a finite element for thermomechanical analysis). The already available AceShare on-line libraries include AceGen templates for the symbolic description of direct and sensitivity analysis of the most finite element formulations that appear in the description of problems by finite element method (steady state. an additional documentation and benchmark tests.8 AceFEM Finite Element Environment The alternative version called MDriver is completely written in Mathematica's symbolic language. The files are stored on and served by personal computers of the users. The AceFEM environment comes with a small built-in library including standard solid..000 unknowns. Abaqus. SMTShowMesh). The user can use the Mathematica input file as a template for the introduction of modifications to the available formulation (e. It also does not support advanced post processing. The MDriver has the same data structures and command language as the CDriver. . The AceShare system is a finite element file sharing mechanism built in AceFEM that makes AceGen generated finite element source codes available for other users to download through the Internet. Spain. Campus Norte UPC.. structural. contact searches.es. tests of the element eigenvalues.upc.). The AceShere system enables: browsing the online FEM libraries. element distortion tests. The AceShare system offers for each finite element included in the on-line library: the element home page with basic descriptions. It has advantage that we can use advanced capabilities of Mathematica. .AceFEM Finite Element Environment 9 AceFEM Palettes Main AceFEM palette. 10 AceFEM Finite Element Environment Post-processing palette and mesh display windows. . .AceFEM Finite Element Environment 11 AceShare FEM browser. <D. This loads the AceFEM package.dll) is also included as a part of installation (in directory $BaseDirectory/Applications/AceFEM/Elements/). the source code file with the element subroutines.post-processing of the results can be part of the analysis (SMTShowMesh) or done later independently of the analysis (SMTPut) Let us consider a simple one element example to illustrate the standard AceFEM procedure. . 8"k0 *" -> 10. SMTAddDomain@"A". SMTInputData@D. the material data (in this case k0.12 AceFEM Finite Element Environment Standard AceFEM Procedure The standard AceFEM procedure is comprised of two major phases: A) Input data phase .AceFEM is designed to solve steady-state or transient finite element and related problems implicitly by means of Newton-Raphson type procedures .solution procedure is executed accordingly to the Mathematica input given by the user (SMTConvergence) .1. "k1 *" -> . "ExamplesHeatConduction".5.element description (Input Data.phase starts with SMTAnalysis .sensitivity input data ( SMTAddSensitivity ) B) Analysis phase . Here the AceFEM is used to analyze simple one element example. "Q *" -> 1. thus one does not have to create dll with AceGen in order to run the example. k1 .. Here the domain description is given that defines the name of the element.phase starts with SMTInputData . The problem considered is steady-state heat conduction in a three-dimensional domain. and prepares input data structures and starts input data section << AceFEM`. The element dll file (ExamplesHeatConduction. The procedure to generate heat-conduction element that is used in this example is explained in AceGen manual section Standard FE Procedure. k2 L and the initial value of the heat source Q = 1.mesh input data (Input Data) . "k2 *" -> . the actual element codes have to generated before the analysis by AceGen code generator) . SMTNextStep@1. 0.0. 1 -> 0. .1<.2<. 1 -> 5. 0.5. 1 -> 0.5<. 1. 1. 0<.1<. 81.0.AceFEM Finite Element Environment 13 Here the element. 80. creates data structures and starts the analysis. 1. The SMTAnalysis also compiles the element source files and creates dynamic link library files (dll file) with the user subroutines (see also SMTMakeDll) or in the case of MDriver reads all the element source files into Mathematica. 81. SMTAddNaturalBoundary@87. Here the real time and the value of the boundary condition and the heat source multiplier are prescribed. 0<. The problem is steadystate so that the real time in this case has no meaning. 0.5.5<D. 1<. 83. SMTAddElement@"A". 1.3<. the node coordinates and the boundary conditions of the problem depicted below.5. 81. 1 -> 0. 1. 80. . 0<. 80. SMTAddEssentialBoundary@81. 82. 1 -> 1. 81. This checks the input data. 84. 1D. [email protected]<D. 1<. 1<<D. 88. 0. ˛Da˛ê˛Y˛=0. 10D.ê1. 0.000203298 IterêTotal=3ê3 Status=0ê8< Tag=0. 0D. 0.0. lêDl=1.ê1. ˛Da˛ê˛Y˛=1. While@SMTConvergence@10 ^ .ê1.5.14 AceFEM Finite Element Environment Here the problem is solved by the standard quadratically convergent Newton-Raphson iterative method. TêDT=1. Here additional step is made.ê0.ê1. nodal and element data.5<DDD.ê0.ê1.142921 IterêTotal=2ê2 Status=0ê8< Tag=0. lêDl=1.ê1. lêDl=1. This gives to AceFEM flexibility that is not shared by other FE environments. This test can be used as one of the code verification tests.91155 µ 10-14 IterêTotal=5ê10 Status=0ê8Convergence< Tag=0. "Bp". [email protected] TêDT=1. While@SMTConvergence@10 ^ . SMTStatusReport@SMTPostData@"Temperature".1 TêDT=1.1 During the analysis we have all the time full access to all environment. [email protected] ê0.1 TêDT=1. 10D.1 TêDT=1.5599 µ 10-10 IterêTotal=4ê4 Status=0ê8< Tag=0. They can be accessed and changed with the data manipulation commands (see Data Base Manipulations). lêDl=1.66682 IterêTotal=1ê1 Status=0ê8< Tag=0.83286 µ 10-11 ê3.12.0. the temperature in node 3 is set to 1.5<DD. SMTNodeData@3. SMTNewtonIteration@D. .10033 ê3.ê1.57125 µ 10-16 IterêTotal=5ê5 Status=0ê8< Tag=0. TêDT=1.0. ˛Da˛ê˛Y˛=7.12.5.0.86125 µ 10-15 ê 3. . however instead of increasing time or multiplier. lêDl=1. Observed quadratic convergence is also a proof that the problem was correctly linearized.ê1. ˛Da˛ê˛Y˛=8. lêDl=1.14193 µ 10-16 ê4.ê1.ê1.5<D. SMTStatusReport@SMTPostData@"Temperature". ˛Da˛ê˛Y˛=1.5. 8. ˛Da˛ê˛Y˛=0. 8. 81.D.1 .0370544 ê0. 10 5.AceFEM Finite Element Environment 15 The SMTSimulationReport command displays vital characteristics of the analysis performed. of nodes No. 0. of steps back Step efficiency H%L Total no. 0. SMTSimulationReport@D. 0. No. of iterations Average iterationsêstep Total time HsL Total linear solver time HsL Total linear solver time H%L Total assembly time HsL Total assembly time H%L Average timeêiteration HsL Average linear solver time HsL Average K and R time HsL Total Mathematica time HsL Total Mathematica time H%L USER-IData USER-RData 8 1 4 2 8ê8 16 2 0 100. of elements No. 0.4971 . 0. of steps No.173 0. 0. of equations Data memory HKBytesL Number of threads usedêmax Solver memory HKBytesL No.0173 0. 0.032 18. and the SMTAddElement commands. animations. B) The type of the elements and the data common to all elements of the specific type is specified by the SMTAddDomain command.1 1 2 AceFEM Input Data The obligatory parts of the input data phase are: A) The input phase starts with the initialization (see SMTInputData ). "Contour" Ø TrueD 8 5 4 1 6 3 7 0.134e1 0.349 Tem* Max. The actual element codes have to be generated before the analysis by the AceGen code generator or taken from the AceShare libraries. the SMTAddNode .2096e1 Min. the SMTAddNaturalBoundary and the SMTAddInitialBoundary commands. SMTShowMesh@"Marks" Ø True.159e1 0.16 AceFEM Finite Element Environment Here the SMTShowMesh function displays three-dimensional contour plot of the current temperature distribution. AceFEM is an element oriented environment that provides mechanisms for the elements to take active part in construction of the actual mesh. 0.848 0. Additional examples how to post-process the results can be found in Solution Convergence Test. D) The essential (Dirichlet) and the natural (Neumann) boundary conditions of the problem are specified by the SMTAddEssentialBoundary . "Field" Ø "Tem*".599 0. See also: Standard 6-element benchmark test for distortion sensitivity (2D solids) Bending of the column (path following procedure. 0.109e1 0. 2D solids) . The topological mesh is a base on which the actual finite element mesh is constructed. then are the actual mesh and the topological mesh identical. If there are no elements that take active part in construction of the mesh.184e1 0. C) The node coordinates and the connectivity of nodes for topological mesh can be given by the SMTMesh . Note that the node numbering is changed after the input data phase due to the process of joining the nodes which have the coordinates and the node identification with the same value. E) If sensitivity analysis is required then the SMTAddSensitivity command specifies the type and the values of the sensitivity parameters. Here are the element material data. SMTAddDomain@ 8"patch". The element name is usually used also for the file name of the file where element subroutines are stored..3<.1.0. "n *" -> 0. 1. 3. 2. [email protected]<. 8"E *" -> 3000. 4<<D 1 .AceFEM Finite Element Environment 17 See also: Standard 6-element benchmark test for distortion sensitivity (2D solids) Bending of the column (path following procedure.<<D Definition of nodes.3. animations. 3.5. 1. 4< Definition of elements. 2D solids) ‡ Example: One element Here follows the input data for a single element example depicted below. 81. "SEPEQ1DFLEQ1Hooke".1.3<. the integration code. "t *" -> 2.0. << AceFEM`. SMTAddNode@8. 2. and the type of the element.4<D 81. . SMTAddElement@8"patch".2. 81. 81. 80. 0. 02<. The actual solution procedure is executed accordingly to the Mathematica input given by the user. 1 -> 0. SMTAddEssentialBoundary@81. The details of the iterative solution procedure are given in Iterative solution procedure . 1 Ø 0. 82. Ê performs initialization of the data base structures (see Iterative solution procedure ). 2 Ø . 83. 1 -> 105<D 881. SMTAnalysis@D True Analysis Phase The standard parts of the analysis phase are: A) The analysis phase starts with the initialization (see SMTAnalysis ). SMTShowMesh) or done later independently of the analysis (SMTPut). 2 Ø 0.015.0. C) The graphic post-processing of the results can be part of the analysis ( SMTPostData . B) The AceFEM is designed to solve steady-state or transient finite element and related problems implicitly by means of Newton-Raphson type procedures.0. compiles the element source files and creates dynamic link library files or in the case of MDriver numerical module reads all the element source files into Mathematica. 84. D) All the data in the data base can be directly accessed from Mathematica and most of the data can be also changed during the analysis using Data Base Manipulations . 1 Ø 0. Note that the node numbering is changed after the AMTAnalysis due to the process of joining the nodes which have the coordinates and the node identification with the same value. 2 Ø 0. 82. 2 -> 0.02<. transcripts input data structures into analysis data base structures. 2 -> 0. .015.18 AceFEM Finite Element Environment Definition of boundary conditions. The SMTAnalysis command does the following: Ê Ê Ê checks the correctness of the input data structures.015<. 2 -> .12<. 1 Ø 105<< Here are the finite element data structures are established. 83.021<< 882. 1 -> 0. 84.12<.015<.021<D SMTAddNaturalBoundary@82. element residual Ye is taken from the global vector R:=R-Ye . hp element specific (transient) variables The following steps are performed at the beginning at of the analysis: Ê data is set to zero at=ap=ht=hp=0 Ê boundary conditions are set to initial boundary conditions (Bi) prescribed by SMTAddInitialBoundary Bt:=Bi Bp:=Bi The following steps are performed at the beginning of the time or multiplier increment: Ê global variables at the end of previous step are reset to the current values of global variables ap:=at Ê boundary conditions at the end of previous step are reset to the current values of boundary conditions Bp:=Bt The following steps are performed for each iteration: Ê global vector R and global matrix K are initialized R:=0. the element tangent matrix Ke is added to the global matrix K:=K+Ke . They used for the initialization of the Bp vector at the start of the analysis and discarded after. ap. K:=0 Ê boundary conditions are updated as follows: the current boundary value is calculated as Bt:= Bp+Dl dB.AceFEM Finite Element Environment 19 Iterative solution procedure Symbol table: ·t ·p current iterative value value at the end of previous time (load) step Bt. Bi initial boundary conditions The initial boundary conditions are not stored into the analysis data base. at global variables with unknown value é é ap. Bp boundary conditions è Bt part of the current boundary conditions vector (Bt) where essential boundary conditions are prescribed by SMTAddEssentialBoundary Bt part of the current boundary conditions vector (Bt) where natural boundary conditions are prescribed è By default all the unknowns have prescribed natural boundary condition (set to 0). at global variables with prescribed value (essential boundary condition) ht. where Dl is the multiplier increment é é essential boundary conditions are set at := Bt natural boundary conditions are added to the global vector R:=R+Bt Ê user subroutine "Tangent and residual" is called for each element. thus Bt:= BtîBt. The nonzero value of the natural boundary condition can be prescribed by SMTAddNaturalBoundary. SMTNextStep@1. stepP3T . SMTNewtonIteration@D. 10D. If@stepP1T. 8"Adaptive".1.8.D. 8i.Ê 20 boundary conditions are updated as follows: the current boundary value is calculated as Bt:= Bp+Dl dB.1D. where Dl is theElement Environment AceFEM Finite multiplier increment é é essential boundary conditions are set at := Bt natural boundary conditions are added to the global vector R:=R+Bt Ê user subroutine "Tangent and residual" is called for each element. element residual Ye is taken from the global vector R:=R-Ye Ê Ê set of linear equations is solved K Da=R. 8. Do@SMTNextStep@1. 0. While@SMTConvergence@10 ^ . 1.001. solution is incremented at:=at+Da. . animations. . 2D solids) ‡ Example: constant increment This is a path following procedure with a constant multiplier increment (the multiplier increment runs from 0 to 1 in 10 steps). stepP2TD D . the element tangent matrix Ke is added to the global matrix K:=K+Ke .8.D. maximal increment 0. While@ While@step = SMTConvergence@10 ^ . SMTStepBack@D. SMTNewtonIteration@D. 10<D ‡ Example: adaptive increment This is a path following procedure with an adaptive multiplier increment (the multiplier increment runs from 0 to 10 with an initial increment 0. See also: Standard 6-element benchmark test for distortion sensitivity (2D solids) Bending of the column (path following procedure.001). 0. SMTNextStep@1.<D. 10. 10.2 and minimal increment 0.2. 0.1D.D. Deformed mesh is displayed after each completed increment into the post-processing window.D. 10. [email protected] and minimal increment 0. element data (see SMTElementData . SMTNewtonIteration@D. node coordinates. SMTShowMesh@"DeformedMesh" Ø True. ). "Show" -> "Window"D.<D.D. method used to solve linear system of equations during the iterative procedure (see SMTSetSolver ). If@Not@stepP1TD. ListLinePlot@graphD Data Base Manipulations The SMTAnalysis command transcripts input data structures into analysis data base structures. Domain Specification Data ). stepP3T . material data. Node Specification Data ). 8. stepP2TD D. elements nodes. SMTNextStep@1. Node Data ). SMTNextStep@1. 8. 8SMTData@"Multiplier"D. SMTRData . The analysis data base structures can be accessed and changed during the analysis. node data (see SMTNodeData . SMTStepBack@D. 8"Adaptive".001). Element Data ). tangent matrix nad residual related to the whole structure as well as to the particular element (see SMTData ). .2. values of the essential nad natural boundary conditions and all unknowns of the problem. D. graph = 8<. If@stepP1T. If@stepP4T === "MinBound".5<D<D. The user can interactively change during the analysis: Ê Ê Ê Ê Ê Ê all environment data. 0. SMTPostData@"Sxx".1D. While@ While@step = SMTConvergence@10 ^ . The list of points graph is also collected during the analysis.2. Ê Ê Ê Ê Ê Ê Ê environment data (see SMTIData . maximal increment 0. node specification data (see SMTNodeSpecData . elements history variables. .D. 0.1. SMTStatusReport@"Dl < Dlmin"D.AceFEM Finite Element Environment 21 ‡ Example: adaptive increment with graphics This is a path following procedure with an adaptive multiplier increment (the multiplier increment runs from 0 to 10 with an initial increment 0. 0. element specification data (see SMTDomainData . 10.001.8. X..#1==5 && #3==2&} The number of coordinates is reduced for 2D and 1D problems as follows. yi ªY.22 AceFEM Finite Element Environment Selecting Nodes form 8in1 .Z< and node identification nID search for all nodes with the coordinates yi ªY.Y< 8"Find".in2 ."Y".nID< 8"Find".z2 < all nodes with coordinates T=8x."ALL"."X"==5 && "Z"==2 &}ª {"Find". 8" Find ".y."ALL".nID< 8" Find ".nID< 8"Find".yi .y2 .Y.Y. arbitrary x coordinate and node identification nID Hother combinations are also possible e. Examples: "X"==5 && "Z"==2 & ª {"Find"."ALL"< search for all nodes with the coordinates xi ªX. zi ªZ and arbitrary identification ª 8X."ALL".yi .Y.5. Nodes for which test function crit returns True are selected. The parameter crit is a pure function applied to each node in turn.#2. yi ªY ª 8X. zi ªZ.g.Y. The string "ALL" means that boundary condition is prescribed for all nodes with the given coodinate or node identification.Y< and node identification nID nodes for which test crit@xi ."ALL".. The standard Mathematica symbols for the formal parameters of the pure function (#1.nIDi D yields True all nodes on line segment with end points T1 = 8x1 . crit< Selecting nodes. form 8" Find ".Z."Z". explanation sets essential or natural boundary condition for the node with the coordinates 8X.2} ª {"Find".5. The simbol "ALL" or simply empty space can be used insted of the coordinates of the nodes. coordinates of the nodes or a pure function. nIDi D yields True . Many functions require as input a list of nodes on which certain action is applied.Y.X.Y."ALL".nID<L search for all nodes with the coordinates xi ªX.T2 <D Point@TD 8"Find".) can be replaced by the strings representing coordinates "X".X< 8"Find".Z.crit< Selecting nodes for 2D problems. The parameter that is used to select nodes can be a list of node indeces.z< search for node with the coordinates 8X.in2 .X.X.…inN Hnote that node index can be changed due to the "Tie" command after the SMTAnalysis commandL ª 8i< nodes for which test crit@xi .Z< 8"Find"."ALL"< ª crit i_Integer crit_Function Line@8T1 ."ALL".…inN < selected nodes N nodes with the node indeces in1 .2}ª {"Find".Y.z1 < and T2 =8x2 ."ALL". .#3."ALL"< search for all nodes with the coordinates xi ªX ª 8X.y1 . and the node identification "ID".Z.zi .X. explanation sets essential or natural boundary condition for the node with the coordinates 8X.ie2 . For a large scale problems this my represent a drawback. Elements for which all nodes return True are selected. crit< Selecting nodes for 1D problems.Y< and node identification nID nodes for which test crit@xi ... nIDi D yields True Selecting Elements form 8ie1 .zi . The standard Mathematica symbols for the formal parameters of the pure function (#1.AceFEM Finite Element Environment 23 form 8" Find ". the code has to be generated in "Debug" mode.X. Examples: "X"<5 && "Z">2 & Interactive Debugging The procedures described in the section User Interface of the AceGen manual for the run-time debugging of automaticaly generated codes can be used within the AceFEM environment as well. The parameter that is used to select elements can be a list of element indeces. By default compiler compiles the code generated in "Debug" mode with the compiler options for debugging.) can be replaced by the strings representing coordinates "X".#3. . and the node identification "ID".nID< 8" Find ".ie2 .…ieN ª 8i< all elements with domain identification dID selection of elements with the nodes for which test crit@xi ."Z". For the interactive debugging procedures. selected elements N elements with the element indeces ie1 . domain identification or pure function.#2. Compiler can be forced to produce optimized program also for the code generated in "Debug" mode with the SMTAnalysis option "OptimizeDll"->True. The parameter crit is a pure function applied to all nodes of the element in turn.yi ."Y".…ieN < i_Integer dID crit_Function Selecting nodes for 3D problems.nIDi D yields True Many functions require as input a list of elements on which certain action is applied. 8. 8i. 3<D. 1. 1<. << AceGen`. 1. 1TL H1 + h XnPi.Df . jD. k £ k0 + k1 f + k2 f2 . fI. "k1 -conductivity parameter". fI ¢ SMSReal@Table@nd$$@i. 8i. XD. 1<. "SMSDefaultData" -> 81.1.1<. SMSDo@ Kg £ SMSD@Rg. Q< ¢ SMSReal@Table@es$$@"Data". . 1. 8j. SMSNoNodes<. SMSInitialize@"ExamplesDebugHeatConduction". SMSStandardModule@"Tangent and residual"D. 8i. 1. 0<D. . 4. "k2 -conductivity parameter". SMSEndDo@D. i. 8j. 81. 8< D. "SMSDOFGlobal" Ø 1. . .1. "at". "X". wgp ¢ SMSReal@es$$@"IntPoints". 8. iD. jD. SMSInverse@JgD<D. Rg £ Jgd wgp Hk Ddf. SMSNoDimensions<D. iD.1<. "AddIn" Ø TrueD. SMSExport@SMSResidualSign Rg. k1. SMSExport@Kg. "Mode" -> "Debug"D. SMSInteger@es$$@"id".fI.1. k2. "SMSSymmetricTangent" Ø False. h. "Dependency" -> 8X. X. jDD. XI ¢ Table@SMSReal@nd$$@i. IgDD. 8i. 1<. SMSDo@ Df £ [email protected] l QL. 1. "Dependency" -> 8X. . 1. X. X ¢ SMSFreeze@NI. f £ NI. Length@SMSGroupDataNamesD<DD. "NoIntPoints"DDD. 1. 8<D. df £ SMSD@f. X. X = 8x.1. SMSNoNodes<DD. 1. Xn = 88. 1<<. SMSWrite@D. 8i. SMSDo@Ig. SMSSetBreak@"k"D.24 AceFEM Finite Element Environment Here the code for the steady state heat conduction problem (see Standard FE Procedure ) is generated in "Debug" mode. . 81. Jgd £ Det@JgD. . 1D.1. "Q -heat source"<. X.1.expressions Generate source code : Events: 6 SMSDB-0 @3D Final formating . 0.1<. p$$@iD. "SMSGroupDataNames" -> 8"k0 -conductivity parameter". Ddf £ SMSD@df. 8i. 8< D.global Consistency check . The break point (see SMSSetBreak ) with the identification "k" is inserted. . time=0 time=1 @2D @2D @3D variable= 0 ª 8< variable= 100 ª 8< Consistency check . 2TL H1 + z XnPi. .XID. l ¢ SMSReal@rdata$$@"Multiplier"DD. 8. z< ¢ Table@SMSReal@es$$@"IntPoints".1<. SMSInverse@JgD<D. fI. 3TL. 0. [email protected]. "Environment" -> "AceFEM". SMSTemplate@"SMSTopology" Ø "H1". NI £ Table@1 ê 8 H1 + x XnPi. 81. "AddIn" Ø TrueD. 8k0. Jg £ SMSD@X. IgDD. 81.1. . 80.0. 0<. 1<<< <D. 1 -> 0<D. 80.0].0.5.-1] or none by the command SMTIData["DebugElement".0. << AceFEM`. The program can be stopped also when there are no user defined break points by activating the automatically generated break point at the beginning of the chosen module. [email protected]. "H1". "k1 *" -> . 80.5.0. 80.0.0]. [email protected]. SMTAddEssentialBoundary@ 8"X" ã . "k2 *" -> . . 888. See also SMSLoadSession. 1<. 8"k0 *" -> 1.0.5 »» "Y" ã .5. 88.5.5. 0<<<. . The data and the definitions associalted with the derivation of the element are reloaded from the automatically generated file DebugHeatConduction. . 0. 5<.0. "ExamplesDebugHeatConduction". .AceFEM Finite Element Environment 25 File: ExamplesDebugHeatConduction.<D. 88.Formulae No. SMTAddDomain@"cube". 0D.0.5. SMTNextStep@0. The scope of the break point can be limited to one element by the command SMTIData["DebugElement".1.5. "Q *" -> 1. SMTIData@"DebugElement".Leafs SKR 190 4099 The SMTMesh function generates nodes and elements for a cube discretized by the 10×10×10 mesh. 0. 0<.5. &. . The program stops for each integration point where the program structure together with all the basic variables of the problem and the current values of the variables are presented.5.5.5.5 »» "Y" ã 0.c Size: 20 382 Methods No. 85.5.0. 1D. 0. all elements by the command SMTIData["DebugElement".5. 5. SMTMesh@"cube".dbg.5.5.elementnumber]. SMTInputData@"LoadSession" -> "ExamplesDebugHeatConduction"D.. 1<. 0. Default value is SMTIData["DebugElement".5 »» "Z" ã 0. 8 888. 0<<.5. 1<<. Here the element 512 is specified as the element for which the break point is activated. The break point stops the execution of the program accordingly to the value of the SMTIData["DebugElement"] variable.5 »» "X" ã 0. SMTNewtonIteration@D. If@ Ig ã 6.D &D.12. . SMSActivateBreak@"k". 8i. Here the value of the conductivity k in the 6-th integration point of the 512-th element is traced during the Newton-Raphson iterative procedure. While@SMTConvergence@10 ^ .26 AceFEM Finite Element Environment Debugger palette Display The break points can be used also to trace the values of arbitrary variables during the analysis. Do@ [email protected]. 4<D . allk = 8allk. 500D. allk = 8<. 15D. k<. 1. 4 1.2 5 10 15 20 25 The sparsity structure of the resulting tangent matrix can be graphically displayed by the ArrayPlot function. PlotRange -> AllD 2.2 2.0 1.6 1. MatrixPlot@SMTData@"TangentMatrix"DD 1 1 20 40 60 80 1 20 20 40 40 60 60 80 1 20 40 60 80 80 Code Profiling .4 2.AceFEM Finite Element Environment 27 ListLinePlot@allk êê Flatten.8 1. "SMSDefaultData" -> 81. Rg £ Jgd wgp Hk Ddf. fI. 3<D.df l QL. 1. IgDD. 1. 1.Df . "at". "SMSGroupDataNames" -> 8"k0 -conductivity parameter".1<. "k2 -conductivity parameter". . SMSInitialize@"ExamplesProfileHeatConduction".fI. 0<D. 8i. Length@SMSGroupDataNamesD<DD. iD. df £ SMSD@f. Xn = 88. 2TL H1 + z XnPi. 8j. 8.1. Ddf £ SMSD@df. . SMSDo@ Kg £ SMSD@Rg. z< ¢ Table@SMSReal@es$$@"IntPoints".1<. 1. SMSNoNodes<. 1. SMSDo@ Df £ SMSD@f. However.1. 8i. 1<. k £ k0 + k1 f + k2 f2 . SMSNoDimensions<D. X. Two additional user defined environment variables are defined where the results of the code profiling will be stored. SMSExport@Kg. Jg £ [email protected]<. 1D. 1TL H1 + h XnPi. SMSInverse@JgD<D.The SMTSimulationReport produce report identifying the percentage of time spent in specific tasks. 8< D. time £ SMSTime@D. 1. 4. 1. SMSDo@Ig. Q< ¢ SMSReal@Table@es$$@"Data". 8< D.1. k2. 81. jD. h. 81. 0. 0. 1<. 3TL. IgDD. fI ¢ SMSReal@Table@nd$$@i. XD. by default you only see performance information at the global level rather than at the specific element level. l ¢ SMSReal@rdata$$@"Multiplier"DD. 8j.1. 8k0. 81. X ¢ SMSFreeze@NI. p$$@iD. "Environment" -> "AceFEM"D. Here the code for the steady state heat conduction problem (see Standard FE Procedure ) is generated. SMSExport@SMSResidualSign Rg. . X.1. "AddIn" Ø TrueD. 1<. The real type environment variable "EvaluationTime" will store the total time spent for the evaluation of the element tangent matrix and residual during the analysis. "Dependency" -> 8X. "Q -heat source"<.XID. . "NoIntPoints"DDD. fI. "SMSRDataNames" Ø 8"EvaluationTime"< . NI £ Table@1 ê 8 H1 + x XnPi.1. "SMSSymmetricTangent" Ø False . SMSStandardModule@"Tangent and residual"D. . i. .1<. "X". X. s$$@i. SMSEndDo@D. jD. 8i. 8i. . X. "AddIn" Ø TrueD. The integer type environment variable "NoEvaluations" will count the number of evaluations. 8i. . . . SMSNoNodes<DD.1. X = 8x. SMSInteger@es$$@"id". "SMSDOFGlobal" Ø 1 . Mark the end time of the evaluation and add the difference to the user defined real type environment variable "EvaluationTime". 1<<. 81. Jgd £ Det@JgD. << AceGen`. 8i. 8. "SMSIDataNames" Ø 8"NoEvaluations"< . "Dependency" -> 8X.28 AceFEM Finite Element Environment Code Profiling Code profiling is typically used to understand exactly where an application is spending its execution time. 8<D. SMSInverse@JgD<D. k1. SMSTemplate@"SMSTopology" Ø "H1". Mark the starting time of the evaluation. f £ NI. iD. For this additional user defined environment variables has to be defined. Increase also the value of the integer type environment variable "NoEvaluations". "k1 -conductivity parameter". 1.1. wgp ¢ SMSReal@es$$@"IntPoints". jDD. 8. . XI ¢ Table@SMSReal@nd$$@i. 40625 µ 10-6 2.0.013 70. . File: ExamplesProfileHeatConduction. Increase also the value of the integer type environment variable "NoEvaluations".0.718 25.5. 4 4.81786 0. 20.0. 888. of elements No.time. . 10D. [email protected] 0. of iterations Average iterationsêstep Total time HsL Total linear solver time HsL Total linear solver time H%L Total assembly time HsL Total assembly time H%L Average timeêiteration HsL Average linear solver time HsL Average K and R time HsL Total Mathematica time HsL Total Mathematica time H%L USER-IData Total NoEvaluations Average NoEvaluationsêelement USER-RData Total EvaluationTime HsL Total EvaluationTime H%L 9261 8000 7220 2603 8ê8 29 517 1 0 100. No.1795 3.0.5. idata$$@"NoEvaluations"DD.. 1<. [email protected] µ 10-6 Implementation Notes for Contact Elements . While@SMTConvergence@10 ^ .232999 8.0. [email protected] »» "Z" ã 0.71375 0. "ExamplesProfileHeatConduction". 88. SMSWrite@D. 0. SMTMesh@"cube". SMSExport@SMSInteger@idata$$@"NoEvaluations"DD + 1. of nodes No.5.5. SMTAddDomain@"cube". 0<<<. 80. "k2 *" -> .Leafs SKR 169 2583 Here is presented an input for the analysis and the results of code profiling for a cube discretized by the 20×20×20 mesh. 20<. 1<<< <D.5.5. &.Formulae No.5. SMSExport@SMSTime@D .855 0.5. 0<.5 »» "Y" ã 0. 88. 80. .5. 8"k0 *" -> 1. << AceFEM`.5.AceFEM Finite Element Environment 29 Mark the end time of the evaluation and add the difference to the user defined real type environment variable "EvaluationTime".5 »» "Y" ã .0.D. 80. SMTSimulationReport@8"NoEvaluations"<. 0. 1<<. 1D. "H1". of steps No. "k1 *" -> .1611 Average EvaluationTimeêelement HsL 7. 80. 2. "AddIn" Ø TrueD.0. 0<.5 »» "X" ã 0.0. 1<. SMTAddEssentialBoundary@ "X" ã .1. 1 -> 0D.5079 31 986 0. SMTInputData@D. rdata$$@"EvaluationTime"D. 820.<D. 0<<. of steps back Step efficiency H%L Total no. . 0. 8 888.c Size: 10 687 Methods No. 8"EvaluationTime"<D.5.5. 0.0.5.5. of equations Data memory HKBytesL Number of threads usedêmax Solver memory HKBytesL No.5. "Q *" -> 1.109 3.999563 0.0.5.5. one 3 D quad Contact types supported by the system It is possible to extend each contact type (except CTNULL) to attach also neighboring nodes.D slave part contact types " CTD2N1 " .. You do this appending "DN<i>" string to the contact type. NOTE: the number of neighboring nodes may vary during analysis.information.SMSStandardModule["Nodal information"] describing the actual and previous positions of all integration points (slave nodes) SMSTemplate@ . We use the special kind of elements in AceGen (a contact elements) to formulate the contact laws..Warszawa. while the number of slots in element is strictly defined by "DN<i>" flag.one 3 D quad master part contact types "CTNULL" . where <i> is a number of dummy slots prepared for each node's neighborhood. Such an element must provide additional information required for global search routine purposes: .one 2 D line " CTD3V1 " . There is only one exception to this procedure: the last slot is always reserved for the last found neighboring node.one 2 D node " CTD2L1 " .one 3 D node " CTD3P1 " . the element code would be more complicated because of if/else statements. The contact support in AceGen is based on a particular scheme."ContactElement" string put into SMSCharSwitch array . If we put dummy node instead of the last found. In such a situation the slots are filled with a natural order until it is possible. The reason is that the common use of neighboring nodes is to calculate the normal vectors. The basic part of the scheme is an element.one 3 D triangle " CTD3S1 " . The question is: what the system puts into unused dummy slots. NOTE: from the same reasons as above. "SMSCharSwitch"->8slave part contact type. there might be the situation where there are more neighboring nodes found than the number of slots in contact element. The answer is: the most recent neighbor found for given node.one 3 D triangle " CTD3S1 " .one 3 D node HvertexL " CTD3P1 " ..one 2 D node " CTD2L1 " . which will be presented below. that the element should be considered as contact element -.one 2 D line " CTD3V1 " ... Thus you have to define additional (i*NumberOfSlaveNodes) slots if you extend the slave part or (i*NomberOfMasterNodes*NumberOfIntegrationPoints) slots in case of extending master part.contact type for slave and master part separately (see table below) put into SMSCharSwitch array in SMSTemplate procedure . We make a distinction there in the contact elements for slave and master part.."ContactElement"<. The master part is a group of special kind of nodes (Node Specification Data) which are considered as empty slots where another nodes are placed during the evaluation (due to a global search routine). master part contact type.Poland.no nodes " CTD2N1 " . The slave part is defined directly as the system covers the bodies surfaces with contact elements. .30 AceFEM Finite Element Environment Implementation Notes for Contact Elements Contact section has been contributed by Jakub Lengiewicz. .Institute of Fundamental Technological Research. " CTD2 L1 "< 8" CTD2 L1 ".) 8type of slave." CT NULL "< 8" CT D2 N1 ".AceFEM Finite Element Environment 31 Nodes position in the contact element (general grouping scheme. type of master< Detailed numbering scheme 8" CTD2 N1 "." CTD2 L1 "< . " CTD2 L1DN1 "< 8" CTD3 V1 ". " CTD2 N1DN1 "< 8" CTD2 L1DN1 ".32 AceFEM Finite Element Environment 8" CTD2 L1DN1 "." CTD3 P1 "< . there are several bodies which may come into the contact. We setup them as (see Real Type Environment Data) : . In particular contact system. We need to apply some extra parameters to SMTMesh procedure to specify the body name to which the mesh belongs and the list of domains (contact domains in our case) which will be used to cover the surface of the body. By default ("ContactPairs"->Automatic) the lexicographical order of BodyID's is used by the global search routine (in master-slave approach): for each surface node taken from particular body it searches for the closest segment on the surface of bodies which ID's are "greater".) After definition of the contact element we may proceed with the analysis.= specifies the pairs slave-body/master -body for which the possible contact condition is checked.AceFEM Finite Element Environment 33 8" CTD3 V1DN3 ". After SMTAnalysis one may need to provide some additional coefficients for global search routine purpose. 9slaveBodyID2 . Each of them has its own boundary (boundaries) where the contact elements must be placed. All possible combinations of bodies are checked.. masterBodyID1 =.. The SMTAnalysis option ContactPairs -> 99slaveBodyID1 ." CTD3 S1 "< 8" CTD3 V1DN4 ". masterBodyID2 =. . So slave bodies have "lower" ID's than master bodies. " CTD3 S1DN2 "< Position of nodes in the contact element (detailed numbering scheme for choosen examples. eventually.001 SMTRData@ "XYZRange"D Additional environmental data for contact search purposes. update the information in elements' dummy slots. calling the SMTNewtonIteration[] procedure. the global search routine is executed to search for contact pairs and.34 AceFEM Finite Element Environment Default form SMTRData@ "ContactSearchTolerance". NOTE: it is important to cover with contact elements also the body. Such an elements are needed to calculate the actual positions of nodes (integration points) on the surface of this body. It is enough to have only "Nodal information" subroutine defined there. Default value 0. which is "master" to all the others. In this case we may set the master part contact type as "CTNULL". toleranceD Description contact search tolerance for global search routine. Description prints out the actual contact state Hnode->segment mappingL manually runs the global contact search routine . Then. Function name SMTContactData@D SMTContactSearch@D Contact related functions. n< description full multivariate series expansion multivariate series expansion in a form of Pascal triangle multivariate series expansion with the secondary terms up to the nth power Possible values for the "SeriesMethod" option of the SMTInputData command. Three types of reduces expansion ("Lagrange". and "Serendipity") are available as depicted in a table below. . The symbol a is used for the foam thickness and the symbol b for the amplitude of the waves . the expansion point and the order of the power series expansion is specified by the SMTInputData options "SeriesData" and "SeriesMethod" (see SMTInputData). The "Serendipity" type multivariate series expansion with the secondary terms up to the second power is used. expansion "Lagrange" "Pascal" 8"Serendipity". ‡ Example: Bending of the sinusoidal double skin cladding Skin Foam The goal of the presented example is to find a semi-analytical linear elastic solution for the bending of the sinusoidal double skin cladding. In the case of the full multivariate power series expansion the number of terms grows exponentially. "Pascal".AceFEM Finite Element Environment 35 Semi-analytical solutions Semi-analytical solution of the finite element problem is a solution of the problem where the results are expressed as a power series expansion with respect to one or several parameters of the problem. The number of terms can be reduced by the reduced expansion. The expansion parameters. The solution employes the fifth order power series expansion with respect to thickness of the foam and the amplitude of the waves. nx = 60. Tfoam = Series@a. Clear@a. "n *" -> 0.2. L = 400.Tfoam ê 2 . 8x. + aL4 . "SeriesMethod" Ø 8"Serendipity". T0foam. hwave ê 2 Sin@nwave p x ê LD .2.0.10.0000266261 H.00835702 . 8x. 2<D.0000118708 H.40667 µ 10-6 + 0. + bL4 + I9. + aL3 0.2. + aL3 6.9..0. L.2. SMTInputData@"NumericalModule" Ø "MDriver".0. "Q1".0. 8x. hwave ê 2 Sin@nwave p x ê LD . qz0 = b 2. T0foam. SMTMesh@"Steel". 8x. Table@ 8x.0. 8nx. 2 -> 0.0. hwave ê 2 Sin@nwave p x ê LD . 8x.00983 µ 10-9 . hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2 <. 2<. 0. Tsteel = T0steel. 8Table@ 8x. + aL + 0.5.233877 H. + bL2 + I. + aL2 M H.2. + aL5 M H. dx<D<D. 2DDD . w = Normal@ SMTNodeData@"X" ã L ê 2 &. "Q1".2.632351 + 0. + aL2 M H.00448821 H.Tfoam ê 2 <. 8Table@ 8x.00342247 H. The solution employes the fifth order power series expansion with respect to thickness of the foam and the amplitude of the waves. 8b."Y"E <= dh &.. + aL2 0..000050776 H. L. 5<. The "Serendipity" type multivariate series expansion with the secondary terms up to the second power is used. SMTMesh@"Steel". + aL2 . dx<D.000314466 H. 8 "E *" -> 21 000. << AceFEM`.11087 µ 10-6 H.2. T0foam = L ê 200. + aL2 + 0. + aL2 M H.2. 8b. nwave = 10. Hhwave0 + T0foamLL.632351 . dh = 2 T0steel ê ny 0. "SeriesData" Ø 88a.36 The goal of the presented example is to find a semi-analytical linear elastic solution for the bending of the sinusoidal double skin cladding.2. 0. + bL5 wc = w ê.28775 µ 10-8 H. dx<D<D. bD.85323 µ 10-7 H. + aL + 1. 8x.2.2. SMTAddNaturalBoundaryA AbsA hwave ê 2 SinAnwave p "X" ë LE + Tfoam ê 2 + Tsteel . 8"E *" -> 500.12175 µ 10-7 . b = 100.4. 0.0000726406 H. + aL .2. The transformation to the normal form (Normal[i]) is necessary for the symbolic manipulations later. T0steel = 0. ny<.0012384 H. a -> T0foam ê. 0. [email protected] H.4 10-4 . dx<D.0.Tsteel <.10.2. + aL3 + 0. + bL3 + I. hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2 + Tsteel <. dx<D<D. hwave = Series@b. "t *" -> b<D. "SEPSQ1DFLEQ1Hooke". "SEPSQ1DFLEQ1Hooke". L.00435552 H. "Q1". SMTNewtonIteration@D. SMTAddDomain@"Foam".01097 µ 10-7 H.64683 µ 10-6 H. 8nx. hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2< .0. + aL .2. The symbol a is used for the foam thickness and the symbol b for the amplitude of the waves .5. SMTAddEssentialBoundary@H"X" == 0 »» "X" == LL &. + aL5 + I0. + aL4 + 0. 2<.2. Table@8x. 1 -> 0. + bL + I0.2.2. L.2. SMTAddDomain@"Steel". "at"D@@1.2. "t *" -> b<D. b -> hwave0 .Tfoam ê 2< .4. 5<D. 8 Table@8x. hwave0 = 10.48. + aL5 M H.10. dx<D.000352781 . qz = qz0.2. hwave0.000152023 H. "n *" -> 0. hwave0. 8a. SMTAnalysis@D. 2 -> .3.D. 0.000207154 H. AceFEM Finite Element Environment Here is the deflection in the middle of the beam retrieved from the data based and transformed into normal form. L.00977376 H. 5<<. 1D. + aL4 . 5<D. + aL . ny = 6.4.10114 µ 10-8 H.2.000126855 H. + aL + 7. 0.10. SMTMesh@"Foam". Table@ 8x. dx = L ê H10.qz L ê nxE.2.10. 8nx.0. L. SMTShowMesh@"DeformedMesh" -> True. Show@SMTShowMesh@"BoundaryConditions" -> True. b -> 3 hwave0<DD User Defined Tasks .AceFEM Finite Element Environment 37 Plot3D@w. "ShowFor" -> 8a -> 0. "ShowFor" -> 8a -> 0. b -> 0<D. 8a. "ShowFor" -> 8a -> 3 T0foam. 8b.1 T0foam. b -> 3 hwave0<D. 0.1 T0foam. 3 hwave0<D The "ShowFor" option of the SMTShowMesh command can be used to depict mesh and results for arbitrary values of parameters. SMTShowMesh@"DeformedMesh" -> True. "Scale" Ø 100. 2 T0foam<. "ShowFor" -> 8a -> 3 T0foam. "Scale" -> 100.1 T0foam. 0 . b -> 0<DD Show@SMTShowMesh@"BoundaryConditions" -> True. y. The type of the task is defined at the code generation phase (see Standard user subroutines) and cannot be changed later. at any point of the analysis the user defined tasks can be executed by the SMTTask command. If the number of IntegerOutput or RealOutput values is 1 then a scalar is returned rather than a vector. solution of the resulting system of linear equations and postprocessing of the results. SMTTask@taskIDD execute task that corresponds to the task identification taskID option "IntegerInput"-> 8i1.r2. The process of defining and executing the user defined tasks is composed of: Ê definition of the standard user subroutine "Tasks" as a part of element definition with AceGen (see also Standard user subroutines).i2. RealOutput. vector of real values The length of the vector is specified by the TasksData$$@3D constant in the user subroutine "Tasks". the user subroutine "Tasks" is called only for the selected elements the user subroutine "Tasks" is called only for the patch of elements that surrounds the given spatial point and the results are then extrapolated into the given point H only valid for the task types 2 and 3. Ê Ê Ê generation of the element source file. . The complete list of the possible output parameters is {IntegerOutput.…< "Elements"-> elementselector "Point"->8x.z< 8< All False Options for the SMTTask function. Additionally to the standard tasks. MatrixGlobal}.…< description vector of integer values The length of the vector is specified by the TasksData$$@2D constant in the user subroutine "Tasks" Isee Standard user subroutinesM. The user defined tasks can be used to perform various tasks that requires the assembly of the results over a complete finite element mesh or over a part of the mesh. The return value of the SMSTask command depends on the type of the task as well as on the number of output parameters. see also L default value 8< "RealInput"-> 8r1. user can also define and execute user defined tasks.38 AceFEM Finite Element Environment User Defined Tasks The standard task performed by the finite element environment are evaluation of the global residual and tangent matrix. definition of the AceFEM input data. however the output parameters that are not actually used are not returned as the results of the SMSTasks command. VectorGlobal. the resulting continuous field is smoothed and evaluated for all nodes of the mesh and the value of the field for all nodes is then returned as the result of the task. The second task calculates the distortion in a integration points of the element and is a "type 3" task.MatrixGlobal< Return values accordingly to the type of the task. resulting integer and real output vectors are summarized and returned as the results of the task see above see above the user subroutine is called for all elements and assembled global vector is returned together with the integer and real output vectors the user subroutine is called for all elements and assembled global matrix is returned together with the integer and real output vectors the user subroutine is called for all elements and assembled global vector and global matrix are returned together with the integer and real output vectors return values 8IntegerOutput. . The first task returns a real type scalar value and is. the resulting continuous field is the extrapolated to the given spatial point and the value of the field in the given point is then returned as the result of the task.h} are the reference coordinates of the element.MatrixGlobal< 6 8IntegerOutput.RealOutput.RealOutput. If the spatial point is not given then the user subroutine is called for all elements.x E-pê2 pê2 where {x.RealOutput< 2 3 4 continuous field evaluated in all nodes or in a given spatial point continuous field evaluated in all nodes or in a given spatial point 8IntegerOutput.h E-ArcTangAr. accordingly to the definitions defined in User Defined Tasks.AceFEM Finite Element Environment 39 task type 1 task description the user subroutine is called for all or selected elements. The actual execution of the tasks type 2 and 3 depends on the value of the "Point" option. b) Calculate the mesh distortion in an arbitrary point of the mesh. ‡ Example: Evaluating Mass and mesh distortion of arbitrary quadrilateral 2D mesh Generation of the element source code Create an 2D quadrilateral element that would perform two tasks: a) Calculate the mass m = ŸA r „ A where A is a complete mesh or a part of the mesh and r is a density. Mesh distortion is defined by d= ArcTangAr. VectorGlobal.VectorGlobal< 5 8IntegerOutput. In the case that spatial point is specified then the user subroutine is called only for the patch of the elements that surrounds the given spatial point.RealOutput. "type 1" task. jDD. tz< ¢ SMSReal@Table@es$$@"Data". dist £ SMSAbs@HArcTan üü rhL . SMSStandardModule@"Tasks"D.hL. NI £ 1 ê 4 8H1 . SMSNoDimensions<D.xL H1 . 0. "X".Formulae No. XI ¢ Table@SMSReal@nd$$@i. hD. .40 AceFEM Finite Element Environment << "AceGen`". task £ SMSInteger@Task$$D. iDD. RealOutput$$@IgDD. SMSExport@dist. rh £ [email protected] ê 2LD ê Hp ê 2L. H1 . 8Xn. "X". 0. 8Ig. D.Leafs Tasks 31 350 Sinusoidal double skin cladding Find the mass and mesh distortion of the sinusoidal double skin cladding.xL H1 + hL<. "SMSGroupDataNames" -> 8"r -density". SMSSwitch@task . SMSExport@83. "AddIn" Ø TrueD. SMSIf@task < 0 . SMSTemplate@"SMSTopology" Ø "Q1". "NoIntPoints"DD<. 1. 0. 2<D. iD. SMSInteger@es$$@"id". 2. . SMSExport@Jgd tz r. 0. 1<. Jgd £ Det@JgD. "MeshDistortion"<.hL. XD. SMSExport@81. . D SMSWrite@D. 8j. IgDD. 1<D. 8i. SMSNoNodes<. SMSInitialize@"ExamplesTasks2D". File: ExamplesTasks2D. 0. xD.1. TasksData$$D. Yn< ¢ Table@SMSReal@nd$$@j. "t -thickness"<. 2<. 8j. 0.HArcTan üü rxL . H1 + xL H1 . H1 + xL H1 + hL. rx £ SMSD@X. "SMSDefaultData" -> 81. . "SMSCharSwitch" Ø 8"Mass". i. X ¢ SMSFreeze@NI. "NoIntPoints"DD< D. TasksData$$D. RealOutput$$@1D. 8i. 8i. D. Length@SMSGroupDataNamesD<DD. SMSDo@ X = 8x. SMSSwitch@task . .XID. SMSNoNodes<D. "Environment" -> "AceFEM"D.c Size: 5205 Methods No. Jg £ SMSD@X. 1. SMSInteger@es$$@"id".2. . . h< ¢ Table@SMSReal@es$$@"IntPoints". 8r. 8i. 0. 8x. Tfoam = T0foam. 1<.Tfoam ê 2< . T0foam = 5. SMTTask@"Mass". SMTMesh@"Foam". dx<D. nwave = 2. 8x. SMTInputData@D. dx<D. 8Table@ 8x. extrapolated to the nodes and depicted by the SMTShowMesh command.Tfoam ê 2 . "Q1". Hhwave0 + T0foamLL. SMTMesh@"Steel".Tfoam ê 2 <. dx<D<D. 0. SMTMesh@"Steel". 8nx. ny = 6. "ExamplesTasks2D". "Elements" -> "Steel"D 125. 8x.5. 8x. b = 100. 8x. 0. 9"r *" -> 7830 10-6 . 8nx. 0. hwave ê 2 Sin@nwave p x ê LD . dx<D. "t *" -> b=E. L = 80. "Q1". SMTTask@"Mass"D 125. 0. 0. Here the mass if the structure is evaluated. hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2 + Tsteel <. ny<. dx<D<D. Table@ 8x. "t *" -> b=E. 1<. "ExamplesTasks2D".AceFEM Finite Element Environment 41 << AceFEM`. "Elements" -> "Foam"D + SMTTask@"Mass". L. 8Table@ 8x. SMTAnalysis@D. dx<D<D. L. 8 Table@8x. T0steel = 1. hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2< . Tsteel = T0steel.. Table@8x. nx = 120.68 The mass if the structure can as well be calculated as a sum of the mass of the steel and the mass of the foam. . 8x. L. 8nx. Table@ 8x. hwave ê 2 Sin@nwave p x ê LD . hwave0 = 30.Tsteel <. dx = L ê H10. L. "Q1". 9"r *" -> 10 10-6 . hwave ê 2 Sin@nwave p x ê LD . SMTAddDomainA"Steel". dh = 2 T0steel ê ny 0.68 Here the distortion of the mesh is calculated for all integration points. hwave ê 2 Sin@nwave p x ê LD + Tfoam ê 2 <. L. hwave = hwave0. L. SMTAddDomainA"Foam". "Point" Ø 8L ê 2. .42 AceFEM Finite Element Environment SMTShowMesh@"Field" Ø SMTTask@"MeshDistortion"DD Here the distortion of the mesh is calculated for all integration points in the neigborhood of the given spatial position {L/2. Additionally.0 parallel computing capabilities (parallelization of the FE simulations) The user can control the type A and the type B parallelization by setting the SMTInputData option "Threads" (see SMTInputData ). The user interface (palettes. etc. The "Threads" option limits the number of processors used for the parallel execution on multi-core systems. The type C parallelization is then used to run several simulations in parallel on the nodes of the grid. ‡ Example: Parallelization of complete FE simulations First one must lunch the AceFEM on a master kernel. the assembly procedures and the linear solver of each simulation is also parallelized. SMTTask@"MeshDistortion". The Get["AceFEM`Remote`"] command loads the AceFEM package without the user interface on all available kernels.0} and extrapolated to the given spatial position.551796 Parallel AceFEM computations The AceFEM based finite element simulations can be accelerated by utilizing three types of parallelization: A) the procedure used to collect the contributions of individual finite elements to the global matrices and vectors is fully parallelized for the multi-core environments (parallelization of the assembly procedure) B) the solution to the system of linear equations performed by the PARDISO linear solver is parallelized for the multicore environments (parallelization of the linear solver) C) several finite elements simulations can be performed in parallel on multi-core or grid environments using Mathematica 7. Using all three types of parallelization on a single multi-core environments is obviously not an optimal parallelization strategy. ) is not available on remote kernels. menus. For more details how to select and set specific number of kernels see Parallel Computing . 0<D 0. The user controls the type C parallelization by launching a specified number of subkernels (see LaunchKernels). The type A and the type B parallelization can be suppressed by setting SMTInputData option "Threads" to 1 (SMTInputData["Threads" Ø 1]). The highest speedup is achieved when AceFEM is run on a grid of multi-core machines. Get@"AceFEM`"D. For more details how to select and set specific number of kernels see Parallel Computing . The ParallelTable commands executes the given AceFEM input data and the analysis procedure in parallel on all available kernels and generates a list of load/deflection curves. Get@"AceFEM`Remote`"D. $KernelIDD 81. 7. The "Threads" Ø 1 option for the SMTInputData command prevents the parallelization of the assembly procedure and parallelization of the linear solver. 3. . 4. kernels = ParallelEvaluate@ SetDirectory@$HomeDirectoryD.AceFEM Finite Element Environment 43 The user interface (palettes. 6. The Get["AceFEM`Remote`"] command loads the AceFEM package without the user interface on all available kernels. menus. 2. 5. etc. ) is not available on remote kernels. 8< Calculate the typical load/deflection curve of the 20×2×2 column subjected to the constant horizontal force H = 10 and variable vertical force V = -l 10 for the elastic modulus ranging from 10000 to 30000. "SEPEQ2DFHYQ2NeoHooke". step@@3DD .D. 1 -> 0.D. 8. SMTPostData@"u". . 2 -> 0<D. 5<. 8881. SMTNewtonIteration@D. [email protected]. All "dll" files are also included as a part of installation (at directory $BaseDirectory/Applications/AceFEM/Elements/). SMTAddNaturalBoundary@ "X" ã 0 && "Y" ã 20 &. SMTNextStep@1. While@ While@step = SMTConvergence@10 ^ . Abort@D. The result are the deflection curves of upper center node considering the changing elastic modulus. AxesLabel Ø 8"Load". SMTMesh@"W". AppendTo@lucurve. All the examples come with a full AceGen input used to generate AceFEM source codes and dll files. . 8emodule. SMTAddDomain@"W".10D. 2 -> . 1 -> 10D. 88. SMTAddEssentialBoundary@8 "Y" ã 0 &.uni-lj.1.0001. If@step@@1DD.si/symech/examples/ .44 AceFEM Finite Element Environment table = ParallelTable@ SMTInputData@"Threads" Ø 1D. SMTAddInitialBoundary@ "X" ã 0 && "Y" ã 20 &. "Q2". 8SMTData@"Multiplier"D. 10 000.8. 8"Adaptive". 0<. 20<<. 820. 40<D. 15. 81. More examples are available at www.1D. thus one does not have to create finite element codes with AceGen in order to run simulations that are part of the examples. SMTStatusReport@"Error: Dl < Dlmin"D. "t *" Ø 2<D. 20<D<D. 1. SMTStepBack@D. 500<D. 80. If@step@@4DD === "MinBound". If@Not@step@@1DDD. 0<<. "Tip deflection"<D Tip deflection 15 10 5 10 20 30 40 Load Summary of Examples The examples given in examples section of the manual are meant to illustrate the general symbolic approach to computational problems and the use of AceGen and AceFEM in the process. lucurve = 880. . They are NOT meant to represent the state of the art solution or formulation of particular numerical or physical problem. 8.1. 0<. 30 000. lucurve< . 8emodule. 2DD. stepP2TD D. [email protected]. 20<<<D. 8"E *" -> emodule. ListLinePlot@table@@All. Auxiliary Nodes Cubic triangle. 2D solids) Boundary conditions (2D solid) Standard 6-element benchmark test for distortion sensitivity (2D solids) Solution Convergence Test Postprocessing (3D heat conduction) Basic AceGen-AceFEM Examples Simple 2D Solid. Additional nodes Inflating the Tyre Advanced Examples Round-off Error Test Solid. advanced post-processing . Elimination of Local Unknowns Mixed 3D Solid FE. animations. smooth master segment element . line master segment element 2D indentation problem 2D slave node. All "dll" files are also included as a part of installation (at directory $BaseDirectory/Applications/AceFEM/Elements/). finite strain elasto-plastic element Cyclic tension test. More examples are available at www. Shape and Load Sensitivity Analysis of Multi-Domain Example Three Dimensional. Finite Strain Element Mixed 3D Solid FE.si/symech/examples/ . Finite Strain Element for Direct and Sensitivity Analysis Parameter. animations Solid. thus one does not have to create finite element codes with AceGen in order to run simulations that are part of the examples.AceFEM Finite Element Environment 45 All the examples come with a full AceGen input used to generate AceFEM source codes and dll files. Basic AceFEM Examples Standard FE Procedure Bending of the column (path following procedure. Finite Strain Element for Dynamic Analysis Elements that Call User External Subroutines Examples of Contact Formulations 3D contact analysis 2D slave node. Elasto-Plastic Element Axisymmetric.fgg.uni-lj. 46 AceFEM Finite Element Environment 2D snooker simulation 3D slave node. quadrilateral master segment and 2 neighboring nodes element 3D slave triangle and 2 neighboring nodes. triangle master segment element 3D slave node. quadrilateral master segment element 3D slave node. triangle master segment element 3D slave triangle. triangle master segment and 2 neighboring nodes element 3D contact analysis Implementation of Finite Elements in Alternative Numerical Environments ABAQUS FEAP ELFEN User defined environment interface . 1193-1210 STADLER. 2001.. SI. 2002. IBRAHIMBEGOVIC. Comput. struct. Petryk H. Gerhard A. Automation of the finite element method. 18. (2002). Jože. Peter. (2003). 3555-3581 BRANK. A C1-continuous formulation for 3D finite deformation frictional contact. KORELC. issue 33. Bialas M. Int. IBRAHIMBEGOVIC. technol. Automation of primal and sensitivity analysis of transient coupled problems. (2002). Numerical simulation of segmentation cracking in thermal barrier coatings by means of cohesive zone elements. 191. Nonlinear finite element methods. WRIGGERS.. 51. Enhanced Allman quadrilateral for finite drilling rotations. KORELC. Tomaž. Martin. EUROPEAN JOURNAL OF MECHANICS A-SOLIDS 23 (1): 107-126 JAN-FEB 2004 . vol. Vol. Ivan. Peter. V: WRIGGERS. Piezoelectric field around threading dislocation in GaN determined on the basis of high-resolution transmission electron microscopy image . Robert. Shape sensitivity analysis of large deformation frictional contact problems. 699-717 BRANK.. 2177-2203 KUNC. 80. Adnan. Smooth C1-interpolations for twodimensional frictional contact problems. Computers and Structures. (2003) Cn continuous modelling of smooth contact surfaces using NURBS and application to 2D problems. issue 1.(2001). Iss. WRIGGERS. 88:189-197 (2010). Turska E. numer. 27-42 STUPKIEWICZ.Dynamic and time-stepping schemes for elastic shells undergoing finite rotations. Direct computation of critical points based on Crout`s elimination and diagonal subset test function. j. Jože. Mater. (2002).. KORELC. 1363-1368. Adnan. issue 12.Low cycle elastoplastic properties of normalised and tempered 42CrMo4 steel. struct. ARCHIVES OF MECHANICS 57 (4): 277-297 2005 Stupkiewicz S. Lovre. issue 12. Comput. DUTKO. 44(5):631-649 (2009). Korelc J. KRSTULOVIC-OPARA. eng. Int. vol. 9/10. MATERIALS SCIENCE AND ENGINEERING A-STRUCTURAL MATERIALS PROPERTIES MICROSTRUCTURE AND PROCESSING 412 (1-2): 241-251 Sp. str. Jože. COMPUTER METHODS IN APPLIED MECHANICS AND ENGINEERING 195 (44-47): 6086-6109 2006 Maciejewski G.. Comput. j. 29. Peter. DEC 5 2005 Maciejewski G. KORELC. Computational mechanics. Jože. methods appl. Kret S. mech. HOLZAPFEL. Majerus P. (2002).. 81. KORELC. Korelc J. numer. methods eng.AceFEM Finite Element Environment 47 Bibliography Korelc J. n. PREBIL. Stanislaw. JOURNAL OF MICROSCOPY-OXFORD 223: 212-215 Part 3 SEP 2006 Wisniewski K. Herzog R. Lovre.. methods eng. vol. RODIC. vol. sci. 1469-1495 KRSTULOVIC-OPARA. Ruterana P. The effect of stacking fault energy on the formation of stress-induced internally faulted martensite plates. Comput. Jože. Elastic micro-strain energy at the austenite-twinned martensite interface. KORELC. RODIC. 483-508 (2008). Boštjan. KORELC. Tomaž. Boštjan. Mroz Z. Stupkiewicz S. Jože. Springer.. mech. Michael. Nonlinear shell problem formulation accounting for through-the-tickness stretching and its finite element implementation. vol. Jože. The standard built-in library of the elements is located at directory $BaseDirectory/Applications/AceFEM/Library/. The libraries can be selected and searched by the use of the finite element browser.. available postprocessing keywords.) benchmark tests.48 AceFEM Finite Element Environment Shared Finite Element Libraries AceShare The AceFEM environment comes with the built-in library is a part of the installation and contains the element dll files for the most basic and standard elements. The finite element browser can be used to locate the element. Abaqus. . See also: SMTSetLibrary ~ initializes the library SMTAddToLibrary ~ add new element to library SMTLibraryContents ~ prepare library for posting Unified Element Code Unified Element Code ~ the elements in the libraries are located through unique codes Accessing elements from shared libraries The SMTAnalysis command automatically locates and downloads finite elements from the built-in and on-line libraries. etc.) symbolic input used to generate element. get informations about material constants. links. home page file (HTML file with basic descriptions. source codes for other environments (FEAP. Additional elements can be accessed through the AceShare system.downloding finite elements from the on-line libraries .. AceFEM-MDriver. . and also to access element's home page with the links to benchmark tests and source codes. The required element dll file is located on a base on an Unified Element Code. The AceShare system is a file sharing mechanism built in AceFEM that allows: . paste the element code into problems input data.browsing the on-line FEM libraries .formation of the user defined library that can be posted on the internet to be used by other users of the AceFEM system Each on-line library can contain: fl fl fl fl fl element dll files.. The information about the available on-line libraries is automatically updated once per day and stored in directory $BaseDirectory/AceCommon/.. The number of finite elements included in on-line libraries is a growing daily. . thermal.) with full symbolic input for most of the elements. The standard AceFEM On-line library contains large number of finite elements (solid.g..si/consulting/). The library is defined by the unique code (e. 3D.fgg. The downloding dll files from the on-line libraries are also stored in the same directory $BaseDirectory/AceCommon/. 2D.uni-lj..AceFEM Finite Element Environment 49 Selecting and browsing the AceShare libraries. Please browse the available libraries to see if the finite element model for your specific problem is already available or order creation of specialized elements (www.. OL stands for standard AceFEM on-line library)... ˛Da˛ê˛Y˛=5.49627 µ 10-8 ê8. Ò2 Sin@Ò2 êê ND ë 20 + 4 Ò1 = &. . lêDl=338. "Mesh" Ø False. If@stepP4T === "MinBound".27759 µ 10-9 ê7.. 15.53098 µ 10-13 IterêTotal=7ê18 Status=0ê8Convergence< TêDT=3.34201 µ 10-13 ê8.49991 µ 10-13 IterêTotal=6ê30 Status=0ê8Convergence< Show@SMTShowMesh@"Show" Ø False.. SMTNextStep@1. If@stepP1T. PlotRange Ø AllD Unified Element Code . 40<EE. lêDl=100. SMTShowMesh@"DeformedMesh" Ø True. SMTStatusReport@D. SMTMeshA"A". SMTAddEssentialBoundary@"X" ã 1 &.01.36995 µ 10-10 ê9. "Q1". lêDl=500.<D. 880. SMTNewtonIteration@DD. stepP2TD D TêDT=1. ArrayA 9Ò2. 82. "Contour" Ø 20. 8.9184 ˛Da˛ê˛Y˛=6.59231 µ 10-13 IterêTotal=6ê24 Status=0ê8Convergence< TêDT=4.out"D. "Mesh" Ø False. SMTInputData@D.ê100. "BoundaryConditions" Ø TrueD. SMTAnalysis@"Output" -> "tmp. stepP3T . SMTShowMesh@"DeformedMesh" Ø True. "Field" Ø "Sxy".899 ˛Da˛ê˛Y˛=4. "OL:SEPSQ1ESHYQ1E4NeoHooke". 8"Adaptive". "Legend" Ø FalseD. If@[email protected]. 5<. 8"E *" -> 1000. Print@"Error: Dl < Dlmin"DD.183 ˛Da˛ê˛Y˛=3.88253 µ 10-13 IterêTotal=11ê11 Status=0ê8Convergence< TêDT=2. SMTAddDomain@"A". 2 -> 0D. 1 -> 0. "Show" -> "Window"DD. 0. lêDl=195. SMTAddNaturalBoundaryAAbsA"X" Sin@"X" êê ND ë 20 + 8 .ê1. 300.50 AceFEM Finite Element Environment Example: Accessing elements from shared libraries << AceFEM`."Y"E < 0. "Contour" Ø 20. 500<D .ê1. "Field" Ø "Sxy". .918ê95.7.ê1. "Show" Ø False. SMTStepBack@DD. While@ While@step = SMTConvergence@10 ^ . 2 -> 0D. 100D. SMTAddEssentialBoundary@"X" ã 40 &.49. "n *" -> . SMTNextStep@1. 1 -> 0. "t *" -> 1.ê161.817ê142.ê1.1 &. << AceFEM`. 8"D3". _. "TH"< Ø "Thermal" < D Create element . The element code can be further composed form several parts wit predefined meaning. If the library code is omitted then the first element with the given element_code is selected. "H1"< Ø "8 nodeed".uni-lj. 8"D3". 8"D3". "SE"< Ø "solid". of characters in keyword 2 2 2 2 2 arbitrary arbitrary arbitrary arbitrary Examples of keywords SE ª Mechanical problems PE ª 2 D solid plane strain problems Q1 ª 2 D Quadrilateral with 4 nodes DF ª Full integrated displacement based elements LE ã linear elastic solid Q1E4 IsoHooke Missess … Keywords for the standard on-line AceFEM library. For example the codes for the elements from the standard on-line AceFEM library (OL) consist of the following keywords: Description Physical problem Physical model Topology Variational formulation General model Acronym Sub-model Sub-sub-model … No. "Code" Ø "MY" .AceFEM Finite Element Environment 51 Unified Element Code The elements in the libraries are located through unique codes. The code is a string of the form: "library_code:element_code" .fgg. _. "Keywords" Ø 8 8"D3"< Ø "3d elements". For example the "OL:SEPEQ1HRLEPianSumHooke" code represents the well-known Pian-Sumihara element derived for isotropic Hook's material. Simple AceShare library Set up library SMTSetLibrary ~ initializes the library << AceGen`. "URL" Ø "http:êêwww.siêsymechêUserLibê" . SMTSetLibrary@"D:êUserLibê" . "Title" Ø "My library" . 1TL H1 + h XnPi. k2. 81.Df . 3TL. 1<. SMSExport@Kg. 8j. f £ NI. IgDD. SMSDo@ Kg £ SMSD@Rg. SMSDo@Ig. SMSNoDimensions<D. k1. 8i. . "SMSSymmetricTangent" Ø False.XID.Leafs SKR 178 2665 Add element to library SMTAddToLibrary ~ add new element to library SMTAddToLibrary@8"D3". . 1. Jgd £ Det@JgD. SMSTemplate@"SMSTopology" Ø "H1". "k2 -conductivity parameter". i. fI. 1. 8k0.uni-lj. 2 SMSDo@ Rg £ Jgd wgp SMSD@W. s$$@i. SMSInteger@es$$@"id". "AddIn" Ø TrueD. XI ¢ Table@SMSReal@nd$$@i. "k1 -conductivity parameter". . "Dependency" -> 8X. .1. fI ¢ SMSReal@Table@nd$$@i. jDD. 0. h. 81. SMSNoNodes<. jD. IgDD. 4. 1.c Size: 11 024 Methods No. X.1<. fI. Q< ¢ SMSReal@Table@es$$@"Data". 8i. 8i. "TH"<D Prepare library for posting SMTLibraryContents ~ prepare library for posting SMTLibraryContents@D Please send the URL to AceProducts@fgg. "H1". "AddIn" Ø TrueD. 8< D. 81. jD. Jg £ SMSD@X. 8i. . wgp ¢ SMSReal@es$$@"IntPoints".1. SMSStandardModule@"Tangent and residual"D. 1. 0. SMSExport@SMSResidualSign Rg.52 AceFEM Finite Element Environment Create element SMSInitialize@"D3H1TH". p$$@iD. 3<D. l ¢ SMSReal@rdata$$@"Multiplier"DD. SMSWrite@D. "SMSGroupDataNames" -> 8"k0 -conductivity parameter". "SMSDefaultData" -> 81. 1D.1. NI £ Table@1 ê 8 H1 + x XnPi. X.si to make third-party library available to all AceFEM users. "SMSDOFGlobal" Ø 1.fI. SMSInverse@JgD<D. 2TL H1 + z XnPi. "X". 1. 1<<. XD.1. . iD. "at". . 1 W £ k Df. 8j.1<. k ¢ k0 + k1 f + k2 f2 . Df £ SMSD@f. 8i.1. 81. "Environment" -> "AceFEM"D. "NoIntPoints"DDD. 1<.Formulae No. X ¢ [email protected] l Q.1.1<. X = 8x. 1. . SMSNoNodes<DD. SMSEndDo@D. 1<. 1. 1. . 0<D.1. z< ¢ Table@SMSReal@es$$@"IntPoints".1. 8. File: D3H1TH. Xn = 88. 8<D. Length@SMSGroupDataNamesD<DD.1<. "Q -heat source"<. i. "Constant" Ø kD. 8< D. . 8i. 8. . 8. "TH". Korelc". << AceFEM`. "TH"< Ø "Thermal". "H1"< Ø "8 nodeed".Formulae No. "Title"D.<<AceFEM`. "Close" -> True.uni-lj. 5 evaluatedL File: D3H1THLin.fgg. 3 evaluatedL SMTAddToLibrary@keywords . "URL" Ø "http:êêwww. "Source" -> SMSSessionName .Leafs SKR 194 2602 Include Tag : AceShareExample H5 cells found. "Nonlin"< Ø "nonlinear conductivity" < D. SMSRecreateNotebook@"File" Ø SMSSessionName.". . SMTSetLibrary@"D:êUserLibê" . "Title" Ø "My library" . _. "Head" Ø 8Cell@SMSSessionName. 8"D3". "DeleteOriginal" Ø True . Advanced AceShare library Set up library << AceGen`. _. "RemoveTag" Ø TrueD.AceFEM Finite Element Environment 53 Please send the URL to AceProducts@fgg. "TH". "Keywords" Ø 8 8"D3"< Ø "3d elements". "TH". 8"D3". _. keywords = 8"D3". SMSEvaluateCellsWithTag@"AceShareElement". 8"D3". material = keywords@@4DD. Create first element code = "D3H1THLin".uni-lj. "H1". "Input"D<D. Cell@"<<AceGen`. "Examples" -> SMSSessionName . "Lin"< Ø "constant conductivity".fgg. "http:êêwww.siê~êjkorelcê"< D.si to make third-party library available to all AceFEM users. 8"D3". "Author" Ø 8"J. SMSEvaluateCellsWithTag@"AceShareExample".uni-lj. "RemoveTag" Ø TrueD. "Lin"<. _.c Size: 11 021 Methods No. "CollectInputStart" Ø True. "SE"< Ø "Solid". "Documentation" -> SMSSessionName . Include Tag : AceShareElement H7 cells found. "Code" Ø "MY" . 8"D3".siêsymechêUserLibê" . material = keywords@@4DD.Leafs SKR 179 2668 Include Tag : AceShareExample H5 cells found.siê~êjkorelcê"< D. Korelc". "Q -heat source"<. 4D<D. 3 evaluatedL SMTAddToLibrary@keywords . "Close" -> True. "DeleteOriginal" Ø True .uni-lj. Include Tag : AceShareElement H7 cells found.fgg. "Author" Ø 8"J. . 5 evaluatedL File: D3H1THNonlin. 8k0. "H1". "Environment" Ø "AceFEM"D. Q< £ SMSReal@8es$$@"Data". H* SMSTagSwitch . es$$@"Data". "k2 -conductivity parameter". SMSRecreateNotebook@"File" Ø SMSSessionName.c Size: 11 040 Methods No. "Documentation" -> SMSSessionName . "RemoveTag" Ø TrueD. D. 1D. es$$@"Data". 2D. 1D. . 0<.only choosen option is included into recreated notebook*L SMSTagSwitch@material . "Source" -> SMSSessionName . SMSStandardModule@"Tangent and residual"D. Q< £ SMSReal@8es$$@"Data". Cell@"<<AceGen`. SMSGroupDataNames = 8"k0 -conductivity parameter".54 AceFEM Finite Element Environment Create second element code = "D3H1THNonlin".Formulae No. 2D<D. "Input"D<D. es$$@"Data". "Q -heat source"<. "Lin". "Nonlin"<. SMSEvaluateCellsWithTag@"AceShareExample". "k1 -conductivity parameter". "Examples" -> SMSSessionName . 8k0. "Title"D. SMSDefaultData = 81.". es$$@"Data". 0<. SMSGroupDataNames = 8"k0 -conductivity parameter k0". k2. 0. Prepare library for posting SMTLibraryContents@D AceGen input H* SMSTagEvaluate evaluated variable code is included into recreated notebook*L SMSInitialize@SMSTagEvaluate@codeD. "TH". "RemoveTag" Ø TrueD. "CollectInputStart" Ø True. SMSTemplate@"SMSTopology" Ø "H1". SMSEvaluateCellsWithTag@"AceShareElement". "SMSDOFGlobal" Ø 1. "SMSSymmetricTangent" Ø FalseD. SMSDefaultData = 81.<<AceFEM`. keywords = 8"D3". "http:êêwww. k1. "Nonlin". "Head" Ø 8Cell@SMSSessionName. 3D. 0. 1<. 8< D. 8.1. Jgd £ [email protected]. wgp ¢ SMSReal@es$$@"IntPoints".XID. SMSExport@Kg. 3<D. 8<D. jD. 1<.1<. 1 W £ k Df.c Size: 15 022 Methods No. SMSInteger@es$$@"id".1. [email protected]. X. "Lin". . 81. "NoIntPoints"DDD. SMSTagSwitchAmaterial . 8j.1<. z< ¢ Table@SMSReal@es$$@"IntPoints". E. k ¢ k0 + k1 f + k2 f2 . 8. "Dependency" -> 8X. 1. 1. NI £ Table@1 ê 8 H1 + x XnPi. 2TL H1 + z XnPi. . 4. X ¢ [email protected]. 1<. 81.Formulae No. k ¢ k0. 1. p$$@iD. fI. SMSNoDimensions<D. . f £ NI. i. 1. "Constant" Ø kD. h.1. fI. Jg £ SMSD@X. 1. . 8. 8j. SMSNoNodes<DD. . . . . X. 8i. i. jD. IgDD. 1. jDD. 1D. SMSNoNodes<. 8i. Df £ [email protected] Finite Element Environment 55 SMSDo@Ig. . fI ¢ SMSReal@Table@nd$$@i. 3TL. 1<. "at".Df . . . 8i. "AddIn" Ø TrueD. File: D3H1THNonlin. SMSDo@ Kg £ SMSD@Rg. 1. SMSExport@SMSResidualSign Rg.1. "Nonlin".1.Leafs SKR 217 4407 . "X". SMSEndDo@D. 81. 1<<. 2 SMSDo@ Rg £ Jgd wgp SMSD@W. 81. Xn = 88. X = 8x. [email protected]<. IgDD. 1TL H1 + h XnPi. l ¢ SMSReal@rdata$$@"Multiplier"DD. 8i. 8< D. "AddIn" Ø TrueD.f l Q.1. XD. 8i. 1. XI ¢ Table@SMSReal@nd$$@i. SMSInverse@JgD<D. SMTMesh@"cube". 8nn. 80. "Q *" -> Q<D. .1.5.003.5.5.5. . 0.0. 88. nn<. &.0.5 »» "Z" ã 0.5. .D.5.5.0. 10D. 0.8. "Q *" -> Q<D.0. "k1 *" -> 0. 0<<. 0. 8 888. 80.5. SMTNextStep@0. "H1". 8"k0 *" -> 0.0. 888. SMTAddEssentialBoundary@ 8"X" ã .5 »» "X" ã 0.02. nn = 5. .5. 88. .0.58. 8"k0 *" -> 0. 0<.5.0.5.5. 1<<. SMTAddDomain@"cube". SMSTagEvaluate@codeD. "Nonlin". nn. SMTAddDomain@"cube". 1<<< <D. 1<. "Lin". 1<. 1D. SMSTagSwitch@material .5.0. SMTShowMesh@"Field" Ø SMTPost@1DD Basic AceFEM Examples . [email protected]. 0<.5. SMTAnalysis@D. 0. 80.5 »» "Y" ã .5. D. Q = 50. [email protected] »» "Y" ã 0.56 AceFEM Finite Element Environment AceFEM example [email protected]. 0<<<. "k2 *" -> 0. While@step = SMTConvergence@10 ^ .5. 80. 1 -> 0<D. SMTAddEssentialBoundary@ "Y" ã 0 &. "n *" -> 0.10D. SMTAddInitialBoundary@ "X" ã 0 && "Y" ã 20 &. 2D solids) Calculate the typical load/deflection curve of the column subjected to the constant horizontal force H=10 and variable vertical force V=-l 10. SMTAddDomain@"W". 1 -> 10D. 1 -> 0. SMTMesh@"W". SMTAnalysis@D. 20<<<D. 5<. 2 -> 0D. 820. 2 -> .3<D.AceFEM Finite Element Environment 57 Basic AceFEM Examples Bending of the column (path following procedure. 8. "SEPSQ2DFHYQ2NeoHooke". SMTAddNaturalBoundary@ "X" ã 0 && "Y" ã 20 &. << AceFEM`.1. "Q2".1. 8"E *" -> 21 000. 8881. 0<. 20<<. . 88. 81. 0<. SMTInputData@D. animations. 8. "BoundaryConditions" Ø TrueD. 80. SMTPostData@8"u".D. 1. SMTShowMesh@"DeformedMesh" Ø True. SMTPostData@"u". If@step@@4DD === "MinBound". SMTNewtonIteration@D. SMTStatusReport@"Error: Dl < Dlmin"D. SMTStepBack@D. AppendTo@uscurve. While@ While@step = SMTConvergence@10 ^ .D. 8"Adaptive". "column"<. "Field" Ø "Syy".58 AceFEM Finite Element Environment SMTShowMesh@"BoundaryConditions" Ø TrueD lucurve = 880. uscurve = 880. AppendTo@lucurve. If@step@@1DD. 10<DD. "Show" Ø "Window" 8"Animation". . SMTNextStep@1. 80.D. D. 10<D. 0<<. 0<<. "Syy"<.8. If@Not@step@@1DDD. SMTNextStep@1. 15.1D. . stepP2TD D. 20<D<D.0001. 8SMTData@"Multiplier"D. step@@3DD . . PlotMarkers Ø AutomaticD ListLinePlotAuscurve. PlotMarkers Ø AutomaticE SMTMakeAnimation@"column"D . PlotRange Ø All. Filling Ø Axis. AxesLabel -> 8"l". PlotRange Ø All. AxesLabel -> 9"u". "syy "=.AceFEM Finite Element Environment 59 ListLinePlot@lucurve. Filling Ø Axis. "u"<. 60 AceFEM Finite Element Environment . 49. H<<D. 2 -> Line@8. 8L. 8L. 2 -> Line@8. 8L. q2 = 1. 8"E *" -> 1000.q3<DD. "t *" -> 1. 8L. SMTAddEssentialBoundary@Line@880. 880.q1<DD. H<<D. 0<. 8L ê 2. 0<. q1 = 2. 8L. H<. H<<D. 0<. SMTAddDomain@"A". "Q1". H = 20. "BI:SEPSQ1DFHYQ1NeoHooke". 80. ny = 10. 2 -> 0D. SMTAddNaturalBoundary@Line@880. H<<D. H<<<D. 0<<D. 10<. SMTAddNaturalBoundary@Line@88L ê 2. [email protected] Finite Element Environment 61 Boundary conditions (2D solid) ‡ Solution 1: based on line segment node selector and continuous loads << AceFEM`. H<. SMTMesh@"A". H<. q3 = 1. nx = 40. L = 100.<D. SMTAnalysis@D. 0<<. 840. 8880. 2 -> Line@8. "n *" -> .q2<DD. SMTAddEssentialBoundary@Line@880. SMTAddNaturalBoundary@Line@883 L ê 4. 1 -> 0D. H<.. . 93853 µ 10-13 ê2.181633 ˛Da˛ê˛Y˛=7.ê1.3351 µ 10-9 ê2. If@stepP4T === "MinBound". [email protected] AceFEM Finite Element Environment SMTNextStep@1. "Field" Ø "Sxy". "Mesh" Ø False.1ê0.ê1. "Mesh" Ø False. lêDl=0. "Legend" Ø FalseD<D . "Contour" Ø 20. SMTStepBack@DD. "Show" Ø False.ê1. lêDl=1. "Contour" Ø 20. lêDl=0. "Field" Ø "Sxy".75836 µ 10-12 IterêTotal=7ê24 Status=0ê8Convergence< Column@8SMTShowMesh@"Show" Ø False.66669 µ 10-12 IterêTotal=6ê11 Status=0ê8Convergence< TêDT=3.303957 ˛Da˛ê˛Y˛=4.2437 µ 10-13 ê2.89266 µ 10-12 IterêTotal=5ê5 Status=0ê8Convergence< TêDT=2. While@ While@step = SMTConvergence@10 ^ . stepP3T . If@Not@stepP1TD. SMTShowMesh@"DeformedMesh" Ø True. . stepP2TD D TêDT=1. If@stepP1T. 0. 8"Adaptive".2186 µ 10-9 ê2.ê0.78672 µ 10-12 IterêTotal=6ê17 Status=0ê8Convergence< TêDT=4.1D. lêDl=0.7. "BoundaryConditions" Ø TrueD. SMTNextStep@1. 0. Print@"Error: Dl < Dlmin"DD.414411 ˛Da˛ê˛Y˛=2.5. 8.ê1. SMTNewtonIteration@DD. 1<D . "Show" -> "Window"DD. SMTShowMesh@"DeformedMesh" Ø True. 15.01.281633ê0.585589ê0.1 ˛Da˛ê˛Y˛=2. "Mesh" Ø False. "Contour" Ø 20. lêDl=0. "Field" Ø "Sxy". L = 100. 2 -> 0D. ny = 10. SMTStatusReport@D. 1<D .<D. SMTAddEssentialBoundary@"Y" ã 0 && "X" <= L ê 2 &.49.q3 L ê nxD. q3 = 1. 8"Adaptive". 880.55997 µ 10-12 IterêTotal=7ê24 Status=0ê8Convergence< .46301 µ 10-12 IterêTotal=6ê11 Status=0ê8Convergence< TêDT=3. . 8. [email protected] L ê nxD. stepP3T .1 ˛Da˛ê˛Y˛=3.414411 ˛Da˛ê˛Y˛=2. "t *" -> 1.82764 µ 10-9 ê2. SMTNextStep@1. 2 -> . 10<. SMTAddNaturalBoundary@"Y" == H && "X" > 3 L ê 4 &.ê1. "Q1".ê1. 1 -> 0D.47179 µ 10-12 IterêTotal=5ê5 Status=0ê8Convergence< TêDT=2. "Show" -> "Window"DD. lêDl=0.01.30189 µ 10-8 ê2. H = 20. SMTAddNaturalBoundary@"Y" == H &.1ê0.ê0. H<<<D. SMTNextStep@1. If@stepP1T. 0.7. SMTAddDomain@"A". 8"E *" -> 1000. If@Not@stepP1TD. H<.68259 µ 10-12 IterêTotal=6ê17 Status=0ê8Convergence< TêDT=4. SMTStepBack@DD. 0<. 8880. SMTMesh@"A". q1 = 2. SMTAddNaturalBoundary@"Y" == H && "X" > L ê 2 &.AceFEM Finite Element Environment 63 Solution 2: based on general node selector and calculated nodal forces << AceFEM`.5. "n *" -> .q2 L ê nxD. 8L.38454 µ 10-12 ê2. Print@"Error: Dl < Dlmin"DD.1D. 0. 2 -> . SMTShowMesh@"DeformedMesh" Ø True. While@ While@step = SMTConvergence@10 ^ .585589ê0. nx = 40.281633ê0. 0<<..ê1.ê1. SMTNewtonIteration@DD. If@stepP4T === "MinBound". "OL:SEPSQ1ESHYQ1E4NeoHooke". SMTAddEssentialBoundary@"X" ã 0 &.181633 ˛Da˛ê˛Y˛=2. stepP2TD D TêDT=1. q2 = 1. 15. 2 -> . 840. lêDl=1. lêDl=0. 8L.39379 µ 10-12 ê2. [email protected] ˛Da˛ê˛Y˛=1. 1.9.0. 6. SMTAddMesh@"A" . 83. 9. 0< .2<. 82.0.2<. "Field" Ø "Sxy". .0.1. 4. .0. 12. 2 -> . 5. 88. 85. 7. 8<.0. 10. 810. "Contour" Ø 20. 82. 11. 0<. 13.5D. 10<. 0. 814. 83. 86.9.0. . 881.0.0. 11<. 3.64 AceFEM Finite Element Environment Column@8SMTShowMesh@"Show" Ø False. 85.0. 881.2<. 87. 5. 4.0. 2. SMTAddEssentialBoundary@"X" ã 0 &.0.1. . 0<< . SMTShowMesh@"DeformedMesh" Ø True. SMTInputData@D. "SEPSQ1DFLEQ1Hooke".1. 3. 9"E *" -> 11. 84. 812. 1. "t *" -> 0. "Show" Ø False. 0<. 811. 0< .1.9. 0<. SMTAddDomainA"A". . 14.2< . 0.2< . 3. 2. "n *" -> 0.2<. 2. 6.1=E. 4. 107 . 1 -> 0.1. 6. 86. 9<. . 89. 813. "Mesh" Ø False. 0. 13<< D. SMTAddNaturalBoundary@"X" ã 6 & .9. .0. 84. 12<. "Legend" Ø FalseD<D Standard 6-element benchmark test for distortion sensitivity (2D solids) << AceFEM`.2<. "BoundaryConditions" Ø TrueD.3.9. . 0<. 2 -> 0D. AceFEM Finite Element Environment 65 SMTAnalysis@D; SMTNextStep@1, 1D; While@SMTConvergence@10 ^ - 12, 10D, SMTNewtonIteration@DD; SMTNodeData@"X" ã 6 &, "at"D SMTShowMesh@"BoundaryConditions" -> True, "DeformedMesh" -> True, "Scale" -> 1000D 99- 5.77117 µ 10-6 , - 0.000264499=, 95.15829 µ 10-6 , - 0.000264364== Solution Convergence Test The domain of the problem is [-.0.5,0.5]×[-0.5,0.5]×[0,1] cube. On all sides, apart from the upper surface, the constant temperature f=0 is prescribed. The upper surface is isolated so that there is no heat flow over the boundary ( q=0). There exists a constant heat source Q=1 inside the cube. The thermal conductivity of the material is temperature dependent as follows: k = 1. + 0.1 f + 0.5 f2 . The task is to calculate the temperature distribution inside the cube. First the example with the mesh 10×10×10 is tested in order to assess convergence properties of the Newton-Raphson iterative procedure for large meshes. The procedure to generate heat-conduction element that is used in this example is explained in AceGen manual section Standard FE Procedure . 66 AceFEM Finite Element Environment In order to assess the convergence properties the problem is analyzed with the set of meshes from 2×2×2 to 20×20×20. The solution at the center of the cube (0.,0.,0.5) is observed. s = Table@ SMTInputData@D; SMTAddDomain@"cube", "ExamplesHeatConduction", 8"k0 *" -> 1., "k1 *" -> .1, "k2 *" -> .5, "Q *" -> 1.<D; SMTAddEssentialBoundary@ 8Ò1 ã - 0.5 »» Ò1 ã 0.5 »» Ò2 ã - 0.5 »» Ò2 ã 0.5 »» Ò3 ã 0. &, 1 -> 0<D; SMTMesh@"cube", "H1", 8i, i, i<, 8888- 0.5, - 0.5, 0<, 80.5, - 0.5, 0<<, 88- 0.5, 0.5, 0<, 80.5, 0.5, 0<<<, 888- 0.5, - 0.5, 1<, 80.5, - 0.5, 1<<, 88- 0.5, 0.5, 1<, 80.5, 0.5, 1<<<<D; SMTAnalysis@"Solver" Ø 5D; SMTNextStep@1, 1D; While@SMTConvergence@10 ^ - 12, 10D, SMTNewtonIteration@D;D; 8i, SMTPostData@"Temp*", 80, 0, 0.5<D< , 8i, 2, 20, 2<D 882, 0.0934011<, 84, 0.0697145<, 86, 0.0666232<, 88, 0.0656559<, 810, 0.0652253<, 812, 0.0649954<, 814, 0.064858<, 816, 0.0647693<, 818, 0.0647088<, 820, 0.0646656<< The figure shows rapid convergence of the solution in the centre of the cube with the mesh refinement. ListLinePlot@s, PlotMarkers -> AutomaticD Ê 0.076 0.074 0.072 0.070 Ê 0.068 Ê 5 Ê 10 Ê Ê Ê 15 Ê Ê 20 Ê AceFEM Finite Element Environment 67 More about the convergence properties of the element can be observed form the Log[characteristic mesh size]/Log[error] plot. The solution obtained with the 20×20×20 mesh is assumed to be a converged solution. For a finite element method it is characteristic that the dependence between the characteristic mesh size and the error in a logarithmic scale is linear. ListLinePlot@Map@Log@8 1 ê Ò@@1DD, Abs@s@@- 1, 2DD - Ò@@2DDD<D &, Drop@s, - 1DD, PlotMarkers -> AutomaticD Ê -4 -5 Ê Ê Ê Ê -6 -7 -8 Ê Ê Ê Ê -9 -2.0 -1.5 -1.0 Postprocessing (3D heat conduction) The domain of the problem is [-.0.5,0.5]×[-0.5,0.5]×[0,1] cube. On all sides, apart from the upper surface, the constant temperature f=0 is prescribed. The upper surface is isolated so that there is no heat flow over the boundary ( q=0). There exists a constant heat source Q=1 inside the cube. The thermal conductivity of the material is temperature dependent as follows: k = 1. + 0.1 f + 0.5 f2 . The task is to calculate the temperature distribution inside the cube. First the example with the mesh 10×10×10 is tested in order to assess convergence properties of the Newton-Raphson iterative procedure for large meshes. The procedure to generate heat-conduction element that is used in this example is explained in AceGen manual section Standard FE Procedure 68 AceFEM Finite Element Environment The SMTMesh function generates nodes and elements for a cube discretized by the 10×10×10 mesh. The mesh and the boundary conditions are also depicted. << AceFEM`; SMTInputData@D; SMTAddDomain@"cube", "ExamplesHeatConduction", 8"k0 *" -> 1., "k1 *" -> .1, "k2 *" -> .5, "Q *" -> 1.< D; SMTAddEssentialBoundary@ 8"X" ã - 0.5 »» "X" ã 0.5 »» "Y" ã - 0.5 »» "Y" ã 0.5 »» "Z" ã 0. &, 1 -> 0<D; SMTMesh@"cube", "H1", 810, 10, 10<, 8 888- 0.5, - 0.5, 0<, 80.5, - 0.5, 0<<, 88- 0.5, 0.5, 0<, 80.5, 0.5, 0<<<, 888- 0.5, - 0.5, 1<, 80.5, - 0.5, 1<<, 88- 0.5, 0.5, 1<, 80.5, 0.5, 1<<< <D; SMTAnalysis@D; SMTShowMesh@"BoundaryConditions" Ø True, "Mesh" Ø True, "Elements" Ø TrueD 1D. lêDl=1. SMTStatusReport@D. 0 AceFEM .12.225e-1 0. ˛Da˛ê˛Y˛= 2. "Contour" Ø TrueD TêDT=0. lêDl=1.9094 µ 10-19 IterêTotal=4ê4 Status=0ê8< 0.ê0.ê0.525e-1 0. [email protected] µ 10-6 IterêTotal=2ê2 Status=0ê8< TêDT=0. 0. 10D.AceFEM Finite Element Environment 69 Here the problem is analyzed and the contour plot of the temperature distribution is depicted.450e-1 0.ê1.ê1. SMTShowMesh@"Field" -> "Temperature".ê1. While@SMTConvergence@10 ^ . SMTNewtonIteration@D. ˛Da˛ê˛Y˛= 0. lêDl=1. "Mesh" Ø False.ê0.375e-1 0.D.7209e-1 Min.300e-1 0.01035 µ 10-9 ê9. lêDl=1.000961769 IterêTotal=1ê1 Status=0ê8< TêDT=0.95684 µ 10-18 ê6.ê0. ˛Da˛ê˛Y˛= 2.750e-2 Temperature Max.ê1. ˛Da˛ê˛Y˛= 0.150e-1 0.4527 µ 10-11 IterêTotal=3ê3 Status=0ê8< TêDT=0.039126ê0.000117723ê3. 564e-2 Temp* Max. 0 AceFEM SMTShowMesh@"Field" -> "Temp*".5300e-1 Min.70 AceFEM Finite Element Environment Various views on the results can be obtained by the "Zoom" option. 0. "Contour" Ø True.282e-1 0.225e-1 0.169e-1 0. SMTShowMesh@"Field" -> "Temp*". "Zoom" Ø H"X" ^ 2 + "Y" ^ 2 + "Z" ^ 2 § . "Mesh" Ø False.112e-1 0.3 && H"X" <= 0 »» "Y" ¥ 0L &L D 0.395e-1 0. "Zoom" Ø H"Z" <= 0.3 &L D .338e-1 0. . SMTPostData@"Temp*".02 0.5<.2 0.5. 8x.05 0.01<D. Table@8x. x.01<DD< êê TransposeD 0.AceFEM Finite Element Environment 71 Here the temperature distribution along the central diagonal of the cube.04 0.5. .4 -0. 0.4 . .06 0. ListLinePlot@[email protected] 0. . x + 0.0.03 0.5.5. 8x.01 -0. 0. the element should allow arbitrary large displacements and rotations.6D. 11D.72 AceFEM Finite Element Environment AceFEM is fully incorporated into Mathematica so that the various built-in Mathematica's functions can be used for the analysis of the results. ContourStyle Ø Opacity@0. global unknowns are displacements of the nodes. 1<D. ListContourPlot3D@ Transpose@Partition@Partition@SMTPost@"Temp*"D. Finite Strain Element Generate two-dimensional. isoparametric mapping from the reference to the actual frame. Contours Ø 3. Mesh -> FalseD Basic AceGen-AceFEM Examples Simple 2D Solid. The element has the following characteristics: fl fl fl fl fl fl quadrilateral topology. One should observe that Mathematica's built-in functions operate mostly on regular domains. while SMTShowMesh displays results for an arbitrary mesh. l 2 Tr@CD-3 . 83. 2. the problem is defined by the hyperelastic Neo-Hooke type strain energy potential. 11D. 4 node element. four node finite element for the analysis of the steady state problems in the mechanics of solids. Here the ListContourPlot3D is used to get surfaces with constant temperature. "SMSSymmetricTangent" Ø True. user subroutine for the post-processing that returns the Green-Lagrange strain tensor and the Cauchy stress tensor. u is displacements field. SMSTemplate@"SMSTopology" Ø "Q1". << "AceGen`". m are the first and the second Lame's material constants. "bX -force per unit mass X". fl W ext = -r0 u. "r0 -density".AceFEM Finite Element Environment 73 fl fl fl global unknowns are displacements of the nodes. "Environment" Ø "AceFEM"D. the element should allow arbitrary large displacements and rotations. the problem is defined by the hyperelastic Neo-Hooke type strain energy potential. "bY -force per unit mass Y"<. . The following user subroutines have to be generated: fl fl user subroutine for the direct implicit analysis. "n -poisson ratio". 0< D.Log@det FDM . W0 is the initial domain of the problem and l. F = I +ıu is deformation gradient. "SMSGroupDataNames" -> 8"E -elastic modulus". W= l 2 Hdet F . "SMSDefaultData" -> 821 000.b is potential of body forces where b is force per unit mass nad r0 density in initial configuration. 0.1L2 + mI Tr@CD-3 2 . 1. 1. where C = FT F is right Cauchy-Green tensor. 0. SMSInitialize@"ExamplesHypersolid2D". "t -thickness".3. SMSNoNodes<.r0 u. SMSExport@Kg. 3<D. Length@SMSGroupDataNamesD<DD. "X". . "at". n. JF £ Det@FD. 4. bY. SMSInteger@es$$@"id". strain energy . Ò1D &D. ElementDefinitions@D := H X = 8x. "AddIn" Ø TrueD. iD. 0<. zDD.. bb £ 8bX.xL H1 . H1 [email protected]. SMSExport@Table@Join@uIPiT. 1. 2<. tz. 3<<DD. wgp ¢ SMSReal@es$$@"IntPoints". 81. Jg £ SMSD@X. "Szz"<. 1<. SMSDo@Ig. SMSExport@SMSResidualSign Rg. IdentityMatrix@3D + Dg. jDD. [email protected] . IgDD. "Dependency" Ø 8X. SMSEndDo@D. r0. ElementDefinitions@D. 8<D. uI ¢ SMSReal@Table@nd$$@i. jD.xL H1 + hL<. i. "Sxy". "Exy". 8j. . 0D. "AddIn" Ø TrueD. "u". 881. 81. npost$$D. X. kinematics. jD. uIPiTD. "IgnoreNumbers" -> TrueD . z< ¢ Table@SMSReal@es$$@"IntPoints". X. p$$@iD. SMSInteger@es$$@"id". 8i.bb.XI. Cg £ [email protected] AceFEM Finite Element Environment Definitions of geometry. SMSExport@Join@Extract@Eg. 8<D. 8i. . jD. Eg £ 1 ê 2 HCg . 8Em. m< £ SMSHookeToLame@Em. H1 + xL H1 . 2<. 83. SMSInverse@JgD<D. 8j. SMSDo@ Rg £ Jgd tz wgp SMSD@W .1L ^ 2 + m H1 ê 2 HTr@CgD . i. IgDD. "DeformedMeshY". SMSEndDo@D. "Sxx". "Eyy".hL. Transpose@FD. X ¢ SMSFreeze@Append@NI. bY< ¢ SMSReal@Table@es$$@"Data". Extract@s. NI £ 1 ê 4 8H1 .Log@JFDL. "v"<. SMSGPostNames = 8"Exx". "NoIntPoints"DDD. pe = Flatten@uID. "NoIntPoints"DDD. 1<. SMSNoNodes<D. XD. 1. "Postprocessing" user subroutine SMSStandardModule@"Postprocessing"D. pe. 8j. bX. u £ Append@NI. 1. XI ¢ Table@SMSReal@nd$$@i. F. SMSDo@ Kg £ SMSD@Rg. 8i. ElementDefinitions@D. Dg £ SMSD@u. SMSNPostNames = 8"DeformedMeshX". 2<. 8i.hL. H1 + xL H1 + hL. "KeepStructure" Ø TrueD. "Syy".uI. 8i. 8i. iD. 881. SMSNoNodes<. 8l. SMSNoDimensions<DD. h. s$$@i. gpost$$@Ig. 82. s £ H1 ê JFL * SMSD@W. nD. W £ 1 ê 2 l HJF . L "Tangent and residual" user subroutine SMSStandardModule@"Tangent and residual"D. 2<<D. SMSNoDimensions<D.. SMSDo@Ig. Jgd £ Det@JgD. pe. 82. b is potential of body forces where b is force per unit mass nad r0 density in initial configuration.X u. fl W ext = -r0 u. u = ui Ni . a9 < are internal degrees of freedom fl the classical hyperelastic Neo-Hooke's potential energy.AceFEM Finite Element Environment 75 Code generation SMSWrite[]. eight node finite element for the analysis of hyperelastic solid problems.1L2 + mI Tr@CD-3 2 . Elimination of Local Unknowns ‡ Description Generate the three-dimensional.Z Du = v..X w.. F = I + D is enhanced deformation gradient. fl eliminate internal degrees of freedom at the element level by the static condensation procedure (see Elimination of local unknowns) . where C = FT F is right Cauchy-Green tensor.Formulae No. u.J0 -1 where a = 8a1 . w = wi Ni fl enhanced strain formulation to improve shear and volumetric locking response. a2 .. .Y w.Leafs SKR 92 1439 SPP 68 967 Mixed 3D Solid FE. W= l 2 Hdet F . v = vi Ni .X v. isoparametric mapping from the reference to the actual frame.c Size: 11 064 Methods No.Z w. File: ExamplesHypersolid2D. 8 nodes.Log@det FDM.Y v.Y u.Z D = Du + DetAJ0 E Det@JD x a1 h a2 z a3 x a4 h a5 z a6 x a7 h a8 z a9 . The element has the following characteristics: fl fl fl hexahedral topology. fl global unknowns are displacements of the nodes. . z< ¢ Table@SMSReal@es$$@"IntPoints". NI £ Table@1 ê 8 H1 + x XnPi. i. IgDD. nD. bX. . "r0 -density". 3<D. jD. h Ø 0. 1. 8Em. 3<DD.SMSInverse@J0D. 1TL H1 + h XnPi.1L2 + mI Tr@CD-3 2 .F. 8j. Hb £ J0d HbX. 1. .1. TestExamples ElementDefinitions@D := X = 8x. r0. 0.7 8 9 where a = 8a1 . SMSTemplate@"SMSTopology" Ø "H1". J0 £ SMSReplaceAll@Jg. SMSInverse@JgD<D.1<. . . uI ¢ SMSReal@Table@nd$$@i. "SMSNoDOFCondense" Ø 9. a9 < are internal degrees of freedom 76 fl the classical hyperelastic Neo-Hooke's potential energy.1. Jgd F ¢ SMSFreeze@IdentityMatrix@3D + Dg + HbD. 0. X. "Dependency" Ø 8X. X. ae ¢ Table@SMSReal@ed$$@"ht".Log@JFDL. 3<D.uI.. 1<<. 8l. . W= l 2 AceFEM Finite Element Environment Hdet F . z Ø 0<D. "bY -force per unit mass Y". X ¢ [email protected]<. 8i.1<.3. 8<. 8. where C = FT F is right Cauchy-Green tensor.1. J0d £ [email protected]. "Environment" Ø "AceFEM"D. 0. "n -poisson ratio". Xn = 88. 81. 81. 1. 3TL. XD. "bZ -force per unit mass Z"<. wgp ¢ SMSReal@es$$@"IntPoints". 2TL H1 + z XnPi. . 1<. "SMSGroupDataNames" -> 8"E -elastic modulus". h. F = I + D is enhanced deformation gradient. 8<. . W £ 1 ê 2 l HJF . Jgd £ Det@JgD. bY. ph = Join@pe. iD. 81.Log@det FDM. SMSInitialize@"ExamplesHypersolid3D". 1<. XI ¢ Table@SMSReal@nd$$@i. 81. Dg £ SMSD@u. 1. fl W ext = -r0 u. HbX = x aeP1T h aeP2T z aeP3T x aeP4T h aeP5T z aeP6T x aeP7T h aeP8T z aeP9T .XID. Jg £ SMSD@X. . 8<D. .. JF £ [email protected] is potential of body forces where b is force per unit mass nad r0 density in initial configuration. aeD. 8. SMSNoDOFCondense<D. "bX -force per unit mass X". bb £ 8bX. 1<. . "X".1. 1. 8i. 0<D. 8. 1. 8x Ø 0. bY. iDD. Length@SMSGroupDataNamesD<DD.1. n.1L ^ 2 + m H1 ê 2 HTr@CgD . bZ<. m< £ [email protected]. jDD. "SMSDefaultData" -> 821 000. 8i. 8i. 8j.1.3L . "at". 8i. Cg £ Transpose@FD. u £ NI. a2 . 8i. pe = Flatten@uID. 4. fl eliminate internal degrees of freedom at the element level by the static condensation procedure (see Elimination of local unknowns) ‡ Solution << "AceGen`". bZ< ¢ SMSReal@Table@es$$@"Data". IgDD.1<. "AddIn" Ø TrueD. SMSNPostNames = 8"DeformedMeshX". "Syy". 1. "Eyz". "Exz". "Syx". 0. 8"E *" -> 1000. s £ H1 ê JFL * SMSD@W. SMSInteger@es$$@"id". ElementDefinitions@D. SMSExport@8s. i. 880. "Ezx". 880. 0<<<. gpost$$@Ig. SMSInteger@es$$@"id". . 1. 0<. "v". "Szx". SMSExport@SMSResidualSign Rg. "ExamplesHypersolid3D". ÒD &D. SMSStandardModule@"Postprocessing"D.1<D. 2. 8i. 8880. SMTAddEssentialBoundary@8 "X" == 0 &. SMSDo@Ig. 810. "Exy". 235D< SMSNoTimeStorage= 234 + 9 idata$$@NoSensParametersD See also: Elimination of local unknowns File: ExamplesHypersolid3D. "n *" -> . 0. 3 -> . SMSGPostNames = 8"Sxx". SMSDo@ Kg £ SMSD@Rg. "Szz". "w"<.3<D. "Ezz"<. "Eyy". SMSExport@Kg. 2. "Eyx". 1D. SMTMesh@"A".. 0. 1 -> 0. "Syz". ph. 10D. Elimination of local unknowns requires additional memory. "Szy". "AddIn" Ø TrueD. ph. SMTAnalysis@D. 2 -> 0. SMTAddDomain@"A".IdentityMatrix@3DL. "u". Eg< êê Flatten. 6. 3<. "Exx".bb. SMSWrite[]. ed$$@ht. FD . ed$$@ht. "Sxz". SMSNoAllDOF<D. "NoIntPoints"DDD. Transpose@FD. 6<. "DeformedMeshZ". 0. 1. 8j. s$$@i. 88880. 19D. 0<<. "DeformedMeshY". SMSDo@ Rg £ Jgd wgp SMSD@W . "Sxy". 8i. 810. . . jD. npost$$D. jD. ElementDefinitions@D. 3<. "Ezy". [email protected] Size: 35 793 Methods No.Formulae No. 2<<. "NoIntPoints"DDD. SMSNoNodes<D. 2<<<<D. 0<. "H1". 2.AceFEM Finite Element Environment 77 SMSStandardModule@"Tangent and residual"D. 3 -> 0<. Eg £ 1 ê 2 HCg . SMSDo@Ig. SMSEndDo@D. 2.r0 u. SMSExport@Table@Join@uIPiT. 810. uIPiTD. ed$$@ht. SMTInputData@D. SMSNoAllDOF<D. 8 "X" == 10 &. iD. p$$@iD. 810. 815.Leafs SKR 298 6683 SPP 232 4036 ‡ Cantilever beam example << AceFEM`. Corresponding constants are set to: SMSCondensationData= 8ed$$@ht. 1.49454 µ 10-11 ê2. ˛Da˛ê˛Y˛=1. lêDl=1.D. lêDl=5.ê1. . step@@2DDD D. 10.5. "w".ê1. step@@3DD .ê1. 1. "Sxx". .. 1D. lêDl=4.D.69498. 1<D 9.001. 8"Adaptive". [email protected] µ 10-13 ê2. ˛Da˛ê˛Y˛=4. lêDl=3.ê1. ˛Da˛ê˛Y˛=1.7.145. While@ While@step = SMTConvergence@10 ^ .ê1.07976 µ 10-11 IterêTotal=5ê5 Status=0ê8Convergence< TêDT=2.18176 µ 10-10 IterêTotal=5ê20 Status=0ê8Convergence< TêDT=5. ˛Da˛ê˛Y˛=6. "Exx"<. SMTStatusReport@D. If@stepP4T === "MinBound". [email protected] µ 10-11 ê7. 8. .13176 µ 10-12 ê6. 1.0.68321 µ 10-11 IterêTotal=5ê25 Status=0ê8Convergence< SMTPostData@8"u". Print@"Error: Dl < Dlmin"DD. 61.ê1.8. If@step@@1DD.42823 µ 10-10 IterêTotal=5ê15 Status=0ê8Convergence< TêDT=4. lêDl=2.ê1.78 AceFEM Finite Element Environment [email protected] µ 10-11 ê5. 810. . ˛Da˛ê˛Y˛=4.ê1.99336 µ 10-17 .04681 µ 10-10 IterêTotal=5ê10 Status=0ê8Convergence< TêDT=3.ê1. TêDT=1.0500509= . SMTNextStep@1. 5<D.ê1. "v". instead of eliminating internal degrees of freedom at the element level. "Mesh" -> False. Auxiliary Nodes ‡ Description Generate the three-dimensional. thus all together 9 nodes. SMTNodeData@"at"DDDD Mixed 3D Solid FE. create for each element an additional auxiliary node where the additional unknowns are stored.AceFEM Finite Element Environment 79 Show@SMTShowMesh@"Elements" -> FalseD. For each element an auxiliary node (specified by the -LP switch as described in Node Identification) is created with the following characteristics: Ë node has node identification "EAS" Ë node has no coordinates and is not shown on graphs Ë node holds all 9 local unknowns . "Field" -> Map@Norm. SMTShowMesh@"DeformedMesh" Ø True. However. ‡ Solution Created element has 8 topological (topology H1) and 1 auxiliary node. eight node finite element for the analysis of hyperelastic solid problems as described in example Mixed 3D Solid FE. 8<D. u £ NI. 8. [email protected]. 8i. Jg £ [email protected]. z Ø 0<D. . SMSDOFGlobalPiT<DD. "D". . 1. nD. NI £ Table@1 ê 8 H1 + x XnPi. X. 8i.1L ^ 2 + m H1 ê 2 HTr@CgD . z< ¢ Table@SMSReal@es$$@"IntPoints". 8i. bY. "SMSDOFGlobal" Ø 83. 4. "SMSGroupDataNames" -> 8"E -elastic modulus". "D". 8T.3L . 3TL. jD.1<. n. bY. 81. "bZ -force per unit mass Z"<. 81. 3. Length@SMSGroupDataNamesD<DD. Jgd F ¢ SMSFreeze@IdentityMatrix@3D + Dg + HbD. iD. 8l. 0< D. r0.1. ae = pIP9T. 0. SMSNoNodes<. . 3. 8Em. . IgDD. "D". 1<. "SMSNoNodes" Ø 9. 3<D. J0 £ [email protected]. "D". "n -poisson ratio". 8. 1. 1. 3<D. 8j. "Dependency" Ø 8X. XI ¢ Table@SMSReal@nd$$@i. 3.3. wgp ¢ SMSReal@es$$@"IntPoints". m< £ SMSHookeToLame@Em. 1. h Ø 0. W £ 1 ê 2 l HJF .1. Xn = 88. 8j. .1<. SMSTemplate@ "SMSTopology" Ø "H1". "Environment" Ø "AceFEM"D. 0. 8x Ø 0.80 AceFEM Finite Element Environment << "AceGen`". 1<. "bY -force per unit mass Y". 8i. 1TL H1 + h XnPi. 0. 9<. pI ¢ SMSReal@Table@nd$$@i. "SMSAdditionalNodes" Ø Hold@8Null< &D. Jgd £ Det@JgD. bZ< ¢ SMSReal@Table@es$$@"Data". 3. X. i. 8. 3. .1. XD. pe = Flatten@pID. 3.F. 81. "X". bX. X ¢ SMSFreeze@NI. h. "bX -force per unit mass X". SMSInverse@JgD<D. "D". "D". uI = pIP1 . "r0 -density". . . jDD. IgDD. "SMSDefaultData" -> 821 000.. J0d £ [email protected]. TestExamples ElementDefinitions@D := X = 8x. 81. HbX = x aeP1T h aeP2T z aeP3T x aeP4T h aeP5T z aeP6T x aeP7T h aeP8T z aeP9T .1. 2TL H1 + z XnPi. SMSInitialize@"ExamplesHypersolid3DB". "SMSSymmetricTangent" Ø True. "D". .Log@JFDL. 1<<. 1.1. 3.1<. bZ<. bb £ 8bX. 1<. "at". "EAS -LP"<. "SMSNodeID" Ø 8"D". 8i. Hb £ J0d HbX. Cg £ Transpose@FD. JF £ [email protected]<. Dg £ SMSD@u. 8<. 880. 1 -> 0. "Sxy". 8 "X" == 10 &. 2<<<<D. each Ë 2 auxiliary nodes (node identification "EAS") with 9 d. SMSNoDOFGlobal<D. 810. 1. "Syy". 88880. ÒD &D. SMSInteger@es$$@"id". "n *" -> . SMSNPostNames = 8"DeformedMeshX". 810. SMSNoDOFGlobal<D. . "DeformedMeshZ". s$$@i. jD. "Ezz"<. i. "Exy". 2. p$$@iD. SMTNextStep@1. "v". 2. "ExamplesHypersolid3DB". SMTNewtonIteration@D. SMTAddDomain@"A". 810.r0 u. 1D. 8880. 3<. "Syx".IdentityMatrix@3DL. 2. "Eyx". SMSEndDo@D. SMSWrite[]. s £ H1 ê JFL * SMSD@W. SMSExport@Table@Join@uIPiT. "Exz". Transpose@FD. . SMSDo@ Kg £ [email protected]. 0<. 1.Leafs SKR 298 6692 SPP 232 4045 ‡ Simple test example << AceFEM`. "Eyz". SMSExport@Kg. SMSInteger@es$$@"id". "w"<. 0<. SMSDo@ Rg £ Jgd wgp SMSD@W . 810. SMTInputData@D. "AddIn" Ø TrueD. 8j. 3 -> . iD. 3 -> 0<. 8"E *" -> 1000. 0<<<. 82. "Exx". gpost$$@Ig. "AddIn" Ø TrueD. 0. "Ezy". 1.o. 8i. 2 -> 0. "NoIntPoints"DDD. FD .. Eg £ 1 ê 2 HCg . "Szy". "Eyy". "DeformedMeshY". SMTMesh@"A". pe. 880. SMSStandardModule@"Postprocessing"D. 0. 0<<. 3<. 0. npost$$D. "Ezx". 1.c Size: 35 506 Methods No.AceFEM Finite Element Environment 81 SMSStandardModule@"Tangent and residual"D. [email protected]<D. SMTAnalysis@D. "Syz".Formulae No. pe. Example has: Ë 2 elements Ë 12 topological nodes (node identification "D") with 3 do. Eg< êê Flatten. "u". "Sxz". ElementDefinitions@D. "Szx". "Szz". jD. [email protected]. "H1". SMSGPostNames = 8"Sxx". uIPiTD.f each . ElementDefinitions@D. 2<<. "NoIntPoints"DDD. 8i.1<D. SMSDo@Ig. File: ExamplesHypersolid3DB. SMTAddEssentialBoundary@8 "X" == 0 &. SMSExport@8s. 1<. SMSExport@SMSResidualSign Rg. 0. 2. 8<D. 2. 30. 3. 2. 0... 24. ..< 8..5< 89.. 2.1< 80.. . SMTNodeData@"NodeID"D. 28. 17..1. SMTNodeData@"X" ã 0 &. 2. 5< 85.. 0. .1< 810. 2. 1. 2. . 22. SMTNodeData@"ID" ã "EAS" &. 0. 0.. "NodeMarks" Ø True. 2. SMTNodeData@"X"D. . 13. 20< 80.1< 810. . 2..< 80. 2< 85. .. 10.1< 80.. 16. SMTNodeData@"DOF"D< êê Transpose êê MatrixForm 1 D 2 D 3 D 4 D 5 D 6 D 7 D 8 D 9 D 10 D 11 D 12 D 13 EAS 14 EAS 80. "NodeIndex"D 813... 0. 4. 26. 2.< 827.< 8.1. . 33. 2.1. 14. . 37< Node identification switch -LP prevents post-processing of auxiliary nodes. 32. "NodeIndex"D 81.1< 80.1. 0. 7. "Marks" -> "NodeNumber"D 4 2 8 3 6 1 7 12 5 10 11 9 Node identification switch -P prevents also selection of the auxiliary nodes by coordinates of the nodes alone...< 823.1< 810. 3. SMTShowMesh@"Elements" -> False. . 36.< 8. 0. 0.1< 85.82 AceFEM Finite Element Environment 8SMTNodeData@"NodeIndex"D.1< 80.1..< 83.< 821.. 0. 8< 85. 35.< 829. 18. 31.1. 0.. 19...1. 0.. 14< Here the index of auxiliary nodes for all elements is extracted.1.. 34. 0. ..< 825... 2. 0. .< 8. 0. 3. 11< 810.< 812.5< 86. 15. 0. 4< Auxiliary nodes can be selected if the node identification is gives as a part of the search criteria. . 0... SMTMesh@"A". 1D. 0. 6<.19557 µ 10-11 IterêTotal=5ê5 Status=0ê8Convergence< TêDT=2. ˛Da˛ê˛Y˛=1. "ExamplesHypersolid3DB".AceFEM Finite Element Environment 83 SMTElementData@"Nodes"D@@All. 810.6261 µ 10-11 ê4. step@@3DD . SMTNextStep@1. 810. SMTAddEssentialBoundary@8 "X" == 0 &. If@stepP4T === "MinBound".ê1. 6.3<D.ê1. 88880. "Sxx".. 8.80438 µ 10-10 IterêTotal=5ê10 Status=0ê8Convergence< TêDT=3.001. SMTStatusReport@D. . SMTStepBack@D. 0<<.2748 µ 10-10 IterêTotal=5ê20 Status=0ê8Convergence< TêDT=5.0500509= . 2.ê1. 10. 61. "v". 14< ‡ Cantilever beam example << AceFEM`.ê1. 880. 815.ê1. lêDl=5.69498. ˛Da˛ê˛Y˛=8. 3 -> 0<. 8"E *" -> 1000. lêDl=1. 3<.29267 µ 10-12 ê3. 810. SMTNextStep@1. ˛Da˛ê˛Y˛=3. 1 -> 0. 1.24018 µ 10-10 IterêTotal=5ê15 Status=0ê8Convergence< TêDT=4.1. 880. 2 -> 0. 2.8. "H1". 8"Adaptive". 0<.12243 µ 10-18 . "Exx"<.ê1. 0.1<D. 2. SMTNewtonIteration@D. 8 "X" == 10 &. "n *" -> . Print@"Error: Dl < Dlmin"DD.ê1.ê1. 1. TêDT=1.. . SMTInputData@D. 5<D. 810. 8880. While@ While@step = SMTConvergence@10 ^ . ˛Da˛ê˛Y˛=2.ê1. SMTAddDomain@"A". ˛Da˛ê˛Y˛=2. "w". 0<. 3 -> . 810. 7.ê1.D. lêDl=3. 3<. [email protected]. 0. 2.D. 2<<. 0. 2<<<<D. If@step@@1DD.0. 9DD 813.16526 µ 10-13 ê1.43509 µ 10-11 ê2. 1<D 9.84212 µ 10-11 IterêTotal=5ê25 Status=0ê8Convergence< SMTPostData@8"u".29827 µ 10-12 ê1. .5. 0<<<. step@@2DDD D. lêDl=2. lêDl=4. thus the proper template constants (see Template Constants) have to be provided by the user. "Field" -> Map@Norm. Finite Strain Element ). SMTNodeData@"at"DDDD Cubic triangle. Additional nodes ‡ Description Generate the two-dimensional. . Standard build-in topologies cover only liner (3 node) and quadratic (6 node) triangular elements.84 AceFEM Finite Element Environment Show@SMTShowMesh@"Elements" -> FalseD. SMTShowMesh@"DeformedMesh" Ø True. "Mesh" -> False. triangular plane strain element with cubic interpolation of displacements (see also Simple 2D Solid. . enhanced by two additional nodes on a edges of the triangle and one additional node in the middle of the element.AceFEM Finite Element Environment 85 ‡ Solution The element is based on a 3 node triangle topology (T1). F £ IdentityMatrix@3D + Dg.3L . i. 9<<. SMSNoDOFGlobal<D.Ò2L. 80. s$$@i. 81. 1. 2. HÒ1 + Ò2 + Ò3L ê 3 < &D. 9 k h H3 k . k £ 1 .86 AceFEM Finite Element Environment << "AceGen`" SMSInitialize@"ExamplesT3". jD. 0< D. 10.3.1L H3 h . n. 3<D.XI.r0 u. 4. 8i. 6<. 2.2L ê 2. 10. "X". "NoIntPoints"DDD. 8<. SMSDo@ Kg £ SMSD@Rg. SMSInteger@es$$@"id". 8i. 8i.1L ^ 2 + m H1 ê 2 HTr@CgD . "SMSAdditionalNodes" Ø Hold@8Ò1 + 1 ê 3 HÒ2 . Ò2 + 2 ê 3 HÒ3 . 6.c Size: 13 446 Methods No. SMSWrite@D. Dg £ SMSD@u. 8Em.Ò1L. x H3 x . 7<. Ò2 + 1 ê 3 HÒ3 . jDD. "SMSDefaultIntegrationCode" Ø 17.1L ê 2. 9 h x H3 x . 85. nD. 82 ê 3. Ò1 + 2 ê 3 HÒ2 . m< £ SMSHookeToLame@Em. "AddIn" Ø TrueD. bX. SMSNoNodes<. .1L ê 2. pe.Ò3L. NI £ 8k H3 k . tz. 84. 4. "t -thickness". zDD. 9<. "SMSDefaultData" -> 821 000. 1 ê 3<. W £ 1 ê 2 l HJF . 9 k h H3 h .Log@JFDL. 1<. h. 9 h x H3 h . 8.Ò2L.uI. Jg £ SMSD@X. 8j. 8j. 2 ê 3<. Jgd £ Det@JgD. Ò3 + 2 ê 3 HÒ1 . 5.h.Formulae No. 0<. 81 ê 3.1L ê 2. 1 ê 3<<. 0<. 2<DD. wgp ¢ SMSReal@es$$@"IntPoints". bb £ 8bX. JF £ [email protected] H3 x .x . 9<. 810. "SMSSegmentsTriangulation" Ø 8881.1L ê 2. 0. SMSEndDo@D. "SMSNoNodes" Ø 10. "AddIn" Ø TrueD. 9 k x H3 x . 8l.Ò3L. 6. "bX -force per unit mass X". 81 ê 3. 1. "at". 7. IgDD.1L H3 k . Length@SMSGroupDataNamesD<DD. 80. "n -poisson ratio". 8<. 7. i. 88. "SMSGroupDataNames" -> 8"E -elastic modulus". 8i. Ò3 + 1 ê 3 HÒ1 . 89. 6.Leafs SKR 178 3200 ‡ Cook`s membrane test .2L ê 2. X. 82 ê 3.bb.1L ê 2. iD. SMSDo@Ig. 10<. 84. r0. pe = Flatten@uID. 9 k x H3 k . "SMSSegments" Ø 881. 1 ê 3<. 8i. SMSInverse@JgD<D. bY< ¢ SMSReal@Table@es$$@"Data". 0<. . 810. 1. z< ¢ Table@SMSReal@es$$@"IntPoints". XD.1L ê 2. SMSStandardModule@"Tangent and residual"D. 27 h x k<. IgDD. h H3 h . u £ Append@NI. X = 8x. SMSNoDOFGlobal<D. iD. Cg £ Transpose@FD. "SMSReferenceNodes" Ø 880. pe. 80. 0<. jD. uI ¢ SMSReal@Table@nd$$@i. "Environment" Ø "AceFEM"D. SMSExport@SMSResidualSign Rg. 85. 1. SMSNoNodes<. bY. 0<. 0D. 3<<<. "Dependency" Ø 8X. 3. 8j. jD. "r0 -density". 10<. "bY -force per unit mass Y"<.Ò1L. 7. SMSDo@ Rg £ Jgd tz wgp SMSD@W . X. SMSTemplate@"SMSTopology" Ø "T1". XI ¢ Table@SMSReal@[email protected] ê 2.F. p$$@iD. "SMSSymmetricTangent" Ø True. X ¢ SMSFreeze@Append@NI. File: ExamplesT3. SMSExport@Kg. 5. 4. 0. 2<D. 81 ê 3. 2 ê 3<. 83. Do@SMTNextStep@1. While@SMTConvergence@10 ^ . SMTAddEssentialBoundary@ "X" ã 0 &. SMTShowMesh@"NodeMarks" Ø True.1D. 8880. 880.30. 848. 8"E *" -> 1. . 44<<. SMTAddNaturalBoundary@ "X" ã 48 &.8. 3<. 1 Ø 0. SMTAddDomain@8"Test".D. 0<.1092. 2 Ø 0D.1D. 0.AceFEM Finite Element Environment 87 Cook`s membrane test << AceFEM`.8017<< ‡ . 10<D. "ExamplesT3". 44<. "BoundaryConditions" -> TrueD SMTNodeData@"X" == 48 && "Y" == 44 + 16 &. "n *" -> 0<<D. SMTMesh@"Test". SMTAnalysis@D. 44 + 16<<<D. 2 Ø . .. SMSTopology. SMTNewtonIteration@D. 8i. 1. SMTInputData@D. 848. "at"D 8810. 10D. . "Field" Ø SMTPost@2DD Inflating the Tyre ‡ Description The load such as gas pressure acts perpendicular to the actual deformed surface.88 AceFEM Finite Element Environment SMTShowMesh@"DeformedMesh" Ø True. t is prescribed surface traction and G is the deformed boundary of the problem. With the derived code and the element from the previous examples analyze the problem of inflating the tyre. traction is perpendicular to the deformed surface of the domain. global unknowns are displacements of the nodes. Generate 2D surface traction element with the following characteristics: fl fl fl fl surface is composed of linear segments. Calculate the shape of the tyre when the pressure inside is 0 and when the pressure is 27. "BoundaryConditions" Ø True. contribution of the surface pressure to the virtual work of the problem is defined by ŸG tdu „ G where du is variation of the displacement field. AceFEM Finite Element Environment 89 ‡ Gas pressure element Due to the surface pressure acting perpendicular to the deformed mesh the surface traction element contributes also to the global tangent matrix and makes the global tangent unsymmetrical. . ne = 40. "n *" -> .c Size: 4126 Methods No. 2. SMTMesh@"tyre". p. "SMSSymmetricTangent" Ø False . sinf< £ Hxj . 8"E *" -> 1000.xiL. 2.3<<. 8f. The shape of the empty tyre can be obtained by starting with the weightless tyre and then increasing the volume force to its final value. Table@8Cos@fD. 8<<D. p$$.Hxj .1. 8p. p. 8ne<. Sin@fD<<. 8i. SMTNextStep@1. 4<. SMTAddEssentialBoundary@ "Y" < .p. L Rel £ tz IntegrateB. "AddIn" Ø TrueD. jDD. . "Marks" Ø False. "SMSDefaultIntegrationCode" Ø 0 . L £ SMSSqrt@Hxj . 1<D. 8i. "at". p ê 20<D êê ReverseD. 8sinf. cosf<<. "ExamplesHypersolid2D". tz< ¢ SMSReal@Table@es$$@"Data". iD. "AddIn" Ø TrueD. 8j. 8cosf. 8xi. 8i. 1<F. 8 [email protected] No. 2 -> 0D. XI ¢ Table@SMSReal@[email protected] &. [email protected] SKR 10 182 ‡ Analysis << AceFEM`. 8j. p<. "Show" -> False. SMSTemplate@"SMSTopology" Ø "L1" . "X". SMTInputData@D. 2 Ke £ [email protected]. SMTAddDomain@8"tyre". Length@SMSGroupDataNamesD<DD. 0. SMSNoDimensions<DD.sinf<. 8ne. "Q1". SMTAnalysis@D. The first task is to find out the shape of the empty tyre. xj< £ XI + uI. 8"gas". 0. s$$. 8pe<D. "Elements" Ø RGBColor@1. Sin@fD<.D@u. 1 -> 0. File: ExamplesGasPressure. p ê 20<D êê TransposeD. 1 8 H1 . 0DD.90 AceFEM Finite Element Environment << AceGen`. x ¢ SMSFictive@D. 0. SMSExport@Ke. "ExamplesGasPressure". SMSInitialize@"ExamplesGasPressure". 2. "SMSGroupDataNames" -> 8"p -pressure".1 8Cos@fD. SMTMesh@"gas". SMSNoDimensions<D. peD. "Mesh" Ø False. 8f..1.xL . SMSWrite@D. SMSNoNodes<. "Environment" Ø "AceFEM"D. "t -thickness"< . We only know that the shape of the weightless tyre is circular. H1 + xL <. 8x. 2. . u= 2 p = 88cosf. Sin@fD<. SMSNoNodes<. "SMSDefaultData" -> 80. pe = Flatten@uID. . jD.xiLD. Table@ 81. SMSStandardModule@"Tangent and residual"D.xiL ë L. 1D. uI ¢ SMSReal@Table@[email protected]. undef = SMTShowMesh@"BoundaryConditions" Ø True. "L1". AceFEM Finite Element Environment 91 graph = Table@ SMTNextStep@0, 0D; SMTDomainData@"tyre", "Data", "bY *" -> - forceD; While@SMTConvergence@10 ^ - 9, 10D, SMTNewtonIteration@DD; SMTShowMesh@"DeformedMesh" Ø True, "Show" Ø "Window" False, PlotRange Ø 88- 1.5, 1.5<, 8- 1.4, 1.2<<D , 8force, 1, 5, 1<D; Show@undef, graphD The gas pressure is then increased in order to obtain the shape of the tyre for various gas pressure levels. graph = 8<; Map@HSMTNextStep@0, 0D; SMTDomainData@"gas", "Data", "p *" -> ÒD; While@SMTConvergence@10 ^ - 9, 10D, SMTNewtonIteration@DD; AppendTo@graph, SMTShowMesh@ "DeformedMesh" Ø True, "Show" Ø "Window" False, "Domains" Ø "tyre"DD; L &, label = Join@Range@0, 2, .2D, Range@3, 30, 6DDD; 92 AceFEM Finite Element Environment GraphicsGrid@Partition@MapThread@Show@undef, Ò, DisplayFunction Ø Identity, PlotLabel Ø Ò2, PlotRange Ø 88- 1.5, 1.5<, 8- 1.4, 2<<D &, 8graph, label<D, 4D , Spacings -> 0, ImageSize -> 450D 0. 0.2 0.4 0.6 0.8 1. 1.2 1.4 1.6 1.8 2. 3 9 15 21 27 AceFEM Finite Element Environment 93 Advanced Examples Round-off Error Test With the AceFEM-MDriver (see AceFEM Structure ) module the advantages of the Mathematica's high precision arithmetic, interval arithmetic, or even symbolic evaluation can be used. In this section the number of significant digits lost due to the round-off error is calculated. In the previous section the C language code for the steady state heat conduction problem was generated. Due to the arbitrary precision arithmetic required, the C code can not be used any more and Mathematica code has to be generated. 94 AceFEM Finite Element Environment Here the Mathematica code for the steady state heat conduction problem (see Standard FE Procedure ) for AceFEM-MDriver is generated. << AceGen`; SMSInitialize@"PrecisionHeatConduction", "Environment" -> "AceFEM-MDriver"D; SMSTemplate@"SMSTopology" Ø "H1", "SMSDOFGlobal" Ø 1, "SMSSymmetricTangent" Ø False, "SMSGroupDataNames" -> 8"k0 -conductivity parameter", "k1 -conductivity parameter", "k2 -conductivity parameter", "Q -heat source"<, "SMSDefaultData" -> 81, 0, 0, 0<D; SMSStandardModule@"Tangent and residual"D; SMSDo@Ig, 1, SMSInteger@es$$@"id", "NoIntPoints"DDD; X = 8x, h, z< ¢ Table@SMSReal@es$$@"IntPoints", i, IgDD, 8i, 3<D; XI ¢ Table@SMSReal@nd$$@i, "X", jDD, 8i, SMSNoNodes<, 8j, SMSNoDimensions<D; Xn = 88- 1, - 1, - 1<, 81, - 1, - 1<, 81, 1, - 1<, 8- 1, 1, - 1<, 8- 1, - 1, 1<, 81, - 1, 1<, 81, 1, 1<, 8- 1, 1, 1<<; NI £ Table@1 ê 8 H1 + x XnPi, 1TL H1 + h XnPi, 2TL H1 + z XnPi, 3TL, 8i, 1, 8<D; X ¢ [email protected]; Jg £ SMSD@X, XD; Jgd £ Det@JgD; fI ¢ SMSReal@Table@nd$$@i, "at", 1D, 8i, SMSNoNodes<DD; f £ NI.fI; 8k0, k1, k2, Q< ¢ SMSReal@Table@es$$@"Data", iD, 8i, Length@SMSGroupDataNamesD<DD; k ¢ k0 + k1 f + k2 f2 ; l ¢ SMSReal@rdata$$@"Multiplier"DD; wgp ¢ SMSReal@es$$@"IntPoints", 4, IgDD; Df £ SMSD@f, X, "Dependency" -> 8X, X, SMSInverse@JgD<D; 1 W £ k Df.Df - f l Q; 2 SMSDo@ Rg £ Jgd wgp SMSD@W, fI, i, "Constant" Ø kD; SMSExport@SMSResidualSign Rg, p$$@iD, "AddIn" Ø TrueD; SMSDo@ Kg £ SMSD@Rg, fI, jD; SMSExport@Kg, s$$@i, jD, "AddIn" Ø TrueD; , 8j, 1, 8< D; , 8i, 1, 8< D; SMSEndDo@D; SMSWrite@D; File: PrecisionHeatConduction.m Size: 11 387 Methods No.Formulae No.Leafs SMT`SKR 178 2645 The domain of the problem is sphere with radius 1. On the lower surface of the sphere the constant temperature of f=0 is prescribed. The upper surface is isolated, so that there is no heat flow over the boundary ( q=0). There exists a constant heat source Q=1 inside the sphere. The task is to evaluate the number of significant digits lost when the sphere is discretized with the 125 hexahedra thermal conductivity elements. 00468568. . "Precision" Ø 40D SMTAddDomain@"sphere". SMTInputData@D. "H1". SMTNextStep@1. This can be verified by running the same example with the AceFEM-CDriver. [email protected] &. 2 ê 11<D. 8"Iteration". 8h. 85. 2.0465 µ 10-13 . 1. z<DD 8x. SMTMesh@"sphere". $MaxPrecision = Infinity. This gives the temperature in the node 100 and the numerical precision of the result for 5 Newton-Raphson iterations.98 &. "PrecisionHeatConduction". "Q *" -> 1<D. thus during the analysis the 40 digit precision real numbers are used. h. "Temperature".. 5<. where double precision real numbers are used.2954 It can be seen that 7 significant digits have been lost during the computation.1. 2 ê 11<. 8h. z<DD 8x. 1D. "Q *" -> 1<D. h.1. .1. True The SMTMesh function uses general interpolation of coordinates with the arbitrary number of interpolation points.00431268955724400112376415971040235 0.6102 33. 1. pointsD. 2. "at"D@@1DD. "k2 *" -> 5.4846 28.1..27035 µ 10-6 . 85. .. SMTAddEssentialBoundaryA "Z" <= 0.. SMTNodeData@100. SMTMesh@"sphere". 5<. 1 -> 0E. 8i. z<D. The volume is then divided into 5×5×5 elements.AceFEM Finite Element Environment 95 This starts symbolic MDriver with all the numerical constants set to have 40 digit precision.8x. 1 -> 0E. z<. h. . h.0774 30. "k2 *" -> 5. << AceFEM`. 2 ê 11<. 85<D 90. TableHeadings Ø 8None.2954 28.00431268955719375064016726409861 0. "k1 *" -> 10. SMTAddEssentialBoundaryA "Z" <= 0. SMTAnalysis@D. ê 11<. 1. 2.01546 µ 10-19 . 8x. h.004312689557193750640167263969 Precision 35. 5<D. 8z.. 8x. 8z. h. 1. 8"k0 *" -> 100. one should be aware that when a high precision arithmetic is used. SMTAddDomain@"sphere". Table@ Max@Abs@8x. SMTInputData@"NumericalModule" Ø "MDriver". z<. Mathematica takes "save bound" for the precision of the intermediate results and that the actual number of significant digits lost is usually much lower. 3. 1. h. 1. "H1". 1. TableForm@res. 1D. "Precision"<<D Iteration 1 2 3 4 5 Temperature 0. ê 11<DD.01 && "X"2 + "Y"2 + "Z"2 > 0.01 && "X"2 + "Y"2 + "Z"2 > 0.44699 µ 10-19 = . $MinPrecision = 0. Here the mesh of 11×11×11 interpolation points is obtained by mapping the cube into the sphere. . 5. "k1 *" -> 10.8x. z< ê Sqrt@8x. "ExamplesHeatConduction". 8"k0 *" -> 100.. z<D. << AceFEM`. SMTNodeData@100. .1.1. SMTAnalysis@D. z< ê [email protected] 0. 40D. "at"D@@1DD êê Precision< . ê 11<.004312689557193750640167263969 0. points = N@Table@ Max@Abs@8x. h. 8i. Table@SMTNewtonIteration@D. Although this seems a lot. 1. res = Table@ SMTNewtonIteration@D. 2. 5. global unknowns are displacements of the nodes. the problem is defined by the hyperelastic Neo-Hooke type strain energy potential W= l 2 Hdet F . 0.547e-2 0.469e-2 0.313e-2 0.6554e-2 Min.156e-2 0. 4 node element. The element has the following characteristics: fl fl fl fl fl fl quadrilateral topology. "at"D êê InputForm {0. "Contour" -> TrueD 0. the element should allow arbitrary large displacements and rotations.234e-2 0. 0 AceFEM The numerical precision of the machine precision numbers is always 16. "BoundaryConditions" Ø True.782e-3 Temp* Max.1L2 + mI Tr@CD-3 2 .96 AceFEM Finite Element Environment SMTShowMesh@"Field" -> "Temp*". SMTNodeData@100. Finite Strain Element for Direct and Sensitivity Analysis ‡ Description Generate two-dimensional. isoparametric mapping from the reference to the actual frame.Log@det FDM and total potential energy of the problem . The number of significant digits lost can be obtained by comparing the results with the high precision results.004312689557193752} Solid.391e-2 0. four node finite element for the analysis of the steady state problems in the mechanics of solids. W0 is the initial domain of the problem and l. u is displacements field. the problem is defined by the hyperelastic Neo-Hooke type strain energy potential W= l 2 Hdet F . Q is prescribed body force. The following user subroutines have to be generated: fl fl user subroutine for the direct implicit analysis. arbitrary shape parameter and prescribed boundary condition.1L2 + mI Tr@CD-3 2 . m are the first and the second Lame's material constants. fl user subroutine Task that performs two tasks: task "Volume" that returns the volume and the sensitivity of the volume with respect to all sensitivity task "Misses" that returns the Misses stress in all integration points 1 parameters 2 3 task "MissesSensitivity" that returns the sensitivity of the Misses stress with respect to given sensitivity parameter in all integration points . b is force per unit mass nad r0 density in initial configuration. the element should allow arbitrary large displacements and rotations.r0 u. F = I +ıu is deformation gradient.AceFEM Finite Element Environment 97 fl fl fl global unknowns are displacements of the nodes.Log@det FDM and total potential energy of the problem P = ŸW IW . user subroutine for the sensitivity analysis with respect to the material constants. fl user subroutine for the post-processing that returns the Green-Lagrange strain tensor and the Cauchy stress tensor.b M „ W0 0 where C = FT F is right Cauchy-Green tensor. "r0 -density". "bY -force per unit mass Y"<. "SMSCharSwitch" Ø 8"Volume". "n -poisson ratio". 0. "BC"<. "n -poisson ratio". "SMSSymmetricTangent" Ø True. "bX -force per unit mass X". 1. 0. "Environment" Ø "AceFEM"D. 1. 0<. SMSInitialize@"ExamplesSensitivity2D". . "bX -force per unit mass X". "t -thickness". "Misses". "r0 -density". "t -thickness". "SMSGroupDataNames" -> 8"E -elastic modulus".3. "SMSShapeSensitivity" -> True. "bY -force per unit mass Y". "SMSDefaultData" -> 821 000.98 AceFEM Finite Element Environment ‡ Solution << "AceGen`". SMSTemplate@"SMSTopology" Ø "Q1". "SMSSensitivityNames" Ø 8"E -elastic modulus". "MissesSensitivity"< D. 8i. SensIndex. strain energy . SMSReal@Table@ nd$$@i. tz. Jgd £ [email protected] Finite Element Environment 99 Definitions of geometry. H*parameter sensitivity*L 8Em. 8j. SMSNoDimensions<DD . SMSNoNodes<. JF £ Det@FD. nD. jD. D. SMSNoNodes<. jD. bY< £ Table@ SMSReal@es$$@"Data". XI ¢ Table@SMSReal@nd$$@i. "X".3L . Jg £ SMSD@X. 8i. kinematics. z< ¢ Table@SMSReal@es$$@"IntPoints". SMSNoDimensions<DD. SMSInverse@JgD<D. m< £ [email protected]. SMSKroneckerDelta@1. bX. L . bX.. SMSNoNodes<. XD. n. SMSNoNodes<. SMSFreeze@F. uI ¢ SMSReal@Table@nd$$@i. 8i. r0. Length@SMSGroupDataNamesD<D. u £ Append@NI. DXIDf@@i. 8j. 8l. iD. Dg £ SMSD@u. r0. "X". SMSNoDimensions<D D. ElementDefinitions@sensitivity_D := H X = 8x. 4. X. DuIDf@@i. H*DOF sensitivity . 8j.xL H1 + hL<. H1 + xL H1 + hL. "at". bY. 8i. H1 . 3<D. pe = Flatten@uID. 0D. bY< ¢ SMSReal@Table@es$$@"Data". H*shape sensitivity*L DXIDf £ SMSIf@SensType == 2 . tz. uI ¢ Table@SMSReal@nd$$@i. "Dependency" Ø 8f. "Dependency" Ø 8f. X. "Dependency" Ø 8X. 8j. "Dependency" Ø 8f. 8j. NI £ 1 ê 4 8H1 . jDD<D. SMSNoDimensions<D. jD.1L ^ 2 + m H1 ê 2 HTr@CgD . SensTypeD SMSKroneckerDelta@i. "KeepStructure" Ø TrueD.. 8j. "st". H1 + xL H1 . SMSNoDimensions<DD. 8i.F. SMSNoNodes<. IgDD. Length@SMSGroupDataNamesD<DD. 8i. zDD. 8i. SensTypeIndex. .XI. 8i. IdentityMatrix@3D + Dg. jD. SMSNoDimensions<D. SMSNoDimensions<D. "at". jDD<D. iD. jD. IgDD. 8Em. 8i. 8i. i.essential boundary sensitivity included*L DuIDf £ SMSReal@ Table@nd$$@i. XI ¢ Table@SMSReal@nd$$@i. 8j. 0<. h.Log@JFDL. W £ 1 ê 2 l HJF .uI. jDD. bb £ 8bX. SMSNoNodes<. SensTypeIndexD<D . SMSNoNodes<. Cg £ Transpose@FD. If@sensitivity . "sX".xL H1 .hL. Table@0. X ¢ SMSFreeze@Append@NI. n. wgp ¢ SMSReal@es$$@"IntPoints". IdentityMatrix@3DL. SMSExport@Kg. npost$$D. s £ H1 ê JFL * SMSD@W. SMSDo@Ig. F. [email protected] AceFEM Finite Element Environment "Tangent and residual" user subroutine SMSStandardModule@"Tangent and residual"D. SMSExport@Table@Join@uIPiT. . 1. 81. 0. gpost$$@Ig. jD. SMSDo@ ElementDefinitions@TrueD. 2<. SMSExport@Join@Extract@Eg. SMSInteger@es$$@"id". SMSGPostNames = 8"Exx". SMSExport@81. 8Ig. 8i. . SMSNPostNames = 8"DeformedMeshX". iD. jD. f ¢ SMSFictive@D. SMSEndDo@D. 2<. 8<D. "DeformedMeshY". 881. "Exy". 82. 2<<D. s$$@i. "Eyy". TasksData$$D. SMSEndDo@D. SensTypeIndex ¢ SMSInteger@es$$@"SensTypeIndex". pe. pe. "Sxx". 8<D. SMSDo@ Rg £ Jgd tz wgp SMSD@W . Ò1D &D. "NoIntPoints"DDD. "v"<. 8i. 1<. 1. 8j. "IgnoreNumbers" -> TrueD . SMSIf@SMSInteger@Task$$D ã . ElementDefinitions@FalseD. . Eg £ 1 ê 2 HCg . "u".bb. 881.1 . . "Sensitivity pseudo-load" user subroutine SMSStandardModule@"Sensitivity pseudo-load"D. 1 + SMSInteger@idata$$@"NoSensParameters"DD<. fD. "NoIntPoints"DDD. 1. SensType ¢ SMSInteger@es$$@"SensType". 0. "Postprocessing" user subroutine SMSStandardModule@"Postprocessing"D. "AddIn" Ø TrueD. 8i. SMSDo@ Kg £ SMSD@Rg. 3<<DD. "Sxy". 1<. Transpose@FD. 83. SensIndex ¢ SMSInteger@idata$$@"SensIndex"DD. 81. uIPiTD. Extract@s. 2<. SMSDo@ Rg £ Jgd tz wgp SMSD@W . 8<D. 82. iD. . D. "Szz"<. "Syy".r0 u. 0. 1. 1. i. SMSInteger@es$$@"id". "AddIn" Ø TrueD. p$$@iD. p$$@iD. "NoIntPoints"DD<D "Tasks" user subroutine SMSStandardModule@"Tasks"D. pe. SensIndexDD.bb. SMSNoNodes<D.r0 u. SMSExport@SMSResidualSign SMSD@Rg. "AddIn" Ø TrueD. SensIndexDD. SMSExport@SMSResidualSign Rg. SMSInteger@es$$@"id". ElementDefinitions@FalseD. "AddIn" Ø TrueD. SMSExport@83. SMSInteger@es$$@"id". TasksData$$D. SMSInteger@es$$@"id". [email protected] .IdentityMatrix@3D Tr@sD. . 0. 1. s £ H1 ê JFL * SMSD@W. . 0. "NoIntPoints"DD< D. SMSExport@ Jgd tz wgp. SensTypeIndex ¢ SMSInteger@es$$@"SensTypeIndex". F. TasksData$$D.AceFEM Finite Element Environment 101 SMSIf@SMSInteger@Task$$D ã 1 . F. 1 s = s . "AddIn" Ø TrueD. SMSInteger@es$$@"id". consider using SMSSqrt instead of Sqrt. SensIndexDD. 8Ig. D. SMSIf@SMSInteger@Task$$D ã . SMSInteger@es$$@"id". 8Ig. SMSIf@SMSInteger@Task$$D ã . "NoIntPoints"DD< F.3 . 8SensIndex. 3 Misses = H3 ê 2L Total@s s. 0. ElementDefinitions@TrueD. SMSDo@ ElementDefinitions@FalseD. . SMSDoB ElementDefinitions@FalseD. SMSInteger@idata$$@"NoSensParameters"DD< D. SMSDo@ f ¢ SMSFictive@D. RealOutput$$@1D. SMSIfBSMSInteger@Task$$D ã 2 . "NoIntPoints"DD<. 1. 0. D. See also: Expression Optimization . fD. 2D . RealOutput$$@1 + SensIndexD. "IgnoreNumbers" -> TrueD . SMSExport@83. 1. 0. "NoIntPoints"DD<. Please. 1. RealOutput$$@IgDD. SMSExport@SMSD@Jgd tz wgp. SensType ¢ SMSInteger@es$$@"SensType". Transpose@FD. D. SensIndexDD. SensIndexDD.c Size: 31 839 Methods No. SMSDoB f ¢ SMSFictive@D. SensIndexDD.102 AceFEM Finite Element Environment SMSIfBSMSInteger@Task$$D ã 3 . s £ H1 ê JFL * SMSD@W. "NoIntPoints"DD< F. RealOutput$$@IgDD. fD. Shape and Load Sensitivity Analysis of Multi-Domain Example ‡ Description With the use of the element generated in previous example analyze the following two-domain example. Transpose@FD. 8Ig. 3 Misses = H3 ê 2L Total@s s. SensType ¢ SMSInteger@es$$@"SensType".IdentityMatrix@3D Tr@sD. File: ExamplesSensitivity2D. F Please. SMSExport@SMSD@Misses. "IgnoreNumbers" -> TrueD . 1 s = s . See also: Expression Optimization Code generation SMSWrite[].Leafs SKR 92 1439 SPP 68 967 SSE 162 2638 Tasks 297 4224 Parameter. SensTypeIndex ¢ SMSInteger@es$$@"SensTypeIndex". consider using SMSSqrt instead of Sqrt. . 1. 2D . F. . ElementDefinitions@TrueD. SensIndex ¢ SMSInteger@IntegerInput$$@1DD. SMSInteger@es$$@"id".Formulae No. Poisson ration of the second domain n2 . distributed force Q. .AceFEM Finite Element Environment 103 The sensitivity of the displacement field u = 8u. length L. v< with respect to the following parameters has to be analyzed: p1 p2 p3 p4 p5 fl fl fl fl fl elastic modulus of the first domain E1 . prescribed displacement v. 20<. This sets an initial sensitivity of prescribed displacement (BC velocity field) with respect to prescribed displacement v. L ê 2<<<D.2. This sets an initial sensitivity of prescribed force (BC velocity field) with respect to the intensity of the distributed force Q.2<<D. 820. 88L ê 2. SMTInputData@D.. "ExamplesSensitivity2D". 0. v = 1. SMTAddNaturalBoundary@ "Y" ã L ê 2 &. SMTAddEssentialBoundary@ "X" ã L && "Y" ã 0 &. SMTNodeData@"X" ã L && "Y" ã 0 &. "n *" -> 0. 8"E *" -> 1000. 1<<.prescribed force*L 8"Q". "n *" -> 0. 0<D. 8L ê 2. 80. SMTNewtonIteration@DD. SMTAddEssentialBoundary@ "X" ã 0 &. 0<<. SMTAddSensitivity@8 H* E is the first material parameter on "W1 " domain*L 8"E". 1D. L ê 2<. 880. . Map@8ÒP2T ê L. "Q1". 8L. SMTNodeData@ "Y" ã L ê 2 &. 8L ê 2.ê1. SMTMesh@"W2 ". 2 Ø Q ê 40D. 0<. 80. 1 -> 0.prescribed displacement *L 8"v". SMTNextStep@1. 1<<. H* L is first shape parameter for all domains*L 8"L". 0.3<<. 10D. 1. SMTNodesDD. SMTStatusReport@D. 2<< <D. 0< &. While@SMTConvergence@10 ^ . SMTAddDomain@8"W1 ". 8"E *" -> 5000. 0. ˛Da˛ê˛Y˛=2.ê1. L.1<D. L ê 2<. "ExamplesSensitivity2D". lêDl=1. 888L ê 2. SMTMesh@"W1 ".104 AceFEM Finite Element Environment ‡ Solution << AceFEM`. 2 Ø . H* n is the second material parameter on "W2 " domain*L 8"n". _ Ø 85. 1 ê 40. L = 10. 1000. 0. "sdB". [email protected] µ 10-11 IterêTotal=6ê6 Status=0ê8Convergence< . 2<<. This sets an initial sensitivity of node coordinates (shape velocity field) with respect to L for shape sensitivity analysis. Here is the primal analysis executed. "W2 " Ø 81. L ê 2<<<D. 8880. 0<<. SMTNodeData@"sX". 1<<. "sdB". 820. TêDT=1. 20<. H* v is the second boundary condition parameter . 8L. "Q1".84978 µ 10-13 ê7. "W1 " Ø 81. _ Ø 84.vD. 2 Ø 0D.9. 8"W2 ". 1. H* Q is the first boundary condition parameter . 0<. _ Ø 82. Q = 500. "Mesh" Ø False. "st"D. " ". 2DD ∂vê∂E Min= -0. 8"E". GraphicsGrid@Partition@ Join@Array@ HSMTIData@"SensIndex". "Legend" Ø False. "v"<@@ÒDD. 8""<D.3136e-3 Max= 0. Automatic<DL &. "Contour" Ø 5.65908e-4 . "L". "n".AceFEM Finite Element Environment 105 SMTShowMesh@"BoundaryConditions" Ø True. SMTShowMesh@"DeformedMesh" Ø True. "DeformedMesh" Ø TrueD This performs the sensitivity analysis with respect to all parameters. 5D. SMTSensitivity@D. "Label" Ø 8"∂vê∂". ÒD. "Q". "Field" Ø SMTPost@2. 106 AceFEM Finite Element Environment ∂vê∂L Min= -0.2577e-1 Max= 0.74954e-1 ∂vê∂v Min= -0. SMTTask@"Volume"D 850. 0.< ..1045e1 Max= 0 This evaluates the volume of the mesh and sensitivity of the volume with respect to all parameters. 0. only the third parameter (length L) effects the volume. 5. 0..... 0. As expected. 1079 Min. "Field" Ø SMTTask@"MissesSensitivity". "Contour" Ø TrueD 0.244e-1 0.103e-1 0.129e3 0.494e2 Max. 0.893e2 0. "IntegerInput" Ø 81<D.2531e4 Min.910e-3 Max. -0. SMTShowMesh@"DeformedMesh" Ø True. SMTShowMesh@"DeformedMesh" Ø True.109e3 0.292e-1 0. "Contour" Ø TrueD 0.AceFEM Finite Element Environment 107 This shows the distribution of the Misses stress. "Mesh" Ø False. 0. "Mesh" Ø False.169e3 0.197e-1 0.150e-1 0.149e3 0. "Field" Ø SMTTask@"Misses"D.693e2 0.1031e2 AceFEM This shows the distribution of the sensitivity of Misses stress with respect to elastic modulus of the first domain E1 .550e-1 AceFEM . 0.562e-2 0. fl fl fl fl global unknowns are displacements of the nodes. . Elasto-Plastic Element Ë Here the AceGen and the AceFEM interface variables are initialized. the element should take into account only small strains. surface tractions and body forces are neglected. the classical Hooke's law for the elastic response and an ideal elasto-plastic material law for the plastic response. isoparametric mapping from the reference to the actual frame. The element has the following characteristics: fl fl fl hexahedral topology.108 AceFEM Finite Element Environment Three Dimensional. Elasto-Plastic Element ‡ Description Generate the three-dimensional. eight noded finite element for the analysis of the coupled. 8 nodes. ‡ Three Dimensional. path-dependent problems in mechanics of solids. SMSInverse@JgD<D. X = 8x. . 0. 1<. 8j. "SMSPostIterationCall" Ø True. 24. z< ¢ Table@SMSReal@es$$@"IntPoints".3 . . . Ë Element is numerically integrated by one of the built-in standard numerical integration rules (see Numerical Integration). . 3T. 0. eP1. wi Ni < = e= 1 2 ∂u ∂X I + T M uI ¢ SMSReal@Table@nd$$@i. H* 7 state variables per integration point*L Lgh = Ngh + 1. "n -poisson ration". "bX -force per unit mass X". 1. h. 8i. SMSInteger@es$$@"id".1.1. 8. 2T. SMSInitialize@"ExamplesElastoPlastic3D".1<. SMSTemplate@"SMSTopology" Ø "H1". 8<D. "VectorLength" Ø 1000. "at". HIg .1. Ë Definition of the small strain tensor e: u = 8ui Ni . This starts the loop over the integration points. 81. X. n ep3. 8i.1<. H*store the components of strain tensor for postprocessing*L "SMSNoElementData" Ø 6 es$$@"id". 8i. z are coordinates of the current integration point. X. "SMSSymmetricTangent" Ø True. h. 3TL. SMSDo@Ig. 8i.1<.1 . 1. IgDD.3 . "NoIntPoints"D. ∂Qg ∂e ). 3<D. 1 ê 2 HDg + [email protected] Finite Element Environment 109 << AceGen`. "sy -yield stress". 1<.i] is calculated and stored into the Igh variable. 8. SMSStandardModule@"Tangent and residual"D. 1<. "X". u £ NI. 1. pe = Flatten@uID. jDD. 81. n ep1. "bZ -force per unit mass Z"<. 8i. i. SMSNoNodes<. "NoIntPoints"D. "NoIntPoints"DDD. . eP2. "Environment" -> "AceFEM"D. n ep2. "KeepStructure" Ø TrueD. 0. 1. "r0 -density". Dg £ SMSD@u. 1.zi} are the coordinates of the node.1. Ë Standard izoparametric interpolation of coordinates and diplacements within the element domain is performed here. 8. 8j. 1. NI £ Table@1 ê 8 H1 + x XnPi.3. "SMSNoTimeStorage" Ø Lhe.1<. eP2.1. . The "KeepStructure"->True option is Ë The total strain tensor is stored in element "Data" filed for the post processing purposes. Table@ed$$@"Data".uI. "SMSGroupDataNames" -> 8"E -elastic modulus". SMSFreeze@e. Ë The hgn is the vector of the state variables for the Ig-th integration point at the end of the previous time step. n ep1. where x. 3T. n lm =M. vi Ni . 81. eP3. 2TL H1 + z XnPi. 6<DD. Ë The SMSFreeze function is used here in order to enable differentiation with respect to the elements of the strain tensor later on when consistent linearization is performed ( necessery here to preserve the symmetry of e.1L 6 + iD. An additional history variable "state" stores information whether the material point is in elastic regime (state=0) or in plastic regime (state=1000+ ).XID. H* add an additional history data for the elastoëplastic state indicator*L Lhe = Lgh es$$@"id".2 .1. 0< D.2 . "SMSDefaultData" -> 821 000.1.1. Xn = 88. Jg £ SMSD@X. 1T. It contains the components of the plastic strain tensor n e p and the plastic multiplier lm p Ihgn = 9n ep1. Jgd £ Det@JgD. n ep2. . "Dependency" Ø 8X.hi. X ¢ SMSFreeze@NI. The location of the hgn vector within the elements history variables field ed$$["hp". . SMSNoNodes<. 2T. Ngh = 7. 3T<. SMSExport@8eP1. 1<<. 1. 81. XI ¢ Table@SMSReal@nd$$@i. eP1. SMSNoDimensions<DD.3 . SMSNoDimensions<D. XD. 1TL H1 + h XnPi. "bY -force per unit mass Y". The Ni =1/8 (1 + x xi) (1 + h hi) (1 + z zi) is the shape function for i-th node where {xi. . jD. 8i. P1. i . iD. nD.e p W = WHee L s = sHee L s=s= = ∂ ∂s 1 3 3 2 I tr s s : s . bZ<. Ë The WQ[task_.2 . n ep3. n ep2. bX. Igh + iDD. P2. bY. hgn = hhgnP1 . Length@SMSGroupDataNamesD<DD.  < = 0 Ë .110 The hgn is the vector of the state variables for the Ig-th integration point atAceFEM Finitethe previous time the end of Element Environment step.Igh+ iD [email protected] lm L  Qg = 8P1.i] is calculated and stored into the Igh variable. n ep1. 3T. It contains the components of the plastic strain tensor n e p and the plastic multiplier lm p Ihgn = 9n ep1. 1T. 2T. P2. state = hhgnPNgh + 1T.hgt_] function calculates accordingly to the task required the yield function . 2T.3 .1 . 8Em. The location of the hgn vector within the elements history variables field ed$$["hp". hhgn ¢ Table@SMSReal@ed$$@"hp". n lm =M. 3T. 8l.th component of the current history variables in current Gauss point ed$$@hp ". P3.Hlm . Igh + iD Igh ¢ SMSInteger@HIg . n. n ep2. bY. 8i.3 .sy  = e p -n e p . Lgh<D.1L LghD. n ep1. bb £ 8bX.th component of the history variables at the end of the previous time step in current Gauss point i . P1. An additional history variable "state" stores information whether the material point is in elastic regime (state=0) or in plastic regime (state=1000+ ). bZ< ¢ SMSReal@Table@es$$@"Data". r0. the system of local equations Q or elastic strain energy W as follows: ee = e .2 . Ë Here the material constants are defined.3 . NghT. 3T. m< £ SMSHookeToLame@Em. sy.. 3T<.lmnL . The state variables are set to be the same as at the end of the previous time step. Ë This is plastic part of the elasto-plastic formulation.  = Simplify@SMSD@. epn = hgnP1T hgnP4T hgnP5T hgnP4T hgnP2T hgnP6T .  £ SMSSqrt@3 ê 2 Tr@s. 8i. SMSElse@D. Consistent linearization of the global system of equations requires evaluation of the implicit dependencies among the state variables and the components of the total strain tensor (DgDe := hg I jM H jL H jL ∂e ). "Symmetric" Ø TrueDD.ep. Lgh<DD.sDD . 2T.n ). hgnD. 80<D.∂e ï ∂Q hg I jM ∂e . P1. P2. . The SMSVariables[e] function returns the true independent variables in e with the symmetry of e correctly considered. The local system of equations Q is evaluated. Independent vector of state variables hg is first introduced. Qg £ Append@8P1. SMSD@W. SMSIfB HiNR == 1 && state ã 0L »» iNR > 1 &&  < 1 108 F. 2T. lmn = hgn@@7DD. SMSExport@Join@hgn. "Symmetric" Ø TrueD.epn . 1T. hgt_D := ep = hgtP1T hgtP4T hgtP5T hgtP4T hgtP2T hgtP6T . 3T. s = s . P2. "Symmetric" Ø TrueD. e . P3. [email protected]. hgnP5T hgnP6T hgnP3T  = ep . "Symmetric" Ø TrueD.Hlm . If@task == "Q". The trial value for hg is taken to be the one at the end of the previous time step (hg. If@task == "". D. Igh + iD. W £ Simplify@l ê 2 Tr@eeD ^ 2 + m Tr@ee. lm = hgtP7T. [email protected] ê 3 IdentityMatrix@3D Tr@sD. ee.AceFEM Finite Element Environment 111 WQ@task_. iNR ¢ SMSInteger@idata$$@"Iteration"DD. hg • hgn. linearized and solve using the Newton-Raphson procedure. Implicit dependencies are obtained by definition A hg I jM ∂e = . Table@ed$$@"ht". If@task == "W". WQ@"".eeDD. SMSFreeze@s. 3T. Ë This is elastic part of the elasto-plastic formulation. hgtP5T hgtP6T hgtP3T SMSFreeze@ee. P1. Return@DD. s. SMSDo@jNR. WQ@"Q". "AddIn" Ø TrueD. pe. D. Ë This is the end of the numerical integration loop. H*exit the sub-iterative loop when the local equations are satisfied*L SMSBreak@D. hg § SMSFreeze@hgj. The strain energy function is first evaluated for the final value (valid for both elastic and plastic case) of the state variables hg . . jD.112 AceFEM Finite Element Environment hgj • hgn. . Lgh<DD. SMSDo@ Kg £ SMSD@Rg. SMSVariables@eD. DhDeD. hgjD. SMSExport@81. 1. In this case. hgj § hgj + Dh. . 30.bb. hgjD. Table@ed$$@"ht". hgD. SMSEndDo@D. 8i. . 81000 + SMSAbs@D<D. H*exit the sub-iterative loop if the convergence was not reached*L SMSBreak@D. independent state variables and derive strain potential for them again.SMSD@Qg. SMSNoDOFGlobal<D. DhDe<D. "Dependency" Ø 8SMSVariables@eD. hgjD. 1. p$$@iD. SMSExport@Kg. SMSIf@jNR == "29" . jD. "Constant" Ø hgjDD.DhD < 1 ê 10 ^ 9 . The type D exception is used to specify partial derivatives ∂hg ∂e ( Exceptions in Differentiation ). D.*L SMSExport@Join@hgj. i. Igh + iD. "Constant" Ø hgD. pe. H*the opearator • is neceserry here because the dhe will be exported out from the loop *L DhDe • SMSLUSolve@LU. . s$$@i. 8idata$$@"SubDivergence"D. SMSEndIf@hgD. H*The values of the state variables are stored back to the history data of the element. LU £ SMSLUFactor@AgD. WQ@"W". wgp ¢ SMSReal@es$$@"IntPoints". i.QgD. 1. "AddIn" Ø TrueD. IgDD. Ag £ SMSD@Qg. SMSExport@SMSResidualSign Rg. 2<. SMSDo@ Rg £ Jgd wgp SMSD@W . SMSEndDo@hgj. idata$$@"ErrorStatus"D<D. Dh £ SMSLUSolve@LU. SMSIf@Sqrt@Dh. 8i. the automatic differentiation procedure will ignore the sub-iteration loop.r0 u. SMSNoDOFGlobal<D. Ë Here the Gauss point contribution to the global residual Rg and the global tangent matrix Kg are evaluated and exported to the output parameters of the user subroutine. 4. 8j. Ë Get new. "Eyzp". ei ¢ Table@SMSReal@ed$$@"Data". . hg = hgP1 . "Exy". Length@SMSGroupDataNamesD<DD. bY. 810. SMSNPostNames = 8"DeformedMeshX". "sy *" -> 10. "Accumulated plastic deformation". 815. Lgh<D. hg ¢ Table@SMSReal@ed$$@"ht". "Exxp". nD. SMTMesh@"A". state<D. iD.1L 6 + iDD. "DeformedMeshY". Ò1D &D. "Exz". npost$$D. . 2 -> 0. HIg . SMSGPostNames = 8"Sxx". "Syx". [email protected] Size: 33 170 Methods No. 88880. "Eyyp". 8Em. lm. SMTAnalysis@D. 880. "Exx". 8Ig. 6<D. SMSInteger@es$$@"id". bX. m< £ SMSHookeToLame@Em.<D. 880.c" file. "Eyy". 0. 2. "Szy". "Ezx". 2<<<<D. 2. 2. "at". 810. "NoIntPoints"DD<F. "Eyz". "Szz". ep. 0. 0<<<. 1 -> 0. 8i. eiP1T eiP4T eiP5T e £ eiP4T eiP2T eiP6T . 3 -> 0<. SMSExport@Table@Join@uIPiT. 3<. "w"<. SMSNoNodes<. 8i.1<D. "Exyp". 8 "X" == 10 &. hgn = hg. "Sxy". n. 8j. 810. "Ezz". "Ezzp". "Syz". SMSNoNodes<D. 2. bZ< ¢ SMSReal@Table@es$$@"Data". SMSDoB Igh ¢ SMSInteger@HIg .1L LghD. "ExamplesElastoPlastic3D". hgD.3. 810. "Szx". "DeformedMeshZ". 3 -> . uIPiTD. 8"E *" -> 1000. SMSWrite@D. 8i. SMSNoDimensions<DD. "u". r0. SMTAddEssentialBoundary@8 "X" == 0 &. 3<. 0<. File: ExamplesElastoPlastic3D. "Ezyp". 6. 8i.. SMTAddDomain@"A". 2<<. 0. "Syy". SMTInputData@D. eiP5T eiP6T eiP3T WQ@"". 0. "Ezxp". Ë Here the element source code is written in "ExamplesElastoPlastic3D. "Ezy". jD. SMSExport@Flatten@8s. state = hgPNgh + 1T. "v". "Sxz". 1. sy. 0<<. "State 0-elastic 1000+f -plastic"<.Formulae No. "Eyxp". "n *" -> .Leafs SKR 538 8905 SPP 54 820 ‡ Analysis << AceFEM`. "Eyx". 8i. "H1". e. 6<. NghT.. 8l. 0<. 8880. uI ¢ SMSReal@Table@nd$$@i. "Exzp".AceFEM Finite Element Environment 113 SMSStandardModule@"Postprocessing"D. Igh + iDD. 5ê0.114 AceFEM Finite Element Environment [email protected] µ 10-15 ê1.D.77281 µ 10-15 IterêTotal=3ê3 Status=0ê8Convergence< TêDT=2.1 ˛Da˛ê˛Y˛=1.1D. lêDl=0. step@@3DD .85154 µ 10-15 ê5. SMTStepBack@D. TêDT=1. lêDl=0.5<D.1 ˛Da˛ê˛Y˛=3. lêDl=0. SMTNextStep@1. 8"Adaptive".03555 µ 10-11 ê8.001.08353 µ 10-15 IterêTotal=3ê9 Status=0ê8Convergence< TêDT=4. . [email protected] ˛Da˛ê˛Y˛=2. 0. [email protected] µ 10-13 IterêTotal=5ê14 Status=0ê8Convergence< TêDT=5.1.1 ˛Da˛ê˛Y˛=1. [email protected] ˛Da˛ê˛Y˛=2.3ê0. If@step@@1DD. 0.D. If@stepP4T === "MinBound".ê1. While@ While@step = SMTConvergence@10 ^ .ê1.2ê0.14954 µ 10-9 ê2.02853 µ 10-15 ê3.4ê0.ê1. lêDl=0. .41942 µ 10-15 IterêTotal=3ê6 Status=0ê8Convergence< TêDT=3. lêDl=0.1646 µ 10-15 IterêTotal=6ê20 Status=0ê8Convergence< .ê1.1ê0.D. 8. step@@2DDD D.ê1. 10. "Sxx". 2D. Spacings -> 0. 8i. Automatic<D . ImageSize Ø 8400. 1. "Exxp". "Legend" -> "MinMax"D . "DeformedMesh" Ø True.AceFEM Finite Element Environment 115 GraphicsGrid@ Partition@ Table@ SMTShowMesh@"Field" -> 8"Acc*". 4<D . "Mesh" Ø False. "Exz"<@@iDD . finite strain elasto-plastic element ‡ Description Generate axisymmetric four node finite element for the analysis of the steady state problems in the mechanics of solids. gm = M.3 M are also stored for post-processing as arbitrary real values per element (SMSNoElementData).116 AceFEM Finite Element Environment Axisymmetric.1 . The state variables in this case are the components of an inverse plastic right Cauchy strain tensor C-1 . volumetric/deviatoric split Taylor expansion of shape functions J2 finite strain plasticity isotropic hardening of the form: sy = sy0 + K a + IY¶ . Additionally to the state variables.2 . Elasto-Plastic Element . a plastic multiplier gm I hg = 9C-1 .1 . << AceGen`. C-1 .sy0 M H1 . F1. 4 node element.Exp@-d aD L The detailed description of the steps is given in Three Dimensional. F3. C-1 . . isoparametric mapping from the reference to the actual frame global unknowns are displacements of the nodes. The state p p11 p22 p33 p12 variables are stored as history dependent real type values per each integration point of each element (SMSNoTimeStorage). the component of the deformation tensor IF1. The element has the following characteristics: fl fl fl fl fl fl fl fl quadrilateral topology. F2. ‡ Solution Ë All steps are described in detail in example Three Dimensional.The only difference is in kinematical equations and the definition of the FP function.2 . F2. C-1 . Elasto-Plastic Element . "NoIntPoints"DDD. Ngh = 5. SMSStandardModule@"Tangent and residual"D. "syInf -residual flow stress". "IgnoreNumbers" Ø True. SMSInitialize@"ExamplesFiniteStrain". [email protected].  £ Simplify@F. 2T.gnL . "SMSPostIterationCall" Ø True.F. "Symmetric" -> TrueD. "X". 8j. 3<D. If@task == "Q". "Symmetric" Ø TrueD. sy £ 2 ê 3 Hsy0 + Kf a + HYinf . "sy -initial yield stress". z< ¢ Table@SMSReal@es$$@"IntPoints". If@task == "W". H1 . If@task == "". "Environment" -> "AceFEM"D. Lhe = Lgh es$$@"id".Cgpi . 0. 1T. "bX -force per unit mass X". "SMSNoTimeStorage" Ø Lhe. hgnP1T hgnP4T 0 . SMSInteger@es$$@"id". SMSDo@Ig. P1.AceFEM Finite Element Environment 117 WQ@task_. Qg £ 8P1. Cgpin = IdentityMatrix@3D + hgnP4T hgnP2T 0 0 0 hgnP3T gn = hgnP5T. 1.sy. W = k ê 2 H1 ê 2 HJbe [email protected]. << AceGen`.Cgpi. SMSNoNodes<. SMSNoDimensions<D. "IgnoreNumbers" Ø True.CgpinD. F. 0< D.  £ SMSSqrt@Total@s s.hL. 2T.1L . be. "KeepStructure" -> TrueD.3. zDD. Cgpi = IdentityMatrix@3D + hgtP4T hgtP2T 0 0 0 hgtP3T g = hgtP5T.xL H1 . SMSTemplate@"SMSTopology" Ø "Q1". XI ¢ Table@SMSReal@nd$$@i. "Symmetric" Ø TrueDD. 1 s = t . IgDD. X ¢ SMSFreeze@[email protected]@. "SMSGroupDataNames" -> 8"E -elastic modulus".2 Hg . "d -saturation exponent". H1 + xL H1 .SMSMatrixExp@MD. hgt_D := hgtP1T hgtP4T 0 . "Ignore" Ø HÒ === 0 &L.xL H1 + hL<. "bY -force per unit mass Y"<. P3. "r0 -density". H1 + xL H1 + hL.Transpose@FD. 2DD . "NoIntPoints"D. "SMSDefaultData" -> 821 000. Jgd £ Det@JgD. "SMSNoElementData" Ø 5 es$$@"id". P2. i. Lgh = Ngh + 1. M £ . 1. t. jDD. 0.hL. 24.  = SMSD@. SMSFreeze@t. "n -poisson ration". "NoIntPoints"D. "VectorLength" Ø 3000. 3T. XD. Return@DD. NI £ 1 ê 4 8H1 .sy0L H1 . Simplify@2 be. "K -hardening coefficient". 8i. h. X = 8x. .d aDLL. 8i. 3 a= 2 ê 3 g. 0.IdentityMatrix@3D Tr@tD. <. "SMSSymmetricTangent" Ø True. [email protected] ê 2 Log@JbeDL + m ê 2 ITrAJbe-1ë3 beE . Jg £ SMSD@X. 0. SMSFreeze@be. 24. Jbe £ Det@beD. NYh<. FP1. NghT. IdentityMatrix@3D + Dg. nD.1. SMSExport@Join@hgn. HIg . d .1. Table@ed$$@"ht". 8NXx0. FP2. 5<DD.1L 5 + iD. 2T. NXh. 8NXx. . . 8Nx.un.un HNY0 + NYx0 x + NYh0 hL. bb £ 8bX. Kf.uI. 2T. 8h. FP3. Dv = 3 dv = HNX0 + NXx0 x + NXh0 hL. X0 J0d<. iNR ¢ SMSInteger@idata$$@"Iteration"DD.1. . SMSD@Ny. xD. 3T<. Igh ¢ SMSInteger@HIg . 1<. Yinf.vn + Nf. vn< = Transpose@uID. x hD êê Normal êê Simplify. 1<. 8j. Nf £ Simplify@ V Integrate@SMSRestore@Jgd NI. 1 Simplify@Integrate@SMSRestore@Jgd XP1T Nx.118 AceFEM Finite Element Environment 8X0. 1<DD. SMSGroupDataNames êê LengthD.. hD<. 8m. 2<D. h Ø 0D. x hD êê Normal êê Simplify. V0< £ Simplify@Integrate@SMSRestore@8 XP1T Jgd. 1<DD.1. h Ø 0D. 8un. NYh0< £ SMSReplaceAll@8NXx. 1 Simplify@Integrate@SMSRestore@Jgd XP1T Ny. [email protected]. WQ@"". k< £ SMSHookeToBulk@Em. SMSNoNodes<. 1 HNX0. SMSNoDimensions<DD. sy0. NXh0. 8h. NYx. J0d< £ SMSReplaceAll@8XP1T. x hD êê Normal êê Simplify. 80<D. NXh. NYx. bY< £ Array@SMSReal@es$$@"Data". x hD êê Normal êê Simplify. 0<.1. FP2. Ò1DD &. state = hhgnPNgh + 1T. pe = Flatten@uID. hgnD.1L LghD.1.unL [email protected] + Nf. 8i. 1<DD. 8Em. SMSExport@8FP1. 1T. Ny< = Table@SMSD@NI. "at". 8x. 0D. Jgd<. dv Dg £ Simplify@Dv + DdD. Igh + iD. . hD. bX. XPiT. SMSFreeze@F. 8i. hhgn ¢ Table@SMSReal@ed$$@"hp". bY. 1<DD. 8h. x Ø 0. r0. HNX0 + NXx0 x + NXh0 hL. u £ Append@NI. X. Lgh<DD. hgn = hhgnP1 .un 1 3 . 8i. . NX0 £ V 8x. . x Ø 0. xD. n.un Dd = NX0. hg • hgn. SMSD@Nx. SMSIfB HiNR == 1 && state ã 0L »» iNR > 1 &&  < 1 108 F. "KeepStructure" Ø TrueD. 8i. 8h. 8i.vn 0 1 3 0 dv 0 Nf.un + NY0. Igh + iDD. 8V. 1<. 1T. . 1<. uI ¢ SMSReal@Table@nd$$@i. "Dependency" Ø 8X. SMSElse@D. . NYx0. Lgh<D. NY0 £ V 1 8x. .1.vn 0 1 3 dv NY0. Table@ed$$@"Data". SMSInverse@JgD<D. NYh< = 8SMSD@Nx. 8x.un + HNY0 + NYx0 x + NYh0 hL. jD. p$$@iD. H*exit the sub-iterative loop if the convergence was not reached*L SMSBreak@D. 4. DhDFD. A £ SMSD@Qg. WQ@"W". Table@ed$$@"ht". hgj § hgj + Dh. wgp ¢ SMSReal@es$$@"IntPoints". Closed form solution of matrix exponent.QgD. 8idata$$@"SubDivergence"D. D. 2<. idata$$@"ErrorStatus"D<D. SMSIf@jNR == "29" . 30. SMSDo@ Kg £ SMSD@Rg. WQ@"Q". hgjD. Lgh<DD. 81000 + SMSAbs@D<D. H*exit the sub-iterative loop when the local equations are satisfied*L SMSBreak@D. pe. "Constant" Ø hgjDD. SMSEndDo@hgj.*L SMSExport@Join@hgj. SMSDo@jNR. pe. 1. SMSExport@81. Igh + iD. H*the opearator • is neceserry here because the dhe will be exported out from the loop *L DhDF • SMSLUSolve@LU. "AddIn" Ø TrueD. 1. Dh £ SMSLUSolve@LU. D. DhDF<D.r0 u. s$$@i. Rg £ 2 p V . hgD. SMSVariables@FD. 8i. SMSIf@Sqrt@Dh. "Constant" Ø hgD. 1. H*The values of the state variables are stored back to the history data of the element. . "AddIn" Ø TrueD. SMSDoB X0 J0d wgp SMSD@W . 8i. jD. 8j. jD.SMSD@Qg. SMSEndDo@D. SMSNoDOFGlobal<F. IgDD. [email protected] < 1 ê 10 ^ 9 . . SMSNoDOFGlobal<D. See also: SMSMatrixExp [email protected]. V0 SMSExport@SMSResidualSign Rg. hgjD. hgjD. i. "Dependency" Ø 8SMSVariables@FD. hg § SMSFreeze@hgj. i. . LU £ SMSLUFactor@AD. .AceFEM Finite Element Environment 119 hgj • hgn. hgD. "Syz". 5<D. "Exxp". k< £ SMSHookeToBulk@Em. "Ezy". animations With the use of the elements generated in Problem 8 the following cyclic plasticity example is analysed. . "Sxy". SMSNoDimensions<DD. "Exx". . 8m. FiP1T FiP2T 0 F £ FiP3T FiP4T . "Exyp". "Eyxp". Yinf. "Sxz". d . uI ¢ SMSReal@Table@[email protected]@3DL. 8Em. gpost$$@Ig. npost$$D. nD. SMSWrite@D. HIg . "NoIntPoints"DD<F. "Eyx". File: ExamplesFiniteStrain. Fi ¢ Table@SMSReal@ed$$@"Data".IdentityMatrix@3DL. hg = hhgP1 . SMSGroupDataNames êê LengthD. "Eyz". bX. Lgh<D. 8i. advanced post-processing . SMSInteger@es$$@"id". "Eyy". 8j. 0 0 0 FiP5T WQ@"".1L 5 + iDD. SMSGPostNames = 8"Sxx". SMSExportBFlattenB:s. "v"<. "Szx". Igh + iDD. Egp = 1 ê 2 HInverse@CgpiD .F .c Size: 71 142 Methods No. "Ezz". "Syx". bY< £ Array@SMSReal@es$$@"Data". "Accumulated plastic deformation". Ò1DD &. "Exzp". sy0. "Szz". Kf. uIPiTD. Eg £ 1 ê 2 HTranspose@FD. SMSNoNodes<. r0. state = hhgPNgh + 1T. "Szy". Eg. n. "Eyzp". state>F. hgn = hg. "Ezx". SMSExport@Table@Join@uIPiT. 2 ê 3 g. 8i. "Ezzp". "at". Ò1D &F. 8i. 8i.Leafs SKR 1365 21 061 SPP 64 1067 Cyclic tension test. "State 0-elastic 1000+f -plastic"<. Egp. s £ t ê Det@FD. "Syy". "DeformedMeshY". "Ezyp". "u". SMSNPostNames = 8"DeformedMeshX". SMSNoNodes<D.120 AceFEM Finite Element Environment SMSStandardModule@"Postprocessing"D. 8Ig. jD. SMSDoB Igh ¢ SMSInteger@HIg . "Exy". "Exz".1L LghD. "Ezxp". hhg ¢ Table@SMSReal@ed$$@"ht". 1. NghT. "Eyyp".Formulae No.. 89<.4<<<.4<. 80.715. 8880. ne = 10. 80.5. 1.4.6<<. RD.9.4. "K *" -> 0. ne<. 0.93<D.4. 0. 0. L = 1.16.98<. "InterpolationOrder" Ø 1D.6<<<. SMTMesh@"A".8<<. "Q1". 2 -> DL <D. SMTMesh@"A". 2 -> 0<. SMTAddDomain@"A".06<. "sy *" -> 0.8<<<.out". 80. 1.4<. &. DL = 0. SMTAddEssentialBoundary@8 "X" == 0. 80. 8"E *" -> 206.5.12924.4.1<<<. 0<.8<. 880. 0. 1 -> 0<. "d *" -> 16.5.4. "Q1". 8880.43. 80. "syInf *" -> 0. 1. 8 ne ê 2. 880. SMTAnalysis@"Output" -> "tmp. Here the post-processing data base file name ("cyclic") is specified. 1. 8 ne. 8 2 ne. 8880. SMTMesh@"A". L.29. 0<.6. 1. "InterpolationOrder" Ø 1D.89<. 0. With the SMTSave command definitions of arbitrary number of symbols can be storder into the post-processing data base. 0. "PostOutput" Ø "cyclic"D. 80. . 0. "InterpolationOrder" Ø 1D. "Q1".98<. 8880.45. 0. 80. 8 "Y" == 0. 80. R = 0. 80. 80.AceFEM Finite Element Environment 121 ‡ Analysis Session << AceFEM`. 1. ne<.49. "Q1". 8 "Y" ã L &. 80.06<.4<<. 1. 8 ne. 0. SMTInputData@D. "n *" -> .1<<. 880. 0. 80. 80.1<. 80. 880. 0. "ExamplesFiniteStrain". 0. SMTMesh@"A". ne<. [email protected]<. "InterpolationOrder" Ø 1D.1<. &. ne<. 1.41. . 1. l@t_D := If@OddQ@Floor@Ht + 1L ê 2DD. Additonaly the resulting force at the top of the speciment is olso stored into data base. .122 AceFEM Finite Element Environment SMTShowMesh@"BoundaryConditions" Ø TrueD Here the cyclic loading simulation is performed.tL . Current time is used as an keyword that will be used later to retrive informations from data base. [email protected] H2 Floor@Ht + 1L ê 2D . The SMTPut command writes current values of post-processing data into the data base. Function l(t) defines the load history with l as the load multiplier. 8"Adaptive Time".D.5 2 4 6 8 10 -0. [email protected]. .D. 15. 10<D. 8. 0.8. . [email protected] 0. D.5 -1. SMTNextStep@stepP2T. lD. "Field" Ø "Acc*". If@Not@step@@1DDD .01. SMTStatusReport@"DT<DTmin "D. 0. 10<D 1. "Show" Ø "Window"D. "TimeFrequency" Ø 0. step@@3DD . 8t. If@step@@4DD === "MinBound".1D. While@ While@step = SMTConvergence@10 ^ . force. SMTPut@SMTRData@"Time"D. force = HPlus üü SMTResidual@"Y" ã L &DL@@2DD. SMTShowMesh@"DeformedMesh" Ø True. If@step@@1DD.1. lD D.D.AceFEM Finite Element Environment 123 Plot@[email protected] SMTNextStep@0. Eyyp. Syz.28894 13. Exx. of steps No. Szx. v< 97 . of nodes No. SMTAnalysis@"PostInput" -> "cyclic"D.3333 864 6. DeformedMeshY. Exz. Sxz. Ezzp. of steps back Step efficiency H%L Total no. Ezz. Ezxp. Exzp. Eyy.124 AceFEM Finite Element Environment SMTSimulationReport@D. Syy. Exxp. Eyz. Ezyp. << AceFEM`. Exyp. Syx. of iterations Average iterationsêstep Total time HsL Total linear solver time HsL Total linear solver time H%L Total assembly time HsL Total assembly time H%L Average timeêiteration HsL Average linear solver time HsL Average K and R time HsL Total Mathematica time HsL Total Mathematica time H%L USER-IData USER-RData 506 450 944 391 8ê8 11 699 115 23 83.0000338632 16. No.607 4. SMTInputData@D. allpost allkeys êê Length 8Accumulated plastic deformation. of elements No. Eyxp.26087 84.166 15. of equations Data memory HKBytesL Number of threads usedêmax Solver memory HKBytesL No. DeformedMeshX. Exy. Eyx. independent session starts by reading input data from previously stored post-processing data base file.521 19.6445 ‡ Postprocessing Session Here the new. allpost< = SMTGet@D. Szz. u.6552 0. 8allkeys. The SMTGet[] command returns all keywords and the names of stored post-processing quantities.1 3. Ezx. Ezy. State 0-elastic 1000+f -plastic. Sxx. Eyzp.097338 0. Szy.00417477 0. Sxy. 0. 0.3199 Min.242828< 1.268 0.229 0.191 0. force = SMTGet@allkeys@@10DDD allkeys@@10DD SMTShowMesh@"BoundaryConditions" Ø True. "Contour" Ø TrueD 8. 0 AceFEM .114 0.383e-1 Acc* Max.153 0.766e-1 0. "DeformedMesh" Ø True.07279 0. "Field" -> "Acc*".AceFEM Finite Element Environment 125 The SMTGet[key] command reads the information storder under the keyword allkeys[[10]]. "Marks" Ø False. 0.0.000202251 0. 0. 0. 0.126 AceFEM Finite Element Environment Here all post-processing quantities are evaluated at point {R. .259427 . 0. [email protected] 0.0. 0. 0.265322 . Note that the valu of "R" was stored by the SMTSave command at the analysis time and restored by the SMTAnalysis["PostInput"->"cyclic"] command.394906 0.394906 0. 0.0541688 0.0. 0.000202251 0.0}. 0. 0. .319531 0. 0. 0. 0.0. .0541688 0. . 8R.0.0.00266447 .348849 0.106615 .0. 8Range@allpost êê LengthD. 0. 0. 0<D< êê Transpose êê TableForm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Accumulated plastic deformation DeformedMeshX DeformedMeshY Exx Exxp Exy Exyp Exz Exzp Eyx Eyxp Eyy Eyyp Eyz Eyzp Ezx Ezxp Ezy Ezyp Ezz Ezzp State 0-elastic 1000+f -plastic Sxx Sxy Sxz Syx Syy Syz Szx Szy Szz u v 0. allpost. L ê 3.<D< &.0 -0.01 . SMTGet@ÒD.0 -0.4 Here the evolution of some Iu. allkeysDD 0.AceFEM Finite Element Environment 127 Here the f(l) diagram is presented.2 -0. ListLinePlot@ Map@Hforce = SMTGet@ÒD@@1DD. force<L &.L/3} is presented. 8R ê 2. ListLinePlot@Map@8Ò. plastic deformation. 8SMTRData@"Multiplier"D.5 1.4 0.01 2 4 6 8 10 -0.2 -1. v. SMTPostData@"u". allkeysDD 0. syy M postprocessing quantities in point {R/2.5 0.02 0. 6 0.1 2 4 6 8 10 . 8R ê 2.4 0. allkeysDD 0.7 0. allkeysDD 0. SMTGet@ÒD.15 0.20 0.128 AceFEM Finite Element Environment ListLinePlot@Map@8Ò. SMTPostData@"v".2 0.3 0. SMTGet@ÒD.<D< &.05 4 6 8 10 ListLinePlot@Map@8Ò.10 0. L ê 3. 8R ê 2. SMTPostData@"Acc*".5 0. L ê 3.<D< &.05 2 -0. " l=". SMTShowMesh@"DeformedMesh" Ø True. "Contour" -> True .AceFEM Finite Element Environment 129 ListLinePlot@Map@8Ò. If@FileType@"pldef"D === Directory. PlotRange Ø 88. SMTPostData@"Sxx".3 Here the sequence of pictures in GIF format is generated and stored in a subdirectory of the current directory with the name pldef.2 -0. 2 R<. L &. 8R ê 2. "Field" Ø "Acc*".. DeleteDirectory@"pldef". L ê 3. 80.1 2 4 6 8 10 -0. SMTRData@"Time"D. L + DL<< . DeleteContents Ø TrueDD. allkeysD.<D< &. Map@HSMTGet@ÒD. allkeysDD 0.1 R.1 -0. "pldef"<D. "Label" Ø 8"t=". SMTRData@"Multiplier"D< . SMTGet@ÒD. "Show" Ø 8"Animation". . SMTMakeAnimation@"pldef".siêsymechê . . "Flash"D $Aborted Please follow the link to the animation galery http:êêwww. SMTMakeAnimation@"pldef"D The sequence of pictures is here transformed into Flash file.fgg.130 AceFEM Finite Element Environment The sequence of pictures is here transformed into the Mathematica type animation.uni-lj. "SMSGroupDataNames" -> 8"E -elastic modulus". 8i. Length@SMSGroupDataNamesD<DD. 0. an ¢ 8hhgnP3T. 0. "t -thickness of the element". n. "bX -force per unit mass X". Dt ¢ SMSReal@ rdata$$@"TimeIncrement"D D.3. "SMSDefaultData" -> 821 000. X. uIn ¢ SMSReal@Table@[email protected]<D. tz. 8j. v £ d ê Ha DtL Hu .uI.hL. pe = [email protected] ^ 2 + m 2 2 T £ r0 u. hhgn ¢ Table@SMSReal@ed$$@"hp". Jg £ SMSD@X. 0. SMSNoNodes<. "ap". SMSInitialize@"ExamplesHypersolidDynNewmark". . a. SMSNoNodes<. 1.a. X. "b -Newmark beta". u £ Append@NI. 8i. zDD.xL H1 . "SMSSymmetricTangent" Ø True . 3<D. Lgh = 4.unL + H1 . SMSNoDimensions<D. IdentityMatrix@3D + Dg. "Dependency" Ø 8X. a ¢ 1 ê Ha Dt ^ 2L Hu . uI ¢ SMSReal@Table@[email protected] anL. 8i. IgDD. "at". Igh ¢ SMSInteger@HIg . "X". SMSNoDimensions<DD. JF £ Det@FD. m< £ SMSHookeToLame@Em. W £ l HJF . z< ¢ Table@SMSReal@es$$@"IntPoints". nD. X ¢ SMSFreeze@Append@NI. hhgnP4T. Igh + iDD.uIn. 8i. 0<. Finite Strain Element for Dynamic Analysis See also 2D snooker simulation . H1 + xL H1 . 0. un £ Append@NI. 8j. 8l. XI ¢ Table@SMSReal@nd$$@i. SMSNoNodes<. iD.1L LghD. XD. i. Cg £ Transpose@FD. 0D. 1 1 HTr@CgD .hL. bX. jD. "KeepStructure" Ø TrueD. << "AceGen`". H1 . bY. vn ¢ 8hhgnP1T. NI £ 1 ê 4 8H1 . "n -poisson ratio". TestExamples ElementDefinitions@D := X = 8x.Dt ^ 2 H1 ê 2 .Dt vn .d ê aL vn + Dt H1 . bY. d< ¢ SMSReal@Table@es$$@"Data". 0. "NoIntPoints"D . jDD. 8Em.AceFEM Finite Element Environment 131 Solid. 2700. H1 + xL H1 + hL.25. "r0 -density". "bY -force per unit mass Y". 0<.d ê H2 aLL an.XI.F. SMSTemplate@"SMSTopology" Ø "Q1". hhgnP2T. 8i.Log@JFD . "d -Newmark delta"< . bb £ 8bX. jD. h.2L . Jgd £ [email protected] H1 + hL<. r0. 0D. SMSNoDimensions<DD. Lgh<D. "SMSNoTimeStorage" Ø Lgh es$$@"id". 8j.un . SMSInverse@JgD<D. 8i. Dg £ SMSD@u. "Environment" Ø "AceFEM"D. 0<. SMSFreeze@F. 81. 1. "u". 82. 3<<DD. 2<<D. SMSInteger@es$$@"id". "DeformedMeshY". wgp ¢ SMSReal@es$$@"IntPoints". Table@ed$$@"ht". i. 2<. "IgnoreNumbers" -> TrueD . << AceGen`. "AddIn" Ø TrueD.IdentityMatrix@3DL. 4<DD. 1. pe. SMSWrite@D. "AddIn" Ø TrueD. "Sxx". SMSIfAJF § 10-9 . "Exy". i. "Eyy". 8j. 8<D. "Constant" Ø aD. 8<D.r0 u. 1<. SMSNoNodes<D. jD. SMSExport@8vP1T. idata$$@"ErrorStatus"DDE. Extract@s. SMSDo@ Rg £ Jgd tz wgp SMSD@W + T . . vP2T. ElementDefinitions@D. 8i. 881. SMSNPostNames = 8"DeformedMeshX". SMSExport@Kg. 4. "Szz"<. s £ H1 ê JFL * SMSD@W. SMSDo@Ig. 81. SMSDo@Ig. Transpose@FD. "v"<. "NoIntPoints"DDD. SMSStandardModule@"Postprocessing"D. pe. SMSInteger@es$$@"id". 8i. SMSGPostNames = 8"Exx". F. 1<.bb. SMSEndDo@D. 8i.Leafs SKR 125 2019 SPP 68 967 Elements that Call User External Subroutines The methods for definition and use of user defined external functions within the automatically generated codes is described in detail in section User Defined Functions . File: ExamplesHypersolidDynNewmark. SMSDo@ Kg £ SMSD@Rg. gpost$$@Ig. aP2T<. npost$$D. 2<. SMSEndDo@D. jD. 83. Eg £ 1 ê 2 HCg . Igh + iD.132 AceFEM Finite Element Environment SMSStandardModule@"Tangent and residual"D. "Syy". 881.c" with the following contents . uIPiTD. SMSExport@SMSResidualSign Rg. aP1T. "NoIntPoints"DDD.Formulae No. s$$@i. IgDD. 2<. 1. Ò1D &D. "Sxy". 82. SMSExport@Join@Extract@Eg. This will create a C source file "Energy. . SMSExport@Table@[email protected] Size: 12 965 Methods No. ElementDefinitions@D. p$$@iD. SMSExport@2. Two solution will be presented: .double dW@3D. double *W. double c@5D. ddW@2D@2D=C1êH4.double *IIICp.IIIIC) where IC and IIC and IIIC are invariants of the right Cauchy-Green tensor C and first and second derivative of the strain energy with respect to the input parameters IC and IIC and IIIC.h" with the following contents Export@"Energy.h". quadrilateral element is generated (for details see Simple 2D [email protected] Finite Element Environment 133 Export@"Energy.I3. double *IICp.C2. double ddW@3D@3DL 8 double I1. + HC1*H-1 + I3 .IIC.j++LddW@iD@jD=0.C3.double *IIICp.I3=*IIICp.C2êH2.C1.C2=c@1D. Subroutine Energy calculates the strain energy W(IC.". <".*I3*I3L.logHI3LLLê4.. dW@2D=HC1*H1 . forHi=0.*I3L. . plain strain.i++L8forHj=0.<.i<3. dW@0D=C2ê2. "Text"D.c and the C header file "Energy. double *W. double ddW@3D@3DL. Finite Strain Element ).c". double *IICp.j<3... int i. "Text"D Energy.j. "void EnergyHdouble *ICp.1êI3LLê4. double c@5D. *W=HC2*H-3 + I1LLê2. .*I3*I3L + C2êH2. dW@1D=0.. I1=*ICp. "void EnergyHdouble *ICp.double [email protected]*logHI3LLê2. izoparameteric. 2D. uI ¢ SMSReal@Table@nd$$@i. "NoIntPoints"DDD. SMSNoDimensions<DD.134 AceFEM Finite Element Environment ‡ Solution 1: Generated source and user supplied "Energy. File: ExamplesUserSub1. F £ IdentityMatrix@3D + Dg. "AdditionalSourceFiles" Ø 8"Energy. 10< D. IIC. IC. "System" Ø FalseD. IIIC< ¢ SMSFreeze@8Tr@CgD. "AddIn" Ø TrueD. 1. z< ¢ Table@SMSReal@es$$@"IntPoints". W £ SMSReal@W$$. "c2 -constant 2". IIC. IIC. ddW £ SMSReal@Array@ddW$$@Ò1. IgDD. X = 8x. peD. X. H1 . IIIC<. SMSTemplate@"SMSTopology" Ø "Q1". IgDD. 8j. SMSNoNodes<.h"<D. 83.Leafs SKR 229 4129 SMTMakeDll@"ExamplesUserSub1".XI. "SMSGroupDataNames" -> 8"c1 -constant 1".hL. .c"<D.F. 0. "Dependency" Ø 88IC. Kg £ SMSD@Rg. XI ¢ Table@SMSReal@nd$$@i. 8i. Jgd £ Det@JgD. Dg £ SMSD@u. 8i. SMSInteger@es$$@"id". JF £ [email protected]. "AddIn" Ø TrueD. "X". 4. 0D. IIIC. SMSStandardModule@"Tangent and residual"D. Ò2D &. "Subordinate" Ø WCallD. "Subordinate" Ø WCall.c" are compiled separately and then linked together to produce elements dll file << AceGen`.c Size: 14 281 Methods No. SMSInverse@JgD<D. "Environment" Ø "AceFEM"D. i. 8IC. SMSInitialize@"ExamplesUserSub1". Det@CgD<D. SMSExport@SMSResidualSign Rg. "SMSDefaultData" -> 8600. 3<D. X ¢ SMSFreeze@Append@NI. SMSExport@Kg. "c3 -constant 3". NI £ 1 ê 4 8H1 . 300. 8i. Rg £ Jgd wgp SMSD@W. "c5 -constant 5"< .xL H1 + hL<. "c4 -constant 4". SMSEndDo@D. peD. pe = [email protected] H1 . Cg £ Transpose@FD. 8i. XD. "SMSSymmetricTangent" Ø True . IIC. 83<D. "Subordinate" Ø WCall. u £ Append@NI. 3<D. 50. iD. IIIC<.uI. dW £ SMSReal@Array@dW$$@Ò1D &. H1 + xL H1 . << AceFEM`. WCall £ SMSCall@"Energy".  £ SMSReal@Table@es$$@"Data". h.Formulae No. jD. 100. "at". SMSNoDimensions<D. . Length@SMSGroupDataNamesD<DD. "Dependency" Ø 8X. p$$. SMSWrite@"IncludeHeaders" Ø 8"Energy. Real@dW$$@3DD. Real@W$$D. SMSDo@Ig. H1 + xL H1 + hL. wgp ¢ SMSReal@es$$@"IntPoints". dW<DD. s$$. Jg £ SMSD@X. X. SMSNoNodes<. "Dependency" Ø Transpose@88IC. Real@ddW$$@3. 8j. zDD. 3DD. jDD. ddW<D. "DeformedMesh" -> TrueD ‡ Solution 2: User supplied source code file is included into the generated source code . 10D. "ExamplesUserSub1". SMTAddNaturalBoundary@Line@880. 2 -> 0D. "Q1". 83. SMTNextStep@100. 2<<<D. 2<. 8<<D. SMTAddDomain@8"1". 1 -> Line@81<D. 100D. 810. 0<. 2<. 2<<D . 83. 0<<. 8880. [email protected] Finite Element Environment 135 SMTInputData@D. SMTShowMesh@"BoundaryConditions" -> True.12. 2 -> Line@82<DD. 83. While@SMTConvergence@10 ^ . 880. SMTNewtonIteration@DD. 1 -> 0. SMTAddEssentialBoundary@"Y" ã 0 &. 10<. SMTMesh@"1". pe = Flatten@uID. WCall £ SMSCall@"Energy".uI. peD. SMSInverse@JgD<D. 1. Rg £ Jgd wgp SMSD@W. Cg £ [email protected]"<D.  £ SMSReal@Table@es$$@"Data". h. "c4 -constant 4".Leafs SKR 229 4129 << AceFEM`. JF £ Det@FD. uI ¢ SMSReal@Table@nd$$@i. SMSWrite@"IncludeHeaders" Ø 8"Energy.h"<. "at". SMSInitialize@"ExamplesUserSub2". jD.136 AceFEM Finite Element Environment << AceGen`. "System" Ø FalseD.c Size: 14 705 Methods No. p$$. Jg £ SMSD@X. "Dependency" Ø 8X. "X". IIC. Ò2D &. z< ¢ Table@SMSReal@es$$@"IntPoints". 8j. dW £ SMSReal@Array@dW$$@Ò1D &. "Subordinate" Ø WCallD. "AddIn" Ø TrueD. SMSTemplate@"SMSTopology" Ø "Q1".xL H1 . 8i. "c5 -constant 5"< . "Dependency" Ø 88IC. 100. 0. 300. "SMSGroupDataNames" -> 8"c1 -constant 1". F £ IdentityMatrix@3D + Dg. i. SMSExport@Kg. SMSEndDo@D. IIIC<.Formulae No. IIC. Real@W$$D. SMSStandardModule@"Tangent and residual"D. SMSNoNodes<. ddW<D. SMSInteger@es$$@"id". H1 . NI £ 1 ê 4 8H1 .hL. H1 + xL H1 . Kg £ SMSD@Rg. 3<D. X = 8x. SMSNoDimensions<DD. IIIC< ¢ SMSFreeze@8Tr@CgD. jDD. "SMSDefaultData" -> 8600. 3DD. . IIIC. H1 + xL H1 + hL. 83. File: ExamplesUserSub2. Dg £ SMSD@u. ddW £ SMSReal@Array@ddW$$@Ò1. Det@CgD<D. "SMSSymmetricTangent" Ø True . Real@dW$$@3DD. 8i. 0D. 8i. zDD. . SMSExport@SMSResidualSign Rg. W £ SMSReal@W$$.F. iD. dW<DD.hL. 83<D. IgDD. "Environment" Ø "AceFEM"D. XI ¢ Table@SMSReal@nd$$@i. "Splice" -> 8"Energy. 50. wgp ¢ SMSReal@es$$@"IntPoints". 3<D. "NoIntPoints"DDD. 8IC. SMSNoNodes<. IC. XD. 4. "c3 -constant 3". s$$. 8i. "c2 -constant 2".xL H1 + hL<. Length@SMSGroupDataNamesD<DD. "Dependency" Ø Transpose@88IC. "AddIn" Ø TrueD. IIIC<. 10< D. Jgd £ Det@JgD. SMSNoDimensions<D. Real@ddW$$@3. "Subordinate" Ø WCall. X. IIC. X. "Subordinate" Ø WCall.XI. u £ Append@NI. SMSDo@Ig. X ¢ SMSFreeze@Append@NI. IIC. IgDD. 8j. peD. 100D. 1 -> 0.12. line master segment element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . 8880. SMTNextStep@100. "ExamplesUserSub2". SMTShowMesh@"BoundaryConditions" -> True. 2 -> 0D. 83. SMTMesh@"1". 10D. 810. . "Q1". 83. 10<. 2<. 8<<D. 0<. 0<<. 2<<D . While@SMTConvergence@10 ^ . SMTAddEssentialBoundary@"Y" ã 0 &. SMTAddNaturalBoundary@[email protected] Finite Element Environment 137 SMTInputData@D. 1 -> Line@81<D. 2<<<D. 2 -> Line@82<DD. SMTNewtonIteration@DD. 880. SMTAddDomain@8"1". 2<. 83. "DeformedMesh" -> TrueD Examples of Contact Formulations 2D slave node. SMTAnalysis@D. 138 AceFEM Finite Element Environment Description Generate the node-to-segment element for analysis of the 2-D frictionless contact problems. Solution . and gN is normal gap (at the point of orthogonal projection of slave point on master boundary). the impenetrability condition is regularized with penalty method and formulated as energy potential: P= : N ⁄i=1 1 2 r gN 2 for gN § 0 for gN > 0 0 where r is penalty parameter. The following user subroutines have to be generated: fl fl user subroutine for specification of nodal positions. The element has the following characteristics: fl fl fl fl 3 node element: one slave node + two dummy nodes (for linear master segment) global unknowns are displacements of the nodes. user subroutine for the direct implicit analysis. the element should allow arbitrary large displacements. N is a number of nodes on slave contact surface. 0<LP81. 8SMSNoNodes. "id". 2DD &. u2< £ Array@SMSReal@nd$$@Ò1. 1D. p$$@iDD. Yi + viP<. Yi + vi<. Ò2DD &. 1D. vi £ Array@SMSReal@nd$$@Ò1. SMSExport@8Flatten@8x. xP £ 8Xi + uiP. SMSTemplate@"SMSTopology" Ø "LX". t £ x2 . "at". "Dummy"DD == 1D. SMSExport@Kij. H* check if contact is not detected by the global search *L SMSIf@SMSInteger@ns$$@2. SMSNoDimensions<D. SMSIf@gN > 0D.AceFEM Finite Element Environment 139 Solution << AceGen` SMSInitialize@"ExamplesCTD2N1L1Pen".Null<&". u2<D. 1. "SMSAdditionalNodes" Ø "8Null. SMSReturn@D. 8r< £ Array@SMSReal@es$$@"Data". "ap". "X". "Environment" Ø "AceFEM"D. "SMSNodeID" Ø 8"D". "D -D"<. 1 P £ r gN2 . 6D. 2DD &. x2 = X2 + u2. uiP £ Array@SMSReal@nd$$@Ò1. x1 = X1 + u1. 2. l £ SMSSqrt@Hx2 . viP £ Array@SMSReal@nd$$@Ò1.x1L. i. SMSStandardModule@"Nodal information"D. 2<. u. "X". .Hx2 . u1. jD. u1. SMSDefaultData = 81000<. "D -D".xs + xx. ui £ Array@SMSReal@nd$$@Ò1. Ò1DD &. u. 1D. 2<T.x1. "at". "at". "SMSCharSwitch" Ø 8"CTD2N1". "X". SMSDo@j. 8us. SMSExport@SMSResidualSign Ri. 2DD &. Yi £ Array@SMSReal@nd$$@Ò1.eN.x1L x.eT . "SMSNoNodes" Ø 3. xP<D<. "SMSSegments" Ø 8<. u £ Flatten@8us. X1. t . 1D. s$$@i. SMSGroupDataNames = 8"r -penalty parameter"<. x£ l xx £ x1 + Hx2 . 1< ä 8eTP1T. gN £ r. SMSEndIf@D. eT £ t. "SMSNoDimensions" Ø 2. 6D. eTP2T. 8SMSNoNodes. X2< £ Array@SMSReal@nd$$@Ò1. iD. x £ 8Xi + ui. SMSNoDimensions<D. Xi £ Array@SMSReal@nd$$@Ò1. "CTD2L1". "ContactElement"<D. 1DD &. d$$D. Ò2DD &. 1DD &. Ri £ SMSD@P. r £ .t eN £ H80.x1L. 8Xs. Kij = SMSD@Ri. 1D. xs = Xs + us. 0. jDD. 2 SMSDo@i. Hxs . SMSStandardModule@"Tangent and residual"D. "SMSDOFGlobal" Ø 82. 1D. SMSElse@D. "ap".x1LD. SMSReturn@D. 1D. "SMSSymmetricTangent" Ø True. 1DD &. .Formulae No. [email protected] Size: 6677 Methods No. Finite Strain Element for Direct and Sensitivity Analysis section to analyse the simple 2D indentation problem: small elastic box pressed down into large elastic box.140 AceFEM Finite Element Environment SMSEndDo@D. SMSWrite@D. line master segment element section and hypersolid element from Solid. Postprocessing of the integration point quantities is suspended for the element. SMSEndIf@D. See also: SMSDefaultIntegrationCode File: ExamplesCTD2N1L1Pen. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : LX See also: Template Constants Default integration code is set to 21 .Leafs PAN 3 60 SKR 63 894 2D indentation problem The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . Description Use the contact element from 2D slave node. AceFEM Finite Element Environment 141 . 142 AceFEM Finite Element Environment Solution << AceFEM`; SMTInputData@D; SMTAddDomain@ 8"Solid1", "ExamplesHypersolid2D", 8"E *" -> 70 000, "n *" -> 0.3<<, 8"Solid2", "ExamplesHypersolid2D", 8"E *" -> 210 000, "n *" -> 0.3<<, 8"Contact", "ExamplesCTD2N1L1Pen", 8"r *" -> 200 000<<D; SMTMesh@"Solid1", "Q1", 813, 7<, 888- 1 ê 2, 0.1<, 81 ê 2, 0.1<<, 88- 1 ê 2, 0.6<, 81 ê 2, 0.6<<<, "BodyID" Ø "B1", "BoundaryDomainID" -> "Contact"D; SMTMesh@"Solid2", "Q1", 810, 10<, 888- 1, - 1<, 81, - 1<<, 88- 1, 0<, 81, 0<<<, "BodyID" Ø "B2", "BoundaryDomainID" -> "Contact"D; SMTAddEssentialBoundary@ 8"Y" == - 1 &, 1 -> 0, 2 -> 0<, 8"Y" == 0.6 &, 1 -> 0, 2 -> - 1<D; SMTAnalysis@"Output" -> "tmp1.out"D; SMTRData@"ContactSearchTolerance", 0.01D; SMTNextStep@0, 0.1D; While@ While@step = SMTConvergence@10 ^ - 8, 10, 8"Adaptive", 7, 0.0001, 0.2, 0.35<D, SMTNewtonIteration@D;D; If@stepP4T === "MinBound", SMTStatusReport@"Dl < Dlmin"D;D; step@@3DD, If@step@@1DD, SMTStepBack@D, SMTShowMesh@ "DeformedMesh" Ø True, "Marks" Ø False, "Domains" Ø 8"Solid1", "Solid2"<, "Show" Ø "Window", "Field" -> "Syy", "Contour" Ø TrueD;D; SMTNextStep@1, step@@2DDD D; SMTShowMesh@"DeformedMesh" Ø True, "Field" -> "Syy", "Contour" Ø TrueD -0.24e4 -0.67e4 -0.11e5 -0.15e5 -0.19e5 -0.24e5 -0.28e5 Syy Max. 0.2316e4 Min. -0.522e5 AceFEM 2D slave node, smooth master segment element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . Description AceFEM Finite Element Environment 143 Description Generate the node-to-segment smooth element for analysis of the 2-D contact problems (Coulomb friction, augmented Lagrange multipliers method). The element has the following characteristics: fl 8 node element: one slave node + two dummy slave nodes (referential area) + four master nodes (3rd order Bezier curve) + lagrange multipliers node, fl fl global unknowns are displacements of the nodes + lagrange multipliers, the element should allow arbitrary large displacements, fl the impenetrability condition is regularized with augmented lagrange multipliers method and formulated as energy potential (for each node on slave contact surface): P = P N + PT where: 1 2r PN = and : : I < gN + lN >- 2 -lN 2 M for gN § 0 0 for gN > 0 PT = and 1 2r I < gT + lT >- 2 -lT 2 M for gT § 0 0 for gT > 0 < x >- = :0 x for x § 0 for x > 0 and r is regularisation parameter, gN is normal gap (at the point of orthogonal projection of slave point on master boundary), gT is tangential slip. lN and lT are lagrange multipliers and have a meaning of normal and tangential nominal pressure respectively. The following user subroutines have to be generated: fl fl user subroutine for specification of nodal positions, user subroutine for the direct implicit analysis, 144 AceFEM Finite Element Environment Solution << AceGen`; driver = 2; SMSInitialize@"ExamplesCTD2N1DN2L1DN1AL", "Environment" Ø "AceFEM", "VectorLength" Ø 5000D; SMSTemplate@ "SMSTopology" Ø "LX", "SMSNoDimensions" Ø 2, "SMSNoNodes" Ø 8, "SMSDOFGlobal" Ø 82, 2, 2, 2, 2, 2, 2, 2<, "SMSSegments" Ø 8<, "SMSAdditionalNodes" Ø Hold@8Null, Null, Null, Null, Null, Null, Ò1< &D, "SMSNodeID" Ø 8"D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "Lagr -AL -S"<, "SMSCharSwitch" Ø 8"CTD2N1DN2", "CTD2L1DN1", "ContactElement"<, "SMSNoTimeStorage" Ø 2 H2 + idata$$@"NoSensParameters"DL, "SMSSymmetricTangent" Ø False, "SMSDefaultIntegrationCode" Ø 0 D; H* ============================================================== *L SMSStandardModule@"Nodal information"D; x £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 2D + Array@ SMSReal@nd$$@1, "at", ÒDD &, 2D; xP £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 2D + Array@ SMSReal@nd$$@1, "ap", ÒDD &, 2D; SMSExport@8Flatten@8x, xP<D< , d$$D; H* ============================================================== *L SMSStandardModule@"Tangent and residual"D; H*Element data*L SMSGroupDataNames = 8"m -friction coefficient", "r -regularization parameter", "t -thickness"<; SMSDefaultData = 80, 1, 1<; 8m, r, thick< £ Array@SMSReal@es$$@"Data", ÒDD &, 3D; H*Read and set element values*L Xiaug £ Array@SMSReal@nd$$@Ò, "X", 1DD &, 8D; Yiaug £ Array@SMSReal@nd$$@Ò, "X", 2DD &, 8D; uiaug £ Array@SMSReal@nd$$@Ò, "at", 1DD &, 8D; viaug £ Array@SMSReal@nd$$@Ò, "at", 2DD &, 8D; uiaugP £ Array@SMSReal@nd$$@Ò, "ap", 1DD &, 8D; viaugP £ Array@SMSReal@nd$$@Ò, "ap", 2DD &, 8D; 8ui, vi, uiP, viP, Xi, Yi< £ Map@Join@8Ò@@1DD<, Take@Ò, 84, 7<DD &, 8uiaug, viaug, uiaugP, viaugP, Xiaug, Yiaug<D; 8lN, lT< £ 8uiaug@@8DD, viaug@@8DD<; basicVars £ Join@H8ui, vi< êê Transpose êê FlattenL, 8lN, lT<D; basicVarsP £ Join@H8uiP, viP< êê Transpose êê FlattenL, 80, 0<D; index = 81, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16<; 8slaveS1, slaveS2< £ 88XiaugP2T - XiaugP1T, YiaugP2T - YiaugP1T<, 8XiaugP1T - XiaugP3T, YiaugP1T - YiaugP3T<<; Area0 £ [email protected] + [email protected] thick ë 2; H* If no contact *L SMSIf@SMSInteger@ns$$@4, "id", "Dummy"DD ã 1D; LagrNNC £ Area0 H- lN ^ 2 ê H2 rLL; LagrTNC £ Area0 H- lT ^ 2 ê H2 rLL; LagrNC £ LagrNNC + LagrTNC; SMSDo@i, 1, 2D; ii £ SMSInteger@SMSPart@index, 10 + iDD; AceFEM Finite Element Environment 145 RNC £ SMSD@ LagrNC, 8lN, lT<, iD; SMSExport@SMSResidualSign RNC, p$$@iiDD; SMSDo@j, 1, 2D; jj £ SMSInteger@SMSPart@index, 10 + jDD; dRdaNC £ SMSD@ RNC, 8lN, lT<, j D; SMSExport@dRdaNC, s$$@ii, jjDD; SMSEndDo@D; SMSEndDo@D; SMSExport@80, 0<, Array@ed$$@"ht", ÒD &, 2D D; SMSElse@D; 8xP, gNP< £ Array@SMSReal@ed$$@"hp", ÒDD &, 2D; H* We have to zero the xP because of local convergence problems in case of contact switch *L xP £ [email protected]; 8xS, xM2, xM3, xM1, xM4< £ Transpose@ 8Xi + ui, Yi + vi< D; 8L, L31, L24< £ Map@ SMSSqrt@ Ò.Ò D &, 8xM3 - xM2, xM3 - xM1, xM2 - xM4< D; 8t31, t24< £ 8HxM3 - xM1L ê L31, HxM2 - xM4L ê L24<; 8Bxi, Byi< £ Transpose@ 8xM2, xM2 + HL ê 3L t31, xM3 + HL ê 3L t24, xM3< D; Clear@x, bD; H* Normal and tangential gap *L localSearch := 1 fBi = ModuleB 8m = 4<, TableB Binomial@m - 1, i - 1D H1 + xLi-1 H1 - xLm-i , 8i, m< F F; 8 xA £ SMSReal@- 1D; fBiA = ModuleB 8m = 4<, TableB xB £ SMSReal@1D; fBiB = ModuleB 8m = 4<, TableB 1 8 SMSIf@x < - 1D; xP • Simplify@8BxiP1T, ByiP1T< + SMSD@8Bxi, Byi<.fBiA, xAD Hx + 1LD; SMSElse@D; SMSIf@x > 1D; xP1 • Simplify@8BxiP4T, ByiP4T< + SMSD@8Bxi, Byi<.fBiB, xBD Hx - 1LD; SMSElse@D; xP1 § Simplify@8Bxi, Byi<.fBiD; SMSEndIf@xP1D; xP § xP1; SMSEndIf@xPD; t £ SMSD@xP, xD; n £ 8t@@2DD, - t@@1DD< ê [email protected]; H £ xP + gN n - xS; dHdb £ SMSD@H, 8x, gN<D; dHdbInv £ SMSInverse@dHdbD; ; b • 8xP, gNP<; SMSDo@ iter, 1, 30, 1, b D; 8x, gN< £ b; localSearch; Db £ - dHdbInv.H; b § b + Db; SMSIf@[email protected] < 1 ê 10 ^ 12 »» iter == 29D; SMSBreak@D; Binomial@m - 1, i - 1D H1 + xBLi-1 H1 - xBLm-i , 8i, m< F F; 1 8 Binomial@m - 1, i - 1D H1 + xALi-1 H1 - xALm-i , 8i, m< F F; 12D. 1. dbda £ . SMSEndIf@lagrND. SMSDo@i. i. dRidaj £ [email protected] ^ 2L ê H2 rL. 1. H* Tangent and export *L ii £ SMSInteger@SMSPart@index. lNaug £ lN + r gN. 12D. kaug ¢ . iDD. stateT< • Array@SMSInteger@ed$$@"hp". SMSExport@1. jjD D. Ò + 2DD &.m lagrN. SMSExport@ dRidaj. SMSExport@0. localSearch. dbdaD. . basicVarsD. p$$@iiDD. jD. "Constant" Ø kaugD.10-8 »» stateT ã 1E. dHda £ SMSD@H. SMSElse@D. 4DD. H* Augmented multipliers and friction cone radius *L H* Dx£x-xP. basicVars.tD SMSD@ x. H* Residual *L Ri £ [email protected] . SMSExport@SMSResidualSign Ri.kaug ¥ . SMSDefineDerivative@b. jj £ SMSInteger@SMSPart@index. ed$$@"ht". basicVars. SMSIfAlNaug § 10-8 »» stateN ã 1E. b £ SMSReal@bD. stateTD. SMSEndDo@D. ed$$@"ht".HlTaugkaug ^ 2L ê H2 rLL. 8stateN. SMSIfASMSAbs@lTaugD . lagrN § 0.basicVarsPL. 2D.dHdbInv. jDD. SMSElse@D. basicVars. lTaugkaug § 0. SMSElse@D. stateT< § SMSInteger@80. ed$$@"ht".dHda. SMSEndIf@lTaugkaugD. SMSDo@ j. SMSIf@SMSInteger@idata$$@"Iteration"DD ã 1D. basicVars D. 3DD. ed$$@"ht". 0<D. *L Dx £ SMSSqrt@t. s$$@ii. 8stateN. gN< £ b. 3DD. H* Remember to define "b" before using this tag! *L 8x. LagrT £ Area0 HlT Dx + r Dx ^ 2 ê 2 .kaug. lTaug £ lT + r Dx.146 AceFEM Finite Element Environment SMSEndIf@D. SMSEndIf@stateN. SMSExport@1. 4DD. Lagr £ LagrN + LagrT. SMSEndDo@D. SMSEndDo@bD. lTaugkaug • SMSAbs@lTaugD . H* Augmented Lagrangian of contact *L LagrN £ Area0 HlagrN ^ 2 . lagrN • lNaug. SMSExport@0. 2D D. Finite Strain Element for Dynamic Analysis and analyze the single snooker shoot. Array@ed$$@"ht". smooth master segment element and hypersolid dynamic element from Solid.Formulae No.c Size: 57 485 Methods No. ÒD &. gN<.Leafs PAN 1 62 SKR 1503 16 568 2D snooker simulation ‡ Description Use the contact element from 2D slave node. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : LX See also: Template Constants File: ExamplesCTD2N1DN2L1DN1AL. SMSWrite@D. SMSEndIf@D. . Postprocessing of the integration point quantities is suspended for the element.AceFEM Finite Element Environment 147 SMSExport@8x. 2 ê 5<E.by2<. "s0".3 bx. . 8bx2. "Q1". 8bx. TN = 5.1. .by<. by 2 R.by2<.bx2. 8"c".by2<<. [email protected] + db<. SMTRDataB"ContactSearchTolerance". "r0 *" -> 2. Table@8v0x. by2 . by<. BN + 1<D.db<.D. 8bx2. 1<. 1. "BoundaryDomainID" Ø boundaryE. 8. 0D.bx.db. body_. R = 0. 8.db<. "BoundaryDomainID" -> "c". . "ExamplesCTD2N1DN2L1DN1AL".5 2 bx = 1. 8. "Q1". 1 -> 0. boundary_D := SMTMeshAdomain. .1L + 2 j R. by2<.. "r0 *" -> 2. 8"m *" -> 0.by + db<. "b *" -> b.by2<. v0x.. v0x = . 8Length@SMTFindElements@"s0"DD<DD. . "d *" -> d<D . "c"FFF SMTAddEssentialBoundary@Abs@"Y"D >= by »» Abs@"X"D ¥ bx &. 8bx . . j < i. by2<. . Nb = 6. TableA8X0. 0.3 bx.bx + db. bnum += 1. 0.by<<<. ballB. j ++. . .bx + db. by<.R Hi . 8Nb. ForBj = 0.db. Nb<. 8bx. "r *" -> 100. by<.0. v0y = 1. "c"F. by<. 8i. j<DD2 E. "ht". 8"E *" -> 50 000.bx2. "BodyID" Ø body. 8bx2 . i <= TN. 1. 0. by . v0x.by<. v0y. 8. bnum = 0. SMTInputData@D. 812. .bx. 8bx. 2 . 0.60. Y0_. v0y. . i § TN. . "ExamplesHypersolidDynNewmark". .db<.by<.CosB 4 Nb SMTIData@"Contact1". 8. 2 -> 0.bx. ball@X0_. by . 8. . R. 8bx2.db<. "b *" -> b. 8bx2 . v0y.bx.148 AceFEM Finite Element Environment ‡ Analysis << AceFEM`. 88.1 bx. "n *" -> 0.bx2 + db. by . "InterpolationOrder" Ø 1D. + iHTN + 1L R 2 3. Nb_. 8j. Y0< + R 8i. d = 0. bx2 = bx + 0. SMTElementData@SMTFindElements@"s0"D. db = 0. 888. ballB0. . 8.bx. i = 1. SMTAddDomain@ 8"b".<<D. R_.1D. by2 .by + db<.1. p F F. "s" <> ToString@bnumD. 0. 2 ê 5<.bx2. by2<. by2<. 8. 8. "n *" -> 0. . 0. 0<. by2 = by + 0. i ++. 8bx .by2<. "ExamplesHypersolidDynNewmark".by<.05 bx. BN = BN + iD.5 for non-dissipative model *L b= d + 0.14. "B0".by2 + db<.3. 0. Nb. 8.db. j<DD2 ë Max@Abs@8i. i ++.bx2. For@BN = 0.3.1.. SMTMesh@"b".db. j< ë SqrtA1 + Min@Abs@8i. H* 0.bx2 + db. 8i. domain_. v0y. "B" <> ToString@bnumD. 8bx2. 8. 8bx. "d *" -> d<<. 8. 2 R 1 . "BodyID" Ø "C". 8 ForBi = 1. 8"E *" -> 400. Nb. . v0x.bx2. by = 2 bx. Table@ SMTAddDomain@"s" <> ToString@i . by<<D<D. . Yi £ Array@SMSReal@nd$$@Ò. 8. triangle master segment element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements .D. 3. "Dummy"DD ≠ 1D. If@step@@1DD. ÒDD &.bx. xP<D< . While@ While@step = SMTConvergence@10 ^ . x3< £ Transpose@8Xi + ui. "SMSSymmetricTangent" Ø True. 3<. Wi + wi<D. 8i. .x .05. H*Read and set element values*L Xi £ Array@SMSReal@nd$$@Ò. ÒDD &. 3D + Array@ SMSReal@nd$$@1. 8bx. by<. wi< êê Transpose êê FlattenL. "id". 8"Adaptive Time". x2.1D. . SMSStandardModule@"Tangent and residual"D. 8. tx £ SMSD@xP. th £ SMSD@xP. 4D. 1 .by<. "SMSDOFGlobal" Ø 83. If@stepP4T === "MinBound". "X". "Environment" Ø "AceFEM"D. x2. H* If contact possible *L SMSIf@SMSInteger@ns$$@2. ui £ Array@SMSReal@nd$$@Ò. "SMSNodeID" Ø 8"D". "Show" Ø "Window". by<. BN + 1<D. "X".bx. h. 15. 1DD &. vi £ Array@SMSReal@nd$$@Ò.by<. "ap". x3<. "ContactElement"<D. . "CTD3P1". "Domains" Ø Table@"s" <> ToString@i . 2DD &. 3. by<. "X". 8. SMTStatusReport@"Dl < Dlmin"D. 3D + Array@ SMSReal@nd$$@1. 3D. d$$D. "D -D". 3DD &. basicVars £ H8ui. 3D. 4D.1D.h<. "SMSNoNodes" Ø 4. 4D. 8bx. 0.by<. 8. ÒDD &. 4D. . "at". BN + 1<D. "User" Ø 8Line@88bx. x1.bx.Null<&". ÒDD &. SMSStandardModule@"Nodal information"D.01D.by<. "at". << "AceGen`". "Alternate" Ø TrueD. H* projection point and gap distance *L localSearch := H xP £ 8x. 4D. 0.8x1. 0. "D -D"<. SMSDefaultData = 81000<.0025. 8i.Null. xP £ Array@ SMSReal@nd$$@1. 8bx. 8bx. "User" Ø 8Line@88bx. SMSTemplate@"SMSTopology" Ø "PX". D.8. x £ Array@ SMSReal@nd$$@1. 8. SMTShowMesh@"DeformedMesh" Ø True. 5<. "at". 1D. by<. SMSGroupDataNames = 8"r -penalty parameter"<. step@@3DD . ÒDD &. SMTNextStep@0. wi £ Array@SMSReal@nd$$@Ò.01D D. D. "SMSCharSwitch" Ø 8"CTD3V1". 3D slave node. Wi £ Array@SMSReal@nd$$@Ò.AceFEM Finite Element Environment 149 SMTShowMesh@"Show" Ø "Window". 8xS. 3DD &. SMSExport@8Flatten@8x. . "at". 4D. "Domains" Ø Table@"s" <> ToString@i . "SMSAdditionalNodes" Ø "8Null.0000001. "X". by<<D<D. 2DD &. xD. "SMSSegments" Ø 8<. SMSInitialize@"ExamplesCTD3V1P1".bx. SMTNextStep@step@@2DD. "X". hD. "D -D". . Yi + vi. SMTNewtonIteration@D. vi. 1DD &. 8r< £ Array@SMSReal@es$$@"Data". SMTStepBack@D. jD. P § 0. i.DbD < 1 ê 10 ^ 12 »» iter == 29D. SMSDo@i. H* Remember to define "b" before using this tag! *L 8x. h. SMSDo@ j. basicVars. 1. gN< £ b. gN< £ b. localSearch. iD. 12D. H £ xP + gN n . dRidaj £ [email protected]. Db £ . b D. localSearch. SMSWrite@D. 2 SMSElse@D. 0. SMSEndIf@D. basicVarsD. bD. SMSEndIf@PD. 8x. SMSDo@ iter. [email protected] AceFEM Finite Element Environment tn £ [email protected]. b £ SMSReal@bD. SMSDefineDerivative@b. p$$@iDD. dbdaD. 0<D. n £ tn ê SMSSqrt@tn. basicVars. SMSIf@gN § 0D. thD. dbda £ . 12D. s$$@i. 30. SMSEndIf@D. jD D. 1. h. SMSBreak@D. SMSEndDo@D. b • SMSReal@80. Postprocessing of the integration point quantities is suspended for the element. SMSIf@Sqrt@Db. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : PX See also: Template Constants Default integration code is set to 17 . b § b + Db. SMSExport@SMSResidualSign Ri. See also: SMSDefaultIntegrationCode . SMSEndDo@bD. dHda £ SMSD@H. SMSExport@ dRidaj.dHdbInv. dHdbInv £ SMSInverse@dHdbD L. H* Residual *L Ri £ [email protected]. dHdb £ SMSD@H. 1 P • r gN2 . basicVars.dHdbInv.tnD. 1. AceFEM Finite Element Environment 151 File: ExamplesCTD3V1P1.c Size: 19 217 Methods No.Formulae No.Leafs PAN 1 92 SKR 265 4550 3D slave node, quadrilateral master segment element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . << "AceGen`"; SMSInitialize@"ExamplesCTD3V1S1", "Environment" Ø "AceFEM"D; SMSTemplate@"SMSTopology" Ø "SX", "SMSNoNodes" Ø 5, "SMSSymmetricTangent" Ø True, "SMSDOFGlobal" Ø 83, 3, 3, 3, 3<, "SMSSegments" Ø 8<, "SMSAdditionalNodes" Ø "8Null,Null,Null,Null<&", "SMSNodeID" Ø 8"D", "D -D", "D -D", "D -D", "D -D"<, "SMSCharSwitch" Ø 8"CTD3V1", "CTD3S1", "ContactElement"<D; SMSStandardModule@"Nodal information"D; x £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 3D + Array@ SMSReal@nd$$@1, "at", ÒDD &, 3D; xP £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 3D + Array@ SMSReal@nd$$@1, "ap", ÒDD &, 3D; SMSExport@8Flatten@8x, xP<D< , d$$D; SMSStandardModule@"Tangent and residual"D; H*Element data*L SMSGroupDataNames = 8"r -penalty parameter"<; SMSDefaultData = 81000<; 8r< £ Array@SMSReal@es$$@"Data", ÒDD &, 1D; H*Read and set element values*L Xi £ Array@SMSReal@nd$$@Ò, "X", 1DD &, 5D; Yi £ Array@SMSReal@nd$$@Ò, "X", 2DD &, 5D; Wi £ Array@SMSReal@nd$$@Ò, "X", 3DD &, 5D; ui £ Array@SMSReal@nd$$@Ò, "at", 1DD &, 5D; vi £ Array@SMSReal@nd$$@Ò, "at", 2DD &, 5D; wi £ Array@SMSReal@nd$$@Ò, "at", 3DD &, 5D; basicVars £ H8ui, vi, wi< êê Transpose êê FlattenL; 8xS, x1, x2, x3, x4< £ Transpose@8Xi + ui, Yi + vi, Wi + wi<D; H* If contact possible *L SMSIf@SMSInteger@ns$$@2, "id", "Dummy"DD ≠ 1D; H* projection point and gap distance *L localSearch := H xP £ 8x h, H1 - xL h, H1 - xL H1 - hL, x H1 - hL<.8x1, x2, x3, x4<; tx £ SMSD@xP, xD; th £ SMSD@xP, hD; tn £ Cross@tx, thD; n £ tn ê [email protected]; H £ xP + gN n - xS; dHdb £ SMSD@H, bD; dHdbInv £ SMSInverse@dHdbD L; b • SMSReal@80, 0, 0<D; SMSDo@ iter, 1, 30, 1, b D; 152 AceFEM Finite Element Environment 8x, h, gN< £ b; localSearch; Db £ - dHdbInv.H; b § b + Db; SMSIf@[email protected] < 1 ê 10 ^ 12 »» iter == 29D; SMSBreak@D; SMSEndIf@D; SMSEndDo@bD; b £ SMSReal@bD; H* Remember to define "b" before using this tag! *L 8x, h, gN< £ b; localSearch; dHda £ SMSD@H, basicVarsD; dbda £ - dHdbInv.dHda; SMSDefineDerivative@b, basicVars, dbdaD; SMSIf@gN § 0D; 1 P • r gN2 ; 2 SMSElse@D; P § 0; SMSEndIf@PD; SMSDo@i, 1, 15D; H* Residual *L Ri £ SMSD@P, basicVars, iD; SMSExport@SMSResidualSign Ri, p$$@iDD; SMSDo@ j, i, 15D; dRidaj £ SMSD@Ri, basicVars, jD; SMSExport@ dRidaj, s$$@i, jD D; SMSEndDo@D; SMSEndDo@D; SMSEndIf@D; SMSWrite@D; Postprocessing of the integration point quantities is suspended for the element. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : SX See also: Template Constants Default integration code is set to 3 . See also: SMSDefaultIntegrationCode File: ExamplesCTD3V1S1.c Size: 29 620 Methods No.Formulae No.Leafs PAN 1 92 SKR 435 7863 3D slave node, quadrilateral master segment and 2 neighboring nodes element AceFEM Finite Element Environment 153 3D slave node, quadrilateral master segment and 2 neighboring nodes element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . Neighboring nodes are not used in the element. << "AceGen`"; SMSInitialize@"ExamplesCTD3V1S1DN2", "Environment" Ø "AceFEM"D; SMSTemplate@"SMSTopology" Ø "SX", "SMSNoNodes" Ø 13, "SMSDOFGlobal" Ø 83, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3<, "SMSSegments" Ø 8<, "SMSAdditionalNodes" Ø "8Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null<&", "SMSNodeID" Ø 8"D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D", "D -D"<, "SMSCharSwitch" Ø 8"CTD3V1", "CTD3S1DN2", "ContactElement"<, "SMSSymmetricTangent" Ø TrueD; SMSStandardModule@"Nodal information"D; x £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 3D + Array@ SMSReal@nd$$@1, "at", ÒDD &, 3D; xP £ Array@ SMSReal@nd$$@1, "X", ÒDD &, 3D + Array@ SMSReal@nd$$@1, "ap", ÒDD &, 3D; SMSExport@8Flatten@8x, xP<D< , d$$D; SMSStandardModule@"Tangent and residual"D; SMSGroupDataNames = 8"r -penalty parameter"<; SMSDefaultData = 81000<; 8r< £ Array@SMSReal@es$$@"Data", ÒDD &, 1D; H*Read and set element values*L Xi £ Array@SMSReal@nd$$@Ò, "X", 1DD &, 5D; Yi £ Array@SMSReal@nd$$@Ò, "X", 2DD &, 5D; Wi £ Array@SMSReal@nd$$@Ò, "X", 3DD &, 5D; ui £ Array@SMSReal@nd$$@Ò, "at", 1DD &, 5D; vi £ Array@SMSReal@nd$$@Ò, "at", 2DD &, 5D; wi £ Array@SMSReal@nd$$@Ò, "at", 3DD &, 5D; basicVars £ H8ui, vi, wi< êê Transpose êê FlattenL; 8xS, x1, x2, x3, x4< £ Transpose@8Xi + ui, Yi + vi, Wi + wi<D; H* If contact possible *L SMSIf@SMSInteger@ns$$@2, "id", "Dummy"DD ≠ 1D; H* projection point and gap distance *L localSearch := H xP £ 8x h, H1 - xL h, H1 - xL H1 - hL, x H1 - hL<.8x1, x2, x3, x4<; tx £ SMSD@xP, xD; th £ SMSD@xP, hD; tn £ Cross@tx, thD; n £ tn ê [email protected]; H £ xP + gN n - xS; dHdb £ SMSD@H, bD; dHdbInv £ SMSInverse@dHdbD L; b • SMSReal@80, 0, 0<D; 154 AceFEM Finite Element Environment SMSDo@ iter, 1, 30, 1, b D; 8x, h, gN< £ b; localSearch; Db £ - dHdbInv.H; b § b + Db; SMSIf@[email protected] < 1 ê 10 ^ 12 »» iter == 29D; SMSBreak@D; SMSEndIf@D; SMSEndDo@bD; b £ SMSReal@bD; H* Remember to define "b" before using this tag! *L 8x, h, gN< £ b; localSearch; dHda £ SMSD@H, basicVarsD; dbda £ - dHdbInv.dHda; SMSDefineDerivative@b, basicVars, dbdaD; SMSIf@gN § 0D; 1 P • r gN2 ; 2 SMSElse@D; P § 0; SMSEndIf@PD; SMSDo@i, 1, 15D; H* Residual *L Ri £ SMSD@P, basicVars, iD; SMSExport@SMSResidualSign Ri, p$$@iDD; SMSDo@ j, i, 15D; dRidaj £ SMSD@Ri, basicVars, jD; SMSExport@ dRidaj, s$$@i, jD D; SMSEndDo@D; SMSEndDo@D; SMSEndIf@D; SMSWrite@D; Postprocessing of the integration point quantities is suspended for the element. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : SX See also: Template Constants Default integration code is set to 3 . See also: SMSDefaultIntegrationCode File: ExamplesCTD3V1S1DN2.c Size: 29 867 Methods No.Formulae No.Leafs PAN 1 92 SKR 435 7863 3D slave triangle and 2 neighboring nodes, triangle master segment element "CTD3P1". id § 2. x2. SMSExport@Flatten@8x. "D -D". "Environment" Ø "AceFEM"D. 6<. i ++.Null. dis £ Transpose@8ui. x £ Array@ SMSReal@[email protected]<.AceFEM Finite Element Environment 155 3D slave triangle and 2 neighboring nodes. "X". For@i = 1. SMSNoNodesD. H* If contact possible *L SMSIf@SMSInteger@ns$$@10 + 3 id. 10 + 3 id.Null. ÒDD &. 1DD &. allX £ Transpose@8Xi + ui. Yi + vi. 3. 3. << "AceGen`". SMSStandardModule@"Nodal information"D. Wi £ Array@SMSReal@nd$$@Ò. 2DD &. "X". d$$@i. wi £ Array@SMSReal@nd$$@Ò. ÒDD &. SMSNoNodesD. H*Read and set element values*L Xi £ Array@SMSReal@nd$$@Ò. 12 + 3 id<D. "D -D". . "D -D". 3. 3DD &. "at". vi £ Array@SMSReal@nd$$@Ò. 81 + id. localBasic £ Flatten@Map@dis@@ÒDD &.Null. "D".Null. 1 . 3. 3D + Array@ SMSReal@nd$$@i. H* projection point and gap distance *L localSearch := H xP £ 8x. "id". ÒDD &. 3DD &.x . "SMSNoNodes" Ø 18. "D -D". 3. 11 + 3 id.Null. ÒD &D D. index = 8Join@81. "D -D". 5. 8xS. 3. localIndex £ SMSInteger@index@@id + 1DDD. 3. "X".Null<&". "X". SMSNoNodesD. Yi £ Array@SMSReal@nd$$@Ò. Neighboring nodes are not used in the element. "D -D". "ap". "at". x3<. ÒDD &. "SMSDOFGlobal" Ø 83. SMSNoNodesD. "ContactElement"<. 54DD<.Null. 3. "D -D".Null. "D -D". 2.Null. 3. x1. "D -D". 36DD. "D -D". 8. "D -D". vi. Range@28. ÒDD &. Range@37. id ++. ui £ Array@SMSReal@nd$$@Ò.Null. 3.Null. "SMSNodeID" Ø 8"D". xP<D . 3<. SMSStandardModule@"Tangent and residual"D. 8r< £ Array@SMSReal@es$$@"Data". 2DD &. SMSNoNodesD. 3. 9<. 3. 10 + 3 id. SMSTemplate@"SMSTopology" Ø "PX". 45DD. 11 + 3 id. "Dummy"DD ≠ 1D. ForBid = 0.Null. "D -D". . 3. "SMSSegments" Ø 8<. wi<D. 81 + id. 3D + Array@ SMSReal@[email protected]. "X". h. 1DD &. triangle master segment element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . Range@46. Join@84. 3. "at". "D -D"<. 3D. basicVars £ Hdis êê FlattenL. 3<. SMSInitialize@"ExamplesCTD3P1DN2P1".Null. "D -D". 12 + 3 id<DD. x3< £ Map@allX@@ÒDD &. Wi + wi<D. "SMSAdditionalNodes" Ø "8Null. x2. SMSGroupDataNames = 8"r -penalty parameter"<. "D". "SMSCharSwitch" Ø 8"CTD3P1DN2".Null. Join@87. 3. SMSNoNodesD. "SMSSymmetricTangent" Ø TrueD. SMSDefaultData = 81000<. i § 3. 3. "at". 3D. "D -D". xP £ Array@ SMSReal@nd$$@i. 1D. SMSEndIf@D. SMSExport@SMSResidualSign Ri. b £ SMSReal@bD. localBasic. localSearch. jDD. gN< £ b. iDD. p$$@iiD. Postprocessing of the integration point quantities is suspended for the element. SMSBreak@D. localBasicD. H* Residual *L Ri £ SMSD@P. 1 P • r gN2 . SMSEndIf@D F. SMSEndIf@PD. dHdb £ SMSD@H. 0. thD. 2 SMSElse@D. h. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : PX See also: Template Constants . dHdbInv £ SMSInverse@dHdbD L. H* Remember to define "b" before using this tag! *L 8x. SMSIf@gN § 0D. dRidaj £ SMSD@Ri. s$$@ii. "AddIn" Ø TrueD. gN< £ b. i. localBasic. SMSEndDo@D. b • SMSReal@80. dHda £ SMSD@H. iD. 30. P § 0. SMSExport@ dRidaj.156 AceFEM Finite Element Environment tx £ SMSD@xP. hD. Db £ . dbda £ . "AddIn" Ø TrueD. 1.tnD. 8x.H. 1. h. th £ SMSD@xP. Length@localBasicDD. 1. dbdaD. n £ tn ê SMSSqrt@tn. jj £ SMSInteger@SMSPart@localIndex. SMSDo@ j. SMSIf@Sqrt@Db. jD. tn £ Cross@tx. SMSEndDo@D. SMSWrite@D. Length@localBasicDD. SMSDo@i. localBasic. localSearch. ii £ SMSInteger@SMSPart@localIndex. bD. SMSDo@ iter. jjD .xS.dHda. b § b + Db.dHdbInv.dHdbInv. 0<D. SMSDefineDerivative@b. SMSEndDo@bD. H £ xP + gN n .DbD < 1 ê 10 ^ 12 »» iter == 29D. xD. bD. Null. SMSNoNodesD. 3. 3D + Array@SMSReal@nd$$@i. 3.Formulae No. 3. "D". "ContactElement"<. 3. "D -D".Null. 3. wi<D.Null. xP<D. "X". "D -D". 3<.Null. ÒDD &.Null<&".Null. "X".Null. "at". 1D. SMSNoNodesD. SMSDefaultData = 81000<. 2DD &. "D -D".Leafs PAN 3 276 SKR 827 14 100 3D slave triangle. "at".Null. "D -D". 3. ÒDD &. "D -D". SMSInitialize@"ExamplesCTD3P1P1DN2". 45DD. 1DD &. "SMSNodeID" Ø 8"D". 1DD &. "D -D". "D -D". 3.Null. 3. 3. "ap". SMSTemplate@"SMSTopology" Ø "PX".Null. Range@37. "SMSDOFGlobal" Ø 83. 3. triangle master segment and 2 neighboring nodes element The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . "at". SMSExport@Flatten@8x. << "AceGen`". 3.AceFEM Finite Element Environment 157 Default integration code is set to 17 . "D -D". "D -D". Yi + vi. SMSStandardModule@"Tangent and residual"D. H*Read and set element values*L Xi £ Array@SMSReal@nd$$@Ò. D. "SMSSegments" Ø 8<. ÒD &D. 3. d$$@i. Join@87. "D -D". 3.Null. "D -D". "D -D".Null . 3. 8r< £ Array@SMSReal@es$$@"Data". 3. 2DD &.Null. ui £ Array@SMSReal@nd$$@Ò.Null. "SMSSymmetricTangent" Ø TrueD. "D -D". wi £ Array@SMSReal@nd$$@Ò. SMSNoNodesD. vi. 3. Join@84. 3. 3.Null. 3D.Null. Wi + wi<D. allX £ Transpose@8Xi + ui. 3<. 3. "CTD3P1DN2". SMSNoNodesD. "X". 3. "D -D"<. "SMSNoNodes" Ø 30. 2. ForB . 3.c Size: 53 837 Methods No. index = [email protected]. SMSNoNodesD.Null. 3. "SMSAdditionalNodes" Ø "8Null. "SMSCharSwitch" Ø 8"CTD3P1". "X". 3.Null. 3. "D -D". 5. 3.Null. "D -D". i ++. x £ Array@SMSReal@nd$$@i. SMSNoNodesD. "D -D".Null. basicVars £ Hdis êê FlattenL.Null. "D -D". "D -D". "X". 9<. 3DD &. "D -D". 3DD &. ÒDD &. 6<. "D -D". 8. . SMSStandardModule@"Nodal information"D. ÒDD &. 3. SMSGroupDataNames = 8"r -penalty parameter"<. 3D + Array@SMSReal@nd$$@i. Range@10. "D".Null. ÒDD &. Wi £ Array@SMSReal@nd$$@Ò. "Environment" Ø "AceFEM"D. xP £ Array@SMSReal@nd$$@i. "D -D". Range@64. Neighboring nodes are not used in the element. dis £ Transpose@8ui. vi £ Array@SMSReal@nd$$@Ò. 3. See also: SMSDefaultIntegrationCode File: ExamplesCTD3P1DN2P1. "D -D".Null. Yi £ Array@SMSReal@nd$$@Ò. 72DD<. "D -D". . "D -D". For@i = 1. "at". 3. "D -D". 3D.Null. . "D -D".Null. i § 3. 18DD. 8x. jjD. SMSBreak@D. n £ tn ê SMSSqrt@tn. jDD. dHdbInv £ SMSInverse@dHdbD L. 4 + 9 id. b • SMSReal@80. SMSEndDo@D. Ri £ [email protected]. x3<. 8xS. h. 6 + 9 id<DD. [email protected] AceFEM Finite Element Environment ForBid = 0.H. . F. localSearch. SMSIf@Sqrt@Db. iDD. tn £ Cross@tx. localBasic. 1. bD. H £ xP + gN n .x . SMSEndDo@D. localBasic. 1 P • r gN2 . localBasic. 81 + id. 0<D.tnD. 2 [email protected]. dRidaj £ SMSD@Ri. s$$@ii. "AddIn" Ø TrueD. x3< £ Map@allX@@ÒDD &. H* Residual *L ii £ SMSInteger@[email protected]. gN< £ b. id § 2. th £ SMSD@xP. b § b + Db. SMSDo@j. SMSDo@ iter. 8x. jj £ SMSInteger@SMSPart@localIndex. SMSIf@gN § 0D. SMSEndIf@D. "id". SMSEndIf@D. tx £ SMSD@xP. localBasic £ Flatten@Map@dis@@ÒDD &. H* projection point and gap distance *L localSearch := H xP £ 8x. dHda £ [email protected] < 1 ê 10 ^ 12 »» iter == 29D. SMSEndDo@bD. dHdb £ SMSD@H. 0. 6 + 9 id<D. dbda £ . b £ SMSReal@bD. h. 81 + id. SMSEndIf@PD. x2.h<. 5 + 9 id. hD. localIndex £ SMSInteger@index@@id + 1DDD. 1 . localBasicD. xD. gN< £ b. "Dummy"DD ≠ 1D. x1. 1. jD. p$$@iiD. iD. dbdaD. 30. SMSExport@dRidaj. bD. H* If contact possible *L SMSIf@SMSInteger@ns$$@4 + 9 id.dHda. Length@localBasicDD. 1. SMSExport@SMSResidualSign Ri. h. "AddIn" Ø TrueD. i.dHdbInv. 5 + 9 id. Length@localBasicDD. P § 0. 4 + 9 id. id ++. x2. Db £ . H* Remember to define "b" before using this tag! *L localSearch. thD. SMSDefineDerivative@b. Simulation << AceFEM`. 1..1. 0<. SMTMesh@"Dom1". 82. 2 -> 0.1<<<<. See also: SMSReferenceNodes Default value for the SMSSegmentsTriangulation constant is not available for the given topology : PX See also: Template Constants Default integration code is set to 17 . 0. 0.3<<. 3 -> . "BodyID" Ø "B2".2. 0. . 8"E *" -> 70 000.1<D.3<.2. 0<<. 1 -> 0. SMTAddEssentialBoundary@8"Z" ã 1 &.1. SMTInputData@D. . 880. 0<<<. 8"r *" -> 10 000<<D. 88880. 88.2. .Leafs PAN 3 276 SKR 827 14 100 3D contact analysis The use quadrilateral 3D contact element to analyze the 3D indentation problem: small elastic box pressed down into large elastic box. 0. .1<. 1. 1.1. .1<<. 0<. . [email protected]. 0. 8"c". ÒD. [email protected]. 81. 8"Z" § . 0.1.3<<<. The support for the anlysis of contact problems in AceFEM and implementation of contact finite elements in AceGen is described in section Implementation Notes for Contact Elements . 8880. .2.1<. 880. 3<. SMTMesh@"Dom2". 2. "H1". . SMTAnalysis@D. "BoundaryDomainID" Ø "c"D.1. SMTRData@"ContactSearchTolerance". 3 -> 0<D. 0.c Size: 54 607 Methods No. 2. Postprocessing of the integration point quantities is suspended for the element. 5. . 81.2. 81. 82. "n *" -> 0.1. 88. 888. 8888.AceFEM Finite Element Environment 159 F.1<. "BoundaryDomainID" Ø "c"D.Formulae No. 8"Dom2".1.1D. 1<.2. 2.1.. 1<<<<.1. 1<<.3<. 81. 3<. 85.3<<.1.1. 82. 2. 0. 86. "H1".1. 82. "SED3H1DFHYH1NeoHooke". 81.1.2. 1 -> 0. "SED3H1DFHYH1NeoHooke". While@[email protected]. 6. 1. Map@HSMTNextStep@0. "BodyID" Ø "B1".1. .DL &.1. 1<. .1. "n *" -> 0. See also: SMSDefaultIntegrationCode File: ExamplesCTD3P1P1DN2. 2 -> 0. 0.3<<. .2. "ExamplesCTD3V1S1DN2". 8"E *" -> 70 000. .3 &. SMTAddDomain@8"Dom1". • Run CDriver module in console mode (SMTInputData["Console"->True]) and examine the output.fgg.11}]) • Check the information given at www.. New in version .. use SMSTemplate["SMSSymmetricMatrix"->False] to specify unsymmetrical matrix). • Problems with linear solver (PARDISO): a) not enough memory fl try out-of-core solution (SMTAnalyze[.element_number]) c) the file is opened for printing (SMTAnalysis["Output"->filename])..Solver->{5. b) the tangent matrix is not singular or near singular. numerical factorization problem fl try full pivoting (SMTAnalyze[.... • If the quadratic convergence is not achieved check that: a) matrix is symmetric or unsymmetrical (by default all elements are assumed to have symmetric tangent matrix. • If the compilation is to slow then restrict compiler optimization with SMSAnalysis["OptimizeDll"->False]. ‡ Crash of the CDriver module • Block parallelization (SMTInputData["Threads"->1]) • Recreate elements in Debug mode (SMSInitialize["Debug"->True]) and run the example again.si/symech/FAQ/. SMTShowMesh@"DeformedMesh" Ø True.160 AceFEM Finite Element Environment GraphicsRow@[email protected]>{5. "Field" -> "Syy"D<D Troubleshooting and New in version AceFEM Troubleshooting ‡ General • If the use of SMSPrint does not produce any printout or the execution does not stop at the break point (SMSSetBreak) check that: a) the code was generated in "Debug" mode (SMSInitialize["Mode"->"Debug"]).uni-lj.2}}}] b) zero pivot.11.{{60. b) debug element has been set (SMTIData["DebugElement". analytical solutions ) • support for 64-bit operating systems ( SMTInputData . This data structures are subject to change without notice! Directly changing the data after SMTAnalysis is forbiden.( SMTAnalysis .SMTAddDomain .AceFEM Finite Element Environment 161 New in version • new boundary conditions input . . SMTTask.( SMTAddEssentialBoundary ) • new command for generation and importing mesh ."Platform" option) • support for user defined tasks (User Defined Tasks.( SMTAddMesh ) • automatic node renumbering ."ContactPairs" option) • PARDISO symmetric matrix type added ( SMTSetSolver . Finite Strain Element for Direct and Sensitivity Analysis. Standard user subroutines. Parameter. In that case is the users responsibility that the data provided is correct.) • parallelization of FE simulations using Mathematica 7. It is advisable to use commands described in Input Data instead. Input Data • parallel execution of K and R assembly ( SMTInputData . SMTAnalysis) • new Integer Type Environment Data (idata$$) data SMTIData[""ZeroPivots"] and SMTIData["NegativePivots"] (replaces old SMTIData["DiagonalSign"] data) • support for semi-analytical solutions ( Semi . SMTAddSensitivity. Solid. The data can be changed after the SMTAnalysis using the Data Base Manipulations .SMTPostData • material constants can now be specified as a list of rules . Shape and Load Sensitivity Analysis of Multi-Domain Example ."NodeReordering" option) • new postprocessing command . Standard user subroutines) • new boundary conditions sensitivity types (See also: SMTSensitivity."Threads") • complete control over PARDISO solver options (SMTSetSolver ) • user definition of contact pairs ( SMTAnalysis.0 (see Parallel AceFEM computations) • Elements that Call User External Subroutines Advanced User Documentation Mesh Input Data Structures An experience user can manipulate the input data arrays directly. .8inode1 .….elem2 .d2 .Y.X.opt< . the list of nodes inode1 .….X< Node data for 3D. 8d1 .….…<< Element nodes and domain identification for all elements.Y< 1 D node with coordinates 8X< SMTElements=8elem1 . 8d1 .Y.162 AceFEM Finite Element Environment input data SMTNodes SMTElements SMTDomains SMTEssentialBoundary SMTNaturalBoundary SMTInitialBoundary SMTBodies Basic input data arrays. node coordinates for all nodes element nodes and domain identification for all elements description of domains reference values of the essential boundary conditions reference values of the natural boundary conditions initial values of boundary conditions Heither essential or naturalL description of bodies SMTNodes=8node1 .omain2 . element with the element index ielem..omainK < domaini 8dID.dndata <. inode2 .…. and domain identification dID SMTDomains=8domain1 .inode2 . 2D and 1D problems. the material data di .dndata << specifies that the domain identification dID represents the element identified by the string etype and the material data di Hthe element source code or dll file and the appropriate integration code are selected automaticallyL specifies that the domain identification dID represents the element identified by the string etype.…. and set of options opt Hsee table belowL 8dID.node2 .Z< 8inode. 3 D node with coordinates 8X.Y< 8inode.nodeN < nodei 8inode.dID.Z< 2 D node with coordinates 8X.elemM < elementi 8ielem.X. etype. etype.. for all domains of the problem.v2 .….nnode2 .…. f1 ..vNdof = vi .….initial boundary condition Hforce or supportL for ith unknown in all nodes that match nodeselector Isee Selecting NodesM Initial boundary conditions.pnode2 . . integration codes... f2 .nnode2 .reference value of the natural boundary condition HforceL for i-th unknown in all nodes that match nodeselector Isee Selecting NodesM Natural boundary conditions. f1 . Element source code location.nnodeR < nnodei 9nodeselector. flow curveL 8< Options for domain input data.v1 .g.….….reference value of the essential boundary condition HsupportL for the i-th unknown in all nodes that match nodeselecto Isee Selecting NodesM Essential boundary conditions. group data. fNdof = fi . fNdof = fi .nnodeR < nnodei 9nodeselector.…. SMTEssentialBoundary=9pnode1 . f2 . SMTNaturalBoundary=8nnode1 . SMTInitialBoundary=8nnode1 .AceFEM Finite Element Environment 163 option "Source" description specification of the location of element' s source code Hsee table belowL numerical integration code intcode see Numerical integration default Automatic "IntegrationCode" SMSDefaultIntegrationCode "AdditionalData" additional data common for all the elements within a particular domain He.pnodeP = pnodei 9nodeselector. ielem2 .ielem2 .cL for the standard elements that are part of the standard library system the driver automatically finds the source file of the element according to the element name dynamic link library with the element subroutines Hname.bodyspec2 . ielem is an element number. After that the dll library is regenerated if "dll" file is older than the current C source file.ielem2 . ..<< 8..8dID<< 88ielem1 . or in a dynamic link library.. dID is a domain identification..dllL executable_file Specification of the location of the element's source code. If both essential and natural boundary condition are specified for a particular unknown then the essential boundary condition has precedence..... The SMTNodes and SMTElements input arrays are automatically generated by the SMTMesh command (see SMTMesh).dID2 .bID< specifies that the elements with the index 8ielem1 ...dID< Definition of the bodies. It has one of the forms described in section Selecting Nodes.dID2 ... Dynamic link library file is generated automatically when the problem is run with the C source file as input for the first time. The parameter nodeselector is used to select nodes. scode source_file Automatic file with the element source Hproper extension is obligatory ... The domain identification dID and the body identification bID can be arbitrary strings.< belongs to the body Htoplogicaly connected region of elementsL with the body identification bID orders creation of additional elements with the domain identifications 8dID1 . The "FREE" string means that the boundary value is not prescribed for that parameter.<. or .bodyspecR = bodyspeci 88ielem1 . Instead of the value of essential boundary condition vi or natural boundary condition fi we can give "FREE" string or simply empty space.m..8dID1 ...….ielem2 .< ª 8.. The element user subroutines can be stored in a file in the Mathematica or C language...<.. The parameter inode is a node number.< on the boudary of the body defined by the elements 8ielem1 .164 AceFEM Finite Element Environment SMTBodies=9bodyspec1 .. bID is a body identification and inode i are the indices of nodes...bID. SMTSensitivityData=9param1 .stK <.…. This data structures are subject to change without notice! Directly changing the data after SMTAnalysis is forbiden. value.….param2 .8sti1 .….stiK << specifies that the sensitivity parameter identification sID represents the sensitivity parameter identified by the current value value. The data can be changed after the SMTAnalysis using the Data Base Manipulations . It is advisable to use commands described in Input Data instead. 8st1 .AceFEM Finite Element Environment 165 Sensitivity Input Data Structures An experience user can manipulate the input data arrays directly.paramns = parami 8sID. In that case is the users responsibility that the data provided is correct. . the the sensitivity types HSensTypeL sti for all domains of the problem and the indices in a type group HSensTypeIndexL stii for all domains of the problem Sensitivity input data structure. the element source file name and the element name has to be the same for the proper runtime debugging.y0 . . the expansion point and the order of the power series expansion 98x. See also SMSLoadSession. See also: Standard AceFEM Procedure..nx <.9y..x0 . "32" fl 32 bit operating system Hall operating systems Windows. The session name.= Isee also Semi-analytical solutionsM default value False "Platform" Automatic "NumericalModule" "CDriver" "Precision" "Console" $MachinePrecision False "Threads" "SeriesMethod" "SeriesData" All "Lagrange" False Options for the SMTInputData function.166 AceFEM Finite Element Environment Reference Guide Description of Problem SMTInputData SMTInputData@D erase data base from the previous AceFEM session Hif anyL initialize input data arrays and load the numerical module Initialize the input data phase. option "LoadSession" description "session_name" fl the data and definitions associated with the derivation of the element "session_name" are reloaded from the automatically generated file..ny =. The SMTInputData is the first command of every AceFEM session. Unix. MacL "64" fl 64 bit operating systems HWindows and Mac onlyL specifys numerical module: "CDriver" fl C language "MDriver" fl Mathematica language starts the MDriver numerical module with the numerical precision set to n Hit has no effect on CDriverL starts the CDriver module as console application and connect it with the Mathematica through MathLink protocol Hit has no effect on MDriverL sets the number of processors that are available for the parallel execution specifys the power series expansion method Isee also Semi-analytical solutionsM specifys the power series expansion parameters. the element code etype and the input data values that are common for all elements within the domain 8d1 . add domain data to the list of 8dcode1 ->d1 .…<. {"E *"->21000. etype.g. Several data sets can be added at the same time as well. optD domains with input data given as a list of rules The domain is identified by the unique string dID used within the session. For example: SMTAddDomain[{"A"."r *"->2700}}}] See also: Input Data . Only those values the are not equal to the default values (see SMSDefaultData ) have to be given. The option can be useful during the debugging. …}. The CDriver can be started in a separate window with the option "Console"->True.g. opt "Source" "IntegrationCode" "AdditionalData" description specification of the location of element' s source code numerical integration code intcode Isee Numerical Integration M additional data common for all the elements within a particular domain He. flow curveL default Automatic see SMSDefaultIntegrationCode 8< Options for domain input data. "solid". d2 .AceFEM Finite Element Environment 167 The CDriver numerical module is an executable and connected with the Mathematica through the MathLink protocol. The input data values are defined by the SMSGroupDataNames constant and are specific for each element used. Input data values is given as a vector or a list of rules ( dcodei Ø di L. SMTAddDomain SMTAddDomain@dID. "Factor" can be given as "F*"). The codes of the data can be abreviated (e.dcode2 ->d2 . Y2 . and domain identification dID where nodei can be either global node number or coordinates of the node 8Xi .<D appends new element to the list of elements Helement is defined by the list of nodes node1 .Z2 <.msh.99n1 . The function returns the element index or the range of indexes of new elements.. .Y1 .X2 .…= …= 1 2 1 2 E add nodes defined by the list of node coordinates 88n1 .Yi L option "BodyID" "BoundaryDomainID" description body identification string domain identification Hone or moreL for the elements additionally generated on the outer surface of elements with the same BodyID default value "None" 8< Options for SMTAddElement.…< and elements defined by the connectivity table 99n1 .2}}.9n2 .Z1 <.{2.9n2 .8n1 .X1 .{1.n2 .n1 .…< . add nodes and elements to the existing mesh and return a list of element numbers option "BodyID" "BoundaryDomainID" description body identification string domain identification Hone or moreL for the elements additionally generated on the outer surface of elements with the same BodyID default value None 8< Options for SMTAddMesh.3}}}] adds 2 elements. See also: Element Data .n2 . Example ...…=. The SMTAddMesh function can be used to import a mesh generated by various existing mesh generators into AceFEM. node2 .Y1 .{"A".Z2 <.88n1 ..168 AceFEM Finite Element Environment SMTAddMesh SMTAddMeshA dID .8n2 .X2 .8node1 .n1 .…=. See also: Input Data SMTAddElement SMTAddElement@dID. For example: SMTAddElement[{{"A". node2 . Input Data Several data sets can be added at the same time as well..…= …= 1 2 1 2 and domain identification dID to the existing mesh and return a list of global node and element numbers Ini is the local node number and ne is a local l node number of the l-th node of the e-th elementM SMTAddMesh@"GID".Y2 .mfileD import mesh from GID mesh file .X1 .Z1 <. 2 -> 0D.9.2<. 4. 1D.1.0. For example: SMTAddNode[{1. 12<<. 8"A". 12. 86.000264364== SMTAddNode SMTAddNode@Xi . 3. SMTAnalysis@D. The function returns the node index or the range of indexes of new nodes. SMTAddNaturalBoundary@"X" ã 6 & .0. 80. 8"A". SMTAddElement@88"A". .9.0.1. 9<<.5.3. "Scale" -> 1000D 99. 1 -> 0. 81. 82.0. .12. 11. SMTNextStep@1. 10. 85. 6. 2. SMTAddEssentialBoundary@"X" ã 0 &. 7.9.9.1. .9.0.000264499=. .0. Zi D appends new node to the list of nodes SMTAddNode@Xi .0. 11<<.{2. 2 -> . "at"D SMTShowMesh@"BoundaryConditions" -> True. 8<<. 84. 0<. 83.5D. 80. 95.AceFEM Finite Element Environment 169 Example << AceFEM`. SMTNewtonIteration@DD. 0<<D. 10<<. SMTAddDomainA"A". 82. 9"E *" -> 11. 84. 9. 0<. "n *" -> 0.1=E. 82.1}.0. "SEPSQ1DFLEQ1Hooke". "t *" -> 0. SMTNodeData@"X" ã 6 &.2<.2}] adds 2 nodes.0.2<. 86. 0<. . 85. . 81. 0<. 5. 8"A".2<. 81. 13<<<D.Yi D SMTAddNode@Xi D See also: Node Data . "DeformedMesh" -> True.0. 8"A". Input Data . SMTAddNode@880. 0<. 83.15829 µ 10-6 .2<. 8"A". 13.0. SMTInputData@D. 10D.0. Yi . 86. . 14. . While@SMTConvergence@10 ^ .1. 0<.1. Several data sets can be added at the same time as well.77117 µ 10-6 .0.2<. . 84. 83. 107 .0. .2<. where Dl is the boundary conditions multiplier increment (see Iterative solution procedure ).5 for the third degree of freedom. The value of boundary condition is by default incremented by the given value or set to the given value if the boundary condition is prescribed for the chosen degree of freedom for the first time..."Set"->True] All the nodes with the coordinates X=5 and Z=2 and node identification "D" get a prescribed value 1. The nodal values are calculated with the assumption of linear interpolation of intensity between b0 and b1 and an isoparametric interpolation of boundary between the nodes. SMTAddEssentialBoundary["X"==5 && "Z"==2 && "ID"=="D" &. Examples: SMTAddEssentialBoundary["X"==5 && "Z"==2 && "ID"=="D" &.…E condition IB0i is the initial boundary condition Hessential or naturalL for the dofi -th unknownM boundary condition form B_Number 8B1 .dof2 ->B02 .5 or set to 1.dof1 ->dB1 .…E boundary condition IdBi is the reference value of the essential boundary condition HsupportL for the dofi -thM SMTAddNaturalBoundaryA increment or set reference value nodeselector. dof2 ->dB2 . With the dofi ØNull input all the previously defined boundary conditions are deleted for the dofi degree of freedom.170 AceFEM Finite Element Environment SMTAddEssentialBoundary SMTAddEssentialBoundaryA increment or set reference value of essential HDirichletL nodeselector.5 ] The third degree of freedom in all the nodes with the coordinates X=5 and Z=2 and node identification "D" is either incremented by 1.5 if the boundary condition is prescribed for the chosen degree of freedom for the first time. With the "Set"->True option the new value overrides all the previous definitions. dof2 ->dB2 . . Line@8b0 . The nodal values are calculated with the assumption of isoparametric interpolation of boundary between the nodes.5. 3 Ø 1.. The current value of the boundary condition HBtL is defined as Bt = Bp + Dl dB.b1 <D Forms of prescribed boundary conditions.dof1 ->dB1 . b0 is intensity of continuous boundary condition in the first node that match nodeselector and b1 is intensity of continuous boundary condition in the last node that match nodeselector..B2 .dof1 ->B01 . The nodeselector parameter is defined in Selecting Nodes. 3 Ø 1.BN < Line@8b<D description value B is set to all nodes that match nodeselector value Bi is set to the i-th node that match nodeselector This form assumes that the nodes that match nodeselector form line or curve segment and that the constant continuous boundary condition with the intensity b is prescribed on the segment. option "Set" description override the previous defined boundary conditions for the chosen degrees of freedom with the newly defined values default value False Options for the boundary conditions functions.…E of natural HNeumannL boundary condition IdBi is the reference value of the natural boundary condition HforceL for the dofi -th unknownM SMTAddInitialBoundaryA increment or set initial boundary nodeselector. 5 ] The third degree of freedom in all the nodes with the coordinates X=5 and Z=2 and node identification "D" is either incremented by 1. 3 Ø 1.5 if the boundary condition is prescribed for the chosen degree of freedom for the first time. SMTAddEssentialBoundary["X"==5 && "Z"==2 && "ID"=="D" &.5 for the third degree of freedom. Node Data Example: Bending of the column (path following procedure. 3 Ø Null] Remove the prescribed essential boundary condition for the third degree of freedom for all the nodes with the coordinates X=5 and Z=2 and node identification "D".5. 2D solids). 2D solids). SMTAddEssentialBoundary["X"==5 && "Z"==2 && "ID"=="D" &. See also: Selecting Nodes. Examples: AceFEM Finite Element Environment 171 SMTAddEssentialBoundary["X"==5 && "Z"==2 && "ID"=="D" &.topology. Input Data . animations.mastermeshD construct structured mesh of elements with the domain identification dID. 3 Ø 1."Set"->True] All the nodes with the coordinates X=5 and Z=2 and node identification "D" get a prescribed value 1. body identification string domain identification Hone or moreL for the elements additionally generated on the outer surface of elements generated by SMTMesh default value 3 "BodyID" "BoundaryDomainID" None 8< Options for SMTMesh.Z is used. . Boundary conditions (2D solid).The nodeselector parameter is defined in Selecting Nodes.division. Boundary conditions (2D solid). Boundary conditions (2D solid). SMTAddInitialBoundary See also: SMTAddEssentialBoundary Example: Bending of the column (path following procedure. animations.5 or set to 1. SMTMesh SMTMesh@dID. By default the thirdorder Hor less if the number of points in one direction is less than 4L polynomial interpolations of coordinates X. 2D solids). animations.Y. SMTAddNaturalBoundary See also: SMTAddEssentialBoundary Example: Bending of the column (path following procedure. and append it to the previously defined nodes HSMTNodesL and elements HSMTElementsL option "InterpolationOrder" description The degree of master mesh interpolation is specified by the option "InterpolationOrder". C1 1 1 2 2 3 1 1 L2. 1D mesh topology L1.172 AceFEM Finite Element Environment The function adds new nodes and elements to the SMTNodes and SMTElements input data arrays (see Input Data ). The function returns the range of indexes of new nodes and elements . The topology parameter defines the type of the elements according to the types defined in section Template Constants.C2 3 2 2 5 4 . AceFEM Finite Element Environment 173 2D mesh topology T1.P2-2 10 94 3 3 2 1 1 6 11 8 72 13 12 5 16 21 15 14 7 18 6 17 23 22 20 8 19 25 24 T2-3.P1-1 3 3 4 2 1 2 1 4 5 5 6 7 1 6 7 8 8 2 9 3 T1-2.P1-2 6 4 3 5 2 1 4 5 7 1 6 7 8 2 8 9 3 T1-3.T1-1.P2-1 5 10 15 20 25 24 23 22 21 5 4 4 4 9 3 3 8 2 2 7 1 1 6 14 8 19 7 13 18 12 6 17 5 11 16 T2-2.P2-3 5 4 3 3 8 10 94 15 20 25 24 23 22 21 5 14 8 19 7 13 18 12 5 11 16 1 6 17 T2-4.P2.P2-4 10 15 14 7 13 18 23 22 21 1 2 1 20 8 19 25 24 3 2 4 4 9 3 3 8 2 1 6 72 Q1»S1 6 4 5 3 4 7 8 9 2 2 7 1 1 6 12 6 17 5 11 16 Q2.S2S 8 13 12 7 11 10 6 9 14 15 16 21 20 19 18 17 Ñ .P1-3 6 4 3 5 1 2 4 5 7 6 7 8 8 9 T1-4.P1-4 3 3 4 2 2 1 1 4 5 5 6 7 7 8 6 8 9 T2.S2 5 4 3 2 1 10 9 8 7 6 15 14 13 12 11 20 19 18 17 16 25 24 23 22 21 5 4 3 2 1 Q2S.P1.T2-1. 0<. 2. O2 div=83. 83. 2<<. 2<. 0. 83. 83. H2 div=84. 2<. 2. 83. 0<. 84. 0. 2<.2. 83. 0<<. 0<<<. 2. 3. 880. 0. 88880. 2<. 2<.3. 2. 0<. 0. 83. 0<<<. 880. 83. 83. 8880. 84. 2<<<<D H1 div=83. 88880. 2. 2. 0<. 2. 0. 0. 0. 88880. 880. 2<. 2. 880.2< SMTMesh@"Solid". 2<<<<D . 0<. "O1". 0<. 2. 0. 83.3. 2<<. "O2". 2<<. 0<<. 8880. 2<. 880. 2. 83. 83. 880. 0. 2. 0<<<.2. 83. 2<. 83. 0. "H1".174 AceFEM Finite Element Environment 3D mesh topology O1 div=83. 3. 0.2. 880. 2<<<<D . 880. 2<<. 88880. 3. 0<<<.2< SMTMesh@"Solid". 0<<. 0. 2<<<<D . H2S div=84. 84.2< SMTMesh@"Solid". 0<. 0<<.2< SMTMesh@"Solid". 83. 83. 0. 0. "H2". 84. 3. 8880. 84. 0. 2. 0. 8880. 0<.2< . 84. 84. 2<. 0. 2D mesh topology with mesh refinement . 0<<<. 84. 2<. 2<. 0. 88880. 880. 2<<<<D .AceFEM Finite Element Environment 175 SMTMesh@"Solid". 8880. 3. 3. 880. 3. 84. 0<. 0<. 84. 0. 2<<. 3. "H2S". 3. 2. "S1-rf". Q2S-rf 12 14 17 19 22 24 26 28 31 33 36 38 43 16 11 13 7 8 21 25 23 9 27 10 30 35 42 37 41 15 18 20 29 32 34 SMTMesh@"2D". 0<.176 AceFEM Finite Element Environment 9 11 13 14 16 18 19 21 23 24 10 12 5 6 15 17 7 20 22 8 Q1-rf SMTMesh@"2D". 0<. 0<. 8880. 0<<<D . 8880. 2<. 8880. 84. 83. 8 D 1 2 3 4 S1-rf SMTMesh@"Shell". 3D mesh topology with mesh refinement . 2<. 82. 3. 0<. 82. 880. 2<. "Q2S-rf". 0<. 3. 880. 83. 0. 0<<<D . 83. 3<. 83. 0. 0<<. 84. 880. 8880. 2. 83. 880. 0. 2 . 0<. "Q1-rf". 8 D 5 6 40 1 2 3 4 39 S2S-rf SMTMesh@"Shell". 2<. 84. 0. 0<<. "S2S-rf". 0. 3. 0. 2<<. 880. 84. 2<. the interpolation order of the elements is defined by the elements topology. "H1-rf". 3. 3. 8880. 1<<. 0<<<. . IMPORTANT : The "InterpolationOrder" is NOT related to the interpolation order of the elements used. 2. 2. 2. 3. 8nxµnyµnz<). 2. 84.g. The parameter division is a number of elements of actual mesh in each direction (e. Mastermesh The mastermesh parameter is a regular two or three dimensional array of arbitrary number of points that outlines the boundary of the problem domain. 880. 880. 1<<<<D . 0<<<. 84. 1<. 84. 83. 83. 83. 0<. 83. 0<. 88880. H2S-rf SMTMesh@"Solid". 1<. 0. 8880. "H2S-rf". The coordinates of nodes of actual mesh are obtained as multidimensional interpolation of master mesh nodes. 84. 2<. IMPORTANT: The mastermesh points have to be given in a order that defines a counter-clockwise local coordinate system of the master mesh.The mastermesh argument defines nodes of a master mesh that is used to create actual mesh. 0. 2<. 3. 2<. 0. 88880. 0. 84. 2<<<<D . 3.AceFEM Finite Element Environment 177 H1-rf SMTMesh@"Solid". The order of master mesh interpolation is defined by the "InterpolationOrder" option. 880. 0<. 0<. 178 AceFEM Finite Element Environment . SMTInputData@D. 1..... 2<D. "Q1". L = 10. 820. Table@ 8x.1 .. "n *" -> . L. L. 8x. 0. 8x. SMTMesh@"A". 2. mastermesh = 8Table@ 8x. Table@ 8x.. 8x. 2<D<. Sin@2 x ê LD + 4<. SMTAnalysis@D... L. 0.. SMTAddDomain@"A".. 0. Sin@4 x ê LD + 2<.. mastermesh.. 4<.. y Master mesh points have to be given in correct order.49<D.AceFEM Finite Element Environment 179 Example << AceFEM`. Master mesh 3. Sin@4 x ê LD<.2 1.1 1. 2<D.. x . "BodyID" -> "a"D.2 2. 8"E *" -> 1000. "SEPSQ1DFHYQ1NHookeA".3 1. all remaining domains by default depend on parameter only implicitlyL . dID2 ->…D HsID represents the sensitivity parameter identified by its current value value and a set of rules that identifies SensType and SensTypeIndex of the parameter for selected domains.current_value. add sensitivity parameter to the list of sensitivity parameters dID1 ->8SensType.SensTypeIndex<.180 AceFEM Finite Element Environment Actual mesh 20*4 Actual mesh + master mesh SMTAddSensitivity SMTAddSensitivity@sID. Solid.j. the BC velocity field has to be additionaly defined after the SMSAnalysisL 2 shape sensitivity 3 4 implicit sensitivity essential boundary condition sensitivity 5 natural boundary condition sensitivity Codes for the "SensType" and "SensTypeIndex" switches."sX".k]) and the sdB (nd$$[i. Standard user subroutines. the shape velocity field has to be additionaly defined after the SMSAnalysis L parameter has no meaning an index of the current boundary condition sensitivity parameter Hessential or naturalL Hthe value must be the same for all domains. SMTAddSensitivity. The sBp (nd$$[i. .AceFEM Finite Element Environment 181 SensType code 1 Description parameter sensitivity SensTypeIndex parameter an index of the current material parameter as specified in the description of the material models Hthe value in general depends on an element typeL an index of the current shape parameter Hthe value must be the same for all domains.j. the BC velocity field has to be additionaly defined after the SMSAnalysisL an index of the current boundary condition sensitivity parameter Hessential or naturalL Hthe value must be the same for all domains. The BC velocity field is by default stored in a nodal data field sBt and is calculated as sBt = sBp + Dl sdB. Shape and Load Sensitivity Analysis of Multi-Domain Example . Parameter."sBp".where sBp is the BC velocity field at the end of previous step and the sdB is the reference value of the BC velocity field."sdB". The shape velocity field is by default stored in a nodal data field sX (nd$$[i.k]) fields have to be initialized by the user after the SMSAnalysis command.j. Finite Strain Element for Direct and Sensitivity Analysis.k]) and should be initialized by the user. One of the input data in the case of shape sensitivity analysis is also the derivation of the nodal coordinates with respect to the shape parameters (shape velocity field) and derivation of the boundary conditions with respect to the boundary conditions parameters (BC velocity field). See also: SMTSensitivity. L. SMTNodeData@"X" ã L && "Y" ã 0 &. "Q1". 8"W2 ". "W2 " Ø 81. 20<. L = 10. SMTAddEssentialBoundary@ "X" ã 0 &. 888L ê 2. H* v is the second boundary condition parameter . 0<. 2<<. 88L ê 2. H* n is the second material parameter on "W2 " domain*L 8"n". 0. 2 Ø 0D.prescribed force*L 8"Q". Map@8ÒP2T ê L. SMTNodesDD. 20<. SMTMesh@"W1 ". 0.. 820. 1<<. v = 1.2<<D. "Q1". SMTNodeData@ "Y" ã L ê 2 &. L ê 2<<<D. [email protected]. 8L ê 2. _ Ø 82. 1 -> 0.3<<. _ Ø 85. SMTNodeData@"sX". 1. 8L ê 2. "sdB". "W1 " Ø 81. 0<D. "n *" -> 0. 0. "ExamplesHypersolid2D". 8L. L ê 2<<<D. This sets an initial sensitivity of prescribed displacement (BC velocity field) with respect to prescribed displacement v. 0. _ Ø 84. 0< &. "ExamplesHypersolid2D". SMTAddSensitivity@8 H* E is the first material parameter on "W1 " domain*L 8"E". SMTAddDomain@8"W1 ". . 0<. 80. This sets an initial sensitivity of node coordinates (shape velocity field) with respect to L for shape sensitivity analysis. This sets an initial sensitivity of prescribed force (BC velocity field) with respect to the intensity of the distrubuted force Q. L ê 2<. 8"E *" -> 1000. 1 ê 40. 8880. 1. L ê 2<. 8"E *" -> 5000. 880. 2 Ø Q ê 40D. H* L is first shape parameter for all domains*L 8"L". 0<<.1<D. H* Q is the first boundary condition parameter . 0<<. 1<<. 1<<. 2<< <D. 2 Ø . "n *" -> 0. Q = 500. "sdB". 80. SMTAddNaturalBoundary@ "Y" ã L ê 2 &. 1000. SMTMesh@"W2 ". SMTInputData@D. 820. . 8L.prescibded displacement *L 8"v".2. SMTAddEssentialBoundary@ "X" ã L && "Y" ã 0 &.182 AceFEM Finite Element Environment Example << AceFEM`. AceFEM Finite Element Environment 183 Analysis SMTAnalysis SMTAnalysis@optionsD check the input data. create data structures and start the analysis The SMTAnalysis also compiles the element source files and creates dynamic link library files (dll file) with the user subroutines (see also SMTMakeDll) or in the case of MDriver numerical module reads all the element source files into Mathematica. . however there is no assurance that the node reordering will actually have positive effect.< fl solver with linear solver identification number solverID and set of parameters for initialisation Isee also SMTSetSolverM True fl set compiler options for the fastes code False fl set compiler options for debugging function applied on coordinates of nodes before the search procedures if the coordinates are not numbers He.g before "Tie" .L the numbers smaller in absolute magnitude than "Tolerance" are replaced by 0 within the search procedures True fl join nodes which have coordinates and node identification with the same values 8True..p2 . debugging... Automatic fl "AdvancingFront" specify the the pairs slave-bodyêmaster body for which the possible contact condition is checked 99slaveBodyID1 .184 AceFEM Finite Element Environment option "Output" "PostOutput" "PostInput" "Solver" description output file name Hfor comments. 9slaveBodyID2 . Additional nodes of the element are always positioned after the topological nodes.L post-processing data file name Isee also SMTPut M input data can be imported from the previously stored postprocessing data file Isee also SMTGetM 0 fl appropriate linear solver is chosen automatically solverID fl solver with linear solver identification number solverID 8solverID. etc. The nodes with the switch E are always positioned at the end.L number of significant digits used within the search procedures He.g for the "Tie" option. etc. SMTFindNodes.masterBodyID2 =. etc. nodeselctor< fl join nodes which have coordinates and node identification with the same values. False fl no node reordering apart from the nodes with the node identification switch -E that are always positioned at the end "AdvancingFront" fl Simple reordering scheme based on the element connectivity table... except the nodes that match the nodelector Isee also Selecting NodesM False fl supprese tie Ithe tie is by default suppresed for all nodes that have node identification switch -T.. see Node IdentificationM True fl prevent closing of the CDriver console on exit Reordering of the nodes effects the numerical efficiency of the linear solver used as well as memory consumption.masterBodyID1 =.= default value False Hno output fileL False False 0 "OptimizeDll" "SearchFunction" Automatic HÒ&L "Precision" "Tolerance" "Tie" 6 10-10 True "Debug" "NodeReordering" False Automatic "ContactPairs" Automatic Options for the SMTAnalysis function.p1 . SMTFindNodes. . animations. . spªst. upadate time and multiplier. hpªht. and make the solution at the end of the previous time step to be equal to current solution Hapªat.8.animations.D. 1.0 Do@[email protected] Finite Element Environment 185 Options for the SMTAnalysis function. While@SMTConvergence@10 ^ .1. l@t_D := If@OddQ@Floor@Ht + 1L ê 2DD. SMTNextStep SMTNextStep@Dt. Plot@l@tD. 8i.1D H2 Floor@Ht + 1L ê 2D . . 0. 8t. Bending of the column (path following procedure. 2D solids). Bending of the column (path following procedure. 100<D SMTStepBack .tL. l@t+DtD-l@tDD where l is a multiplier function See also: Iterative solution procedure. DlD reset environment variables to the new time increment Dt . SMTNewtonIteration SMTNewtonIteration@D one iteration of the general Newton-Raphson iterative procedure See also: Iterative solution procedure. 10D.5 -1.2D solids) Example: Zig-zag load This is a path following procedure with a zig-zag multiplier increment l as a function of time. 10<D 1. lD ª SMTNextStep@Dt. boundary conditions multiplier increment to Dl. lD.0 0. 1.5 2 4 6 8 10 -0. SMTNewtonIteration@D. Bp≡BtL SMTNextStep@Dt. Bending of the column (path following procedure. ctype< 8True. True. See also: Iterative solution procedure." Abort "D SMTConvergence@"Reset"D The SMTConvergence command continuously stores data related to iterations and makes decisions accordingly to the history of iterations. stªsp. False. 0. Dtmin .2D solids) SMTConvergence [email protected] < True 9False. one more iteration is required iterative process is aborted in the case of divergence »»Dat »»>tol . "MaxBound"< 8True. True. description »»Dat »»>tol . Dlmax . one more iteration is required convergence conditions for the iterative procedure have been satisfied the value of the boundary conditions multiplier is larger or equal lmax H l ¥lmax L divergence the value of the boundary conditions multiplier increment is less than prescribed minimum H Dl <Dlmin L 8"Adaptive". ¶< adaptive time increment that is equivalent to the adaptive multiplier increment ª ª .186 AceFEM Finite Element Environment SMTStepBack SMTStepBack@D make the current state of the system to be the same as the one at the end of the previous time step Hatªap. "MinBound"< "Adaptive" 8"Adaptive Time". 0.animations. »»Dat »»= 8False. ¶. Dl. m. 2ê3 n. Dl. one more iteration is required »»Dat »»<tol . htªhpL See also: Iterative solution procedure. optionsD check if the convergence conditions for the iterative procedure have been satisfied SMTConvergence@D ª SMTConvergence@10^-7. tmax < Return values accordingly to the type. 0. type. Dtmax . n.2D solids) type "Abort" return value True none "Analyze" True False ctype 8"Adaptive". m.15. convergence condition for the iterative procedure has been satisfied divergence »»Dat »»>tol .animations. Dlmin . False. Bending of the column (path following procedure. The SMTConvergence@"Reset"D command clears the history of iterations. Dl is the proposed multiplier (or time) increment. n is the maximum number of iterations.1D. 8Dtg.Dlmax ê4<.Dlg1<< fl if alternating solution occurs start the following procedure: first if Dt<Dtl »» Dl<Dll then set SMTIData@"SubIterationMode". Automatic "IgnoreMinBound" False "AlternativeTarget" HTrue&L Options for the SMTConvergence function.Dll<. Dlmax is the maximum value of the boundary conditions multiplier increment (or time increment). . The primal target of the adaptive path following procedure is to reach lmax êtmax .1D.Dlg<. if solution still alternate and Dt<Dtg »» Dl<Dlg then set SMTIData@"GlobalIterationMode". convergence conditions have been satisfied and Dt>Dtg1 »» Dl>Dlg1 then set SMTIData@"GlobalIterationMode".8Dtmax ê10.Dlmax ê10<. lmax is the minimum value of the boundary conditions multiplier (or time).0D and repeat iterations default value "Divergence" "PostIteration" enables an additional call to the SKR user subroutines after the convergence of the global solution Isee SMSTemplateM Automatic fl perform postiteration call accordingly to the value of the template constant of specific element Isee SMSTemplateM False fl prevent post-iteration call True fl force post-iteration call If an alternating solution occurs at the minimum timeêmultiplier increment H Dl <Dlmin or Dt <Dtmin L then ignore the minimum increment condition and proceed for another timeêmultiplier step. If the target function yields False then the divergence of the NR procedure for the given time increment is assumed and treated accordingly to the other options given to the SMTConvergence function. Alternative target is a function that is evaluated at the end of each successfuly completed timeêmultiplier increment. option "Alternate" description False fl alternating solution is ignored "Divergence" fl alternating solution means divergence True ª "Divergence" Automatic ª 88Dtmax ê4. m is the desired number of iterations.8¶.¶<< 88Dtl. Where tol is the tolerance. Dlmin is the minimum value of the boundary conditions multiplier increment (or time increment).AceFEM Finite Element Environment 187 ctype "NêA" "Divergence" "Alternate" "ErrorStatus" "Unknown" description error in numerical procedures »»Dat »» ض alternating solution the error status flag has been set to 2 the reason for the lack of convergence of iterative procedure is unknown Divergence type accordingly to the ctype. 8Dtg1. The "AlternativeTarget" option sets an additional target for the adaptive path following procedure. and ctype is the character constant that explains the reason for the lack of convergence of the iterative procedure. rst file is a text file that contains input data and eventual definitions of specified symbols. The name. and ctype is the character constant that explains the reason for the lack of convergence of the iterative procedure.…D and appends definitions associated with the given symbols The SMTDump commands saves all the data associated with the current state of the active AceFEM session so that it can be retrived by the SMTRestart command.rst and name.rsb symb1.symb2. .rst and name. saves restart data to the files name. The SMTDump command creates two files. CDriver specific! See also: SMTRestart Example: Restarting the AceFEM session Here we first analyze the give structure up to the load level 500. Dlmax is the maximum value of the boundary conditions multiplier increment (or time increment). lmax is the minimum value of the boundary conditions multiplier (or time). Dlmin is the minimum value of the boundary conditions multiplier increment (or time increment).188 Where tol is the tolerance.rsb file is a binary file that stores nodal and element data. AceFEM Finite Element Environment SMTDump SMTDump@nameD saves restart data to the files name. The name. << AceFEM`. n is the maximum number of iterations.rsb SMTDump@name. m is the desired number of iterations. Dl is the proposed multiplier (or time) increment. SMTMeshA"A". [email protected] µ 10-12 IterêTotal=6ê21 Status=0ê8Convergence< TêDT=4. SMTShowMesh@"DeformedMesh" Ø True. PlotRange Ø AllD TêDT=1. 5<. Old restart files dump1 are replaced by new. 15.ê1. "n *" -> .7.. SMTNextStep@1. SMTStatusReport@D. 8. 2 -> 0D."Y"E < 0. 100D. 500<D . lêDl=415. [email protected]. "Contour" Ø 20.74084 µ 10-13 IterêTotal=5ê26 Status=0ê8Convergence< The state of the analysis at the load level 500 is then stored in "dump1" restart files.1 &.28439 µ 10-11 ê9. "Mesh" Ø False. SMTAddEssentialBoundary@"X" ã 40 &.531 ˛Da˛ê˛Y˛=4. stepP3T . 880.AceFEM Finite Element Environment 189 SMTInputData@D.ê100.69452 µ 10-9 ê9. SMTAnalysis@D. Ò2 Sin@Ò2 êê ND ë 20 + 4 Ò1 = &. SMTShowMesh@"DeformedMesh" Ø True. If@stepP1T. .26182 µ 10-13 IterêTotal=7ê15 Status=0ê8Convergence< TêDT=3.. lêDl=500. While@ While@step = SMTConvergence@10 ^ . If@stepP4T === "MinBound".9646 ˛Da˛ê˛Y˛=4. 8"E *" -> 1000. 2 -> . See also: SMTDump Here tha data associated with the state of the AceFEM session at the load level 500 is restored from the "dump1" restart files and the analysis then continues up to the load level 1000. "Legend" Ø FalseD. ArrayA 9Ò2. .531ê126. 1 -> 0. 8"Adaptive". SMTAddEssentialBoundary@"X" ã 1 &. SMTNextStep@1. Show@SMTShowMesh@"Show" Ø False.035ê188. "BoundaryConditions" Ø TrueD. "Show" Ø False.49<D.ê1.505 ˛Da˛ê˛Y˛=6. "Mesh" Ø False. lêDl=226.03293 µ 10-13 IterêTotal=8ê8 Status=0ê8Convergence< TêDT=2.01E. SMTDump@"dump1"D. SMTAddNaturalBoundaryAAbsA"X" Sin@"X" êê ND ë 20 + 8 .93678 µ 10-8 ê1. 2 -> 0D. stepP2TD D. "Contour" Ø 20. "SEPSQ1DFHYQ1NeoHooke". 300.ê84. 82. If@Not@stepP1TD. "Show" -> "Window"DD. 1 -> 0. ˛Da˛ê˛Y˛=8. SMTStatusReport@"Dl < Dlmin"DD. "Q1". lêDl=100.55315 µ 10-8 ê9. 40<EE. SMTAddDomain@"A". "Field" Ø "Sxy".ê1.ê1. "Field" Ø "Sxy". PlotRange Ø AllD TêDT=4.13948 µ 10-12 IterêTotal=6ê39 Status=0ê8Convergence< TêDT=7.rsb files and continues the AceFEM session from the point of the corresponding SMTDump command CDriver specific! See also: SMTDump .19246 µ 10-12 ê1. 300. "Show" -> "Window"DD.9646 ˛Da˛ê˛Y˛=4. If@stepP1T. SMTRestart@"dump1"D.ê1. SMTNewtonIteration@DD. "Mesh" Ø False. "Mesh" Ø False. "Contour" Ø 20. If@Not@stepP1TD. stepP2TD D.ê84. "Field" Ø "Sxy".ê119. .ê1. "Legend" Ø FalseD.237 µ 10-12 IterêTotal=5ê44 Status=0ê8Convergence< SMTRestart SMTRestart@nameD reads the restart data from the name. While@ While@step = SMTConvergence@10 ^ .01415 µ 10-12 IterêTotal=6ê33 Status=0ê8Convergence< TêDT=6.943 ˛Da˛ê˛Y˛=2. If@stepP4T === "MinBound". 8.ê1. 15.190 AceFEM Finite Element Environment Here tha data associated with the state of the AceFEM session at the load level 500 is restored from the "dump1" restart files and the analysis then continues up to the load level 1000.186ê142. SMTStepBack@DD.ê1. "Show" Ø False.186 ˛Da˛ê˛Y˛=3.38806 µ 10-9 ê1. lêDl=642. lêDl=880. "BoundaryConditions" Ø TrueD. stepP3T .871 ˛Da˛ê˛Y˛=1. [email protected] µ 10-13 IterêTotal=6ê27 Status=0ê8Convergence< TêDT=5. SMTShowMesh@"DeformedMesh" Ø True.18359 µ 10-13 ê1. 1000<D . lêDl=500. SMTShowMesh@"DeformedMesh" Ø True. lêDl=1000.01. "Field" Ø "Sxy".55315 µ 10-8 ê9. "Contour" Ø 20. SMTStatusReport@D. 8"Adaptive". Show@SMTShowMesh@"Show" Ø False.129ê237.7. << AceFEM`.rst and name. SMTStatusReport@"Dl < Dlmin"DD. SMTStatusReport@SMTNodeData@5. "at"DD SMTSessionTime SMTSessionTime@D gives the total number of seconds of real time that have elapsed since the beginning of your AceFEM session . Standard user subroutines. Finite Strain Element for Direct and Sensitivity Analysis. sensitivity pseudo-load vector is added to the global pseudo-load vector Y. Solid. Shape and Load Sensitivity Analysis of Multi-Domain Example . SMTAddSensitivity. set of linear equations is solved K ∂a =Y ∂fi that yields sensitivity of global (nodal) variables fl user subroutine "Dependent sensitivity" is called for each element to resolve sensitivity of local (element) variables See also: SMTSensitivity. SMTTask See: User Defined Tasks See also: Standard user subroutines SMTStatusReport SMTStatusReport@D print out the report of the current status of the system SMTSolutionReport@exprD print out the report of the current status of the system tagged by the arbitrary expression expr This prints out the report of the current status of the system and the current values of all degrees of freedom in node 5.AceFEM Finite Element Environment 191 CDriver specific! See also: SMTDump SMTSensitivity SMTSensitivity@D solve the sensitivity problem for all sensitivity parameters The following steps are performed for all sensitivity parameters: fl fl fl user subroutine "Sensitivity pseudo-load" is called for each element. Parameter. Additional environment variables "MissingSubroutine". commentD defined integer and real type environment variables and arbitrary comments Ifor details see Code ProfilingM . file. SMSExport@SMSInteger@idata$$@"ElementShape"DD + 1. The environment variable idata$$["ErrorStatus"] (see table below) identifies the general error status. [email protected]. SMTSimulationReport SMTSimulationReport@D produce report identifying the percentage of time spent in specific tasks during the analysis SMTSimulationReport@ print out additional information stored in user idata_names.1.192 AceFEM Finite Element Environment SMTErrorCheck SMTErrorCheck@ check for error events and print error messages on: console. SMSIfAJ § 10-9 E. "ElementState". Error event variables are set in a user subroutine. SMSEndIf@D. idata$$@"ElementShape"DD. report. In the case of error event the error message is produced and all monitored variables are set back to zero value. "SubDivergence". The SMTErrorCheck function is used to processs the error events.0D There are two types of environment variables identifying various error events. time step cutting is recommendedL fatal errors were detected during the session Htime step cutting is necessaryL fatal error Hterminate the processL Codes for the error status switch. idata$$@"ErrorStatus"DD. Hevaluation is still performed in a regular way. They should be increased by 1 whenever the error condition that sepcifies specific event appears. rdata_names. Here is the part of the symbolic input where the error event is reported if the Jacobean of the nonlinear coordinate mapping (J) becomes negative. Error status 0 1 2 3 Description no special events were detected during the session warnings were detected during the session. "ElementShape" and "MaterialState" (see Environment Data ) then give more information about the error. notebookD console≠0 fl console driver window Hif openedL file≠0 fl output file Hif openedL report≠0 fl report window notebook≠0 fl current notebook SMTErrorCheck@D ª SMTErrorCheck@1. .AceFEM Finite Element Environment 193 option "Output" description a list of output devices: "Console" fl current notebook "File" fl current output file Hif definedL default value 8"Console"."File"< Options for the SMTSimulationReport function. 194 AceFEM Finite Element Environment Postprocessing SMTShowMesh SMTShowMesh@optionsD display two.or threedimensional graphics using options specified and return graphics object . and during the analysis only Bt is displayed.green.if possible. The nodes with the non-zero essential boundary condition are marked with color points.blueD . display nodal and element numbers default value True False None True "Marks" False False All "BoundaryConditions mark nodes with the non-zero boundary conditions " "Domains" list of the domain identifications Honly the domains with the domain identification included in the list are plottedL fill in the element surfaces with the element surface color or with the contour lines the vector of nodal values that defines scalar field used to calculate element surface color or contour lines display contour lines of the scalar field p defined by the "Field" option include legend specifying the colors and the range of the "Field" values display deformed mesh by adding the vector field u multiplied by the "Scale" option to the nodal coordinates X IX:= X+u M scaling factor for deformed mesh graphics directive which specifies that graphical objects which follow are to be displayed.1D<L. 8Circle@80. The coordinate system for the user graphics is the same as the coordinate system of the structure! apply arbitrary function on the results of the SMTShowMesh command and return the results the SMTShowMesh command is not executed if the absolute difference in time for two successive SMTShowMesh calls is less than "TimeFrequency" HNew in Mathematica 6L "Elements" "Field" "Contour" "Legend" "DeformedMesh" "Scale" "Opacity" True False False True False 1. . The nodes with the non-zero natural boundary condition are marked with arrow for the nodes with two unknowns and with color point otherwise. Before the analysis the Bp and dB boundary values (see also Input Data) are displayed separately. RGBColor@red. with given opacity Hnumber between 0 and 1L HNew in Mathematica 6L user supplied graphic primitives He. Automatic. False.0<.g. [email protected] Finite Element Environment 195 option "Show" "Label" "Mesh" description specifies output device an expression or the list of expressions to be printed as a label for the plot display mesh as wire frame accordingly to the mesh type Possible mesh types include True. False "User" 8< "Combine" "TimeFrequency" HÒ&L 0 "MultiplierFrequency the SMTShowMesh command is not executed if the absolute difference in multiplier for two successive " SMTShowMesh calls is less than "MultiplierFrequency" HNew in Mathematica 6L "StepFrequency" the SMTShowMesh command is not executed if the absolute difference in step number for two successive SMTShowMesh calls is less than "StepFrequency" HNew in Mathematica 6L 0 0 Main options for the SMTShowMesh function. g. "Show" option "Show"ØTrue "Show"ØFalse "Show"Ø"Window" "Show"Ø8"Export". nodal value no label give an overall label for the plot . optionsD export data to a file. description display 10 contour lines display n contour lines display n contour lines taken from the range 8min. and during the analysis only Bt is displayed. format.max< "Legend" option "Legend"->True "Legend"Øndiv "Legend"Ø"MinMax" "Legend"ØFalse Methods for setting up contour lines. "Window" False displays graphics into postprocessing notebook and retuns graphics objectL "Show"Ø8"Animation".n< Methods for setting up contour lines. description display min.max. "Contour" option "Contour"->True "Contour"Øn "Contour"Ø8min. but no display is generated displays graphics in a separate post-processing notebook ª Export@ file. file. description display legend with default number of divisions display legend with ndiv divisions display only minimum and maximum values no legend "Label" option "Label"->Automatic "Label"ØNone "Label"Øexpression Methods for setting up plot label. and max. The nodes with the non-zero natural boundary condition are marked with arrow for the nodes with two unknowns and with color point otherwise. converting it to a specified format Hsee also Export commadL creates subdirectory with the name keyword and exports current graphics as GIF file with the name frame_number. options< description displays graphics as a new notebook cell the graphics object is returned.196 AceFEM Finite Element Environment The nodes with the non-zero essential boundary condition are marked with color points.produced graphics. format. keyword. Before the analysis the Bp and dB boundary values (see also Input Data) are displayed separately. options< "Show"Ø"Window" False Methods for output device.gif Hframe numbers are counted automatically and options are the same as for command ExportL show options can be combined H e. uY .AceFEM Finite Element Environment 197 "DeformedMesh" option "DeformedMesh"Ø True description Original finite element mesh is deformed as follows Xnew =X +uX Ynew =Y +uY Znew =Z +uZ where the displacement vectors uX . uY = SMTPost@2D. uY . uZ =SMTPost@"DeformedMeshZ"D. else uX = SMTPost@1D. uZ " DeformedMesh "Ø 8uX . uY ."ElementNumber"< no numbers display element numbers display node numbers . If the "DeformedMeshX". user defined displacement vectors uX . "Marks" option "Marks"->True "Marks"ØFalse "Marks"Ø"ElementNumber" "Marks"Ø"NodeNumber" Methods for setting up contour lines. "DeformedMeshY" and "DeformedMeshZ" postprocessing codes are specified by the user then uX = SMTPost@"DeformedMeshX"D. uY = SMTPost@"DeformedMeshY"D. uZ =SMTPost@3D. description display nodal and element numbers ª "Marks"->8"NodeNumber". uZ are by default obtained using the SMTPost Isee SMTPostM command. uZ < Methods for setting up deformed mesh. 01. uZ are arbitrary vectors of NoNodes numbers (see also SMTPost ). legend graphics object. "ColorFunction"Ø Function@8x<. The vectors of nodal values p. Several examples are presented in Postprocessing (3D heat conduction).. FontFamilyØ"Arial"< False 8. the boundary conditions and arbitrary postprocessing quantities.g. The SMTShowMesh function is the main postprocessing function for displaying the element mesh. uX .01< Automatic Automatic "ZoomNodes" False "ZoomElements" False "NodeMarksField" "RawOutput" False False "ShowFor" Automatic Additional options for the SMTShowMesh function. see also Semi-analytical solutionsM default value 8FontSizeØ9. n.ColorData@"GrayTones"D@xDD L the parameter is used to select nodes Iit has one of the forms described in section Selecting Nodes. examples SMTShowMesh@D . uY .01. vertex field values. only the selected elements are depictedM the vector of nodal values that are used to calculate color for each nodal point mark insteade of the graphics return raw data as follows: 8 vertex coordinates. only the elements with all nodes selected are depictedM the parameter is used to select elements Iit has one of the forms described in section Selecting Elements. complete graphics object < HNew in Mathematica 6L specify a list of rules that transforms symbolic expressions He.. for nodal coordinatesL into numerical values Ioption is MDriver specific. vertex collors that correspond to vertex values.g.198 AceFEM Finite Element Environment option "TextStyle" "NodeMarks" "NodeTagOffset" "NodeID" "ColorFunction" description specifies the default style and font options with which text should be rendered mark all the nodes with the circle position of the node number relative to the node list of the node identifications Honly the nodes with the node identification included in the list are plottedL a function to apply to the values of scalar field p defined by the "Field" option to determine the color to use for a particular contour region He. White<<D SMTShowMesh@"Opacity"Ø0."Mesh"ØBlueD SMTShowMesh@"Marks"Ø"NodeNumber"D . LightingØ88"Ambient". LightingØ88"Ambient".White<<D SMTShowMesh@"Elements"ØRed.AceFEM Finite Element Environment 199 SMTShowMesh@"Elements"ØWhite.7D SMTShowMesh@ "Elements"ØFalse. "Contour"ØTrueD SMTShowMesh@"Field"->"Temp*".3 && H"X"<=0 »» "Y"¥0L&L. "NodeMarks"Ø6."Zoom"Ø H"Z"<=0."Legend"ØFalseD ."Contour"Ø4.White<<D SMTShowMesh@"Field"Ø"Szz". "Mesh"ØBlack. LightingØ88"Ambient". ColorData@"GrayTones"[email protected] AceFEM Finite Element Environment SMTShowMesh@"Field"Ø"Sxx"D SMTShowMesh@ "Field"Ø"Sxx". "ColorFunction"ØFunction@8x<. To prevent this the size of the frames has to be explicitly prescribed by an additional option "Show"Ø{"Animation". keyword. The actual size of the frame can vary during the animation resulting in non-smooth animation. hspec}}. keyword}.2D solids).0 0. The existing keyword subdirectory is automatically deleted. ImageSize->{wspec.Bottom<.-5."Legend"ØFalseD SMTShowMesh@ Epilog->Inset@Plot@Sin@xD."Flash"D generates a Shockwave Flash animation from frames stored by the SMTShowMesh command under given keyword Hnew in Matematica 6L SMTMakeAnimation@keyword."GIF"D generates an animated GIF animation from frames stored by the SMTShowMesh command under given keyword Animation frames are stored into the keyword subdirectory of the current directory.5 -1.8x.5 -4 -2 -0.5<D<D&LD 1. See also Bending of the column (path following procedure.8x.0 2 4 SMTMakeAnimation SMTMakeAnimation@keywordD generates a notebook animation from frames stored by the SMTShowMesh command under given keyword Hnew in Matematica 6L [email protected]<D D 1.5<D.0 0. .0 2 4 SMTShowMesh@ "Combine"Ø HRow@8Ò.AceFEM Finite Element Environment 201 SMTShowMesh@"Field"Ø"Szz".5 -1.5 -4 -2 -0. The width and the height of the animation are specified in printer's points. "Mesh"ØFalse.Plot@[email protected]. The corresponding SMSShowMesh option is "Show"Ø{"Animation". 8Right.-5.8Right. …= The SMTPostData function can only be used if the element user subroutine for data post-processing has been defined ( s e e Standard user subroutines )..pt2 . keyword. See also: SMTPost . The actual size of the frame can vary during the animation resulting in non-smooth animation. The post-processing code pcode can corresponds either to the integration point or to the nodal point post-processing quantity.pt2 .…=."File"->TrueD append the result of the SMTData function to the output file The SMTData function returns data according to the code gcode or ecode and element number ie.elementselectorD defined by nodeselector Isee Selecting NodesM as a sum of residual vectors of all elements defined by elementselector Isee Selecting Elements M that contribute to the node SMTPostData SMTPostData@pcode. hspec}}. To prevent this the size of the frames has to be explicitly prescribed by an additional option "Show"Ø{"Animation".animations. .ptE ª get the values of postprocessing quantities 9pcode1 . An advanced user can use the Data Base Manipulations to access and change all the analysis data base structures during the analysis. 202 The corresponding SMSShowMesh option is "Show"Ø{"Animation".pcode1 . The value is obtained in that case by extrapolation of the field from the element that lies closes to the given point. Postprocessing (3D heat conduction). See also Bending of the column (path following procedure. ImageSize->{wspec. SMTData SMTData@gcode _StringD get data accordingly to the code gcode SMTData@ie.…= in point pt SMTPostDataApcode.pcode2 .. SMTPointValues. ecode _StringD get element data for the element with the index ie accordingly to the code ecode [email protected] . keyword}.The data returned can be used for postprocessing and debugging. The existing keyword subdirectory is automatically deleted.Animation frames are stored into the keyword subdirectory of the current directory.…=E ª get the values of postprocessing quantity pcode in points 9pt1 .2D solids).ptD get a value of post-processing quantity defined by postprocessing keyword pcode in point pt SMTPostDataA9pcode1 . The width and the height of the animation are specified in printer's points.. AceFEM Finite Element Environment SMTResidual SMTResidual@nodeselectorD evaluate residual HreactionL in nodes defined by nodeselector Isee Selecting NodesM as a sum of residual vectors of all elements that contribute to the node SMTResidual@ evaluate residual HreactionL in nodes nodeselector. The given point can lie outside the mesh. .2.g. ecode "All" "SKR" "SSE" "SHI" "SRE" "SPP" Action collect all the data associated with the element call to the "SKR" user subroutine Isee SMSStandardModule M call to the "SSE" user subroutine Isee SMSStandardModule M call to the "SHI" user subroutine call to the "SKR" user subroutine call to the "SPP" user subroutine Return values String tangent matrix and residual for element ie sensitivity pseudoload vector for element ie True residual for element ie get arrays of integration point and nodal point postprocessing quontities for element ie True "Usern" call to the user defined "Usern" user subroutine where n=1.…. gcode "MatrixGlobal" "VectorGlobal" "MatrixLocal" "VectorLocal" "TangentMatrix" Description global matrix according to the last completed action Icommand yields a SparseArrayM global vector according to the last completed action contents of the local matrix received from the user subroutine in the last completed action He.9 Various element data directly accessible from Mathematica. Icommand yields a SparseArrayM global residual vector Hincludes contribution from the elements and the natural boundary conditionsL for all unknown parameters the index of the node where the parameter appears for all unknown parameters the identification of the node where the parameter appears for all unknown parameters the list of elements where the parameter appears "Residual" "DOFNode" "DOFNodeID" "DOFElements" Various global data directly accessible from Mathematica. last evaluated element residual vectorL global tangent matrix Hmatrix is obtained by executing one Newton-Raphson iteration HSMTNewtonIterationL without solving the linear system of equationsL.g. last evaluated element tangent matrixL contents of the local vector received from the user subroutine in the last completed action He.AceFEM Finite Element Environment 203 gcode "Time" "Multiplier" "Step" Description real time natural and essential boundary conditions multiplier Hload levelL total number of completed solution steps Various analysis data directly accessible from Mathematica. Structure is clamped at X=0 and it has prescribed vertical displacement at X=L. The . It is used later by the SMTGet command to locate the position of post-processing data. Session can be divided into analysis and post-processing session. Post-processing data stored is composed from all scalar field defined by post-processing subroutines of all elements.idx file is text file that contains all the input data. the data is not saved if the absolute difference in step number for two successive SMTPut calls is less than "StepFrequency" The keyword pkey can be arbitrary integer or real number and it has to be unique for each SMTPut call. CDriver specific! See also: Standard user subroutines Example Here is an example of the analysis of a rectangular structure (L×L). all keys and also eventual definitions of symbols stored by the SMTSave command.hdf file is a binary file that stores actual post-processing data.optionsD real numbers uservector to the file specified by the SMTAnalysis option PostOutput Isee SMTAnalysis M using the keyword pkey SMTPut@pkeyD ª SMTPut@pkey. save all post-processing data together with the additional vector of arbitrary uservector. The . . The SMTPut command creates two files.8<D SMTPut@D ª SMTPut@SMTIData@"Step"DD option "TimeFrequency" description the data is not saved if the absolute difference in time for two successive SMTPut calls is less than "TimeFrequency" default value 0 0 0 "MultiplierFrequency the data is not saved if the absolute difference in multiplier for " two successive SMTPut calls is less than "MultiplierFrequency" "StepFrequency" Options for the SMTPut function.204 AceFEM Finite Element Environment SMTPut SMTPut@pkey. SMTPut@SMTData@"Step"D. If@Not@step@@1DDD . Post-processing session Here the new. The current step number (SMTIData["Step"]) is used as the keyword under which the data is stored. SMTNextStep@1. SMTShowMesh@"DeformedMesh" Ø True. "Contour" Ø 10. L = 5. "Output" -> "tmp. SMTStatusReport@"Error: Dl < Dlmin"D. 0<<.hdf.D. SMTAnalysis@"PostOutput" -> "post".1. SMTStepBack@D. Abort@D. SMTAddDomain@"W1 ". While@ While@step = SMTConvergence@10 ^ . Here are saved some general parameters of the problem . 5<. SMTNextStep@1. 8880. 8"E *" -> Emodul.hdf. SMTNewtonIteration@D. 0. SMTAnalysis@"PostInput" -> "post"D. 2 -> 0<. Additionally the total force is also stored into binary file post.D. << AceFEM`. SMTMesh@"W1 ". "n *" -> 0. 2 -> 1<D.8. 5<. LD. "T2". If@step@@4DD === "MinBound".txt"D. stepP2TD D. 8 "X" ã L &. Emodul = 1000.1D. D. SMTInputData@D. "SEPET2DFHYT2NeoHooke". Emodul 1000 . 85. forceD. 1<D. SMTSave@Emodul. "Show" Ø "Window"D. If@step@@1DD. 85.D. All the symbols stored by the SMTSave command are available at this point. SMTAddEssentialBoundary@8 "X" ã 0 &. 1 -> 0. 880. 0. 8.0001. independent session starts by reading input data from the previously stored post-processing data base file.3<D. SMTInputData@D. force = Plus üü SMTResidual@"X" ã L &D. . 5<<<D.AceFEM Finite Element Environment 205 Analysis session << AceFEM`. 15. 8"Adaptive". Here the input data structures are saved into the file post. 0<. 85. During the analysis all the post-processing data is stored for each converged step. step@@3DD . "Field" Ø "Sxx". 46. u. Eyx. Exx. 10< The SMTGet[3] command reads the data stored under keyword 3 (step 3 for this example) back to AceFEM and returns the user defined vector of real numbers for step 3 (total force for this example). Exy. Syy. 4.206 AceFEM Finite Element Environment The SMTGet[] command returns all the keywords and the names of the stored post-processing quantities. Sxy. 8allkeywords. 9. v< 81. force = SMTGet@3D 9. 7. 8L ê 2.3. DeformedMeshY. Szz. Ezz. 6.2459= Here the post-processing quantity "Sxx" for the current step is evaluated at the centre of the rectangle SMTPostData@"Sxx". Syx. 2. Mises stress. L ê 2<D 0.284164 SMTGet SMTGet@pkeyD get all post-processing data stored under the keyword pkey CDriver specific! See also SMTPut SMTSave SMTSave@symbolD appends definitions associated with the specified symbol to a file specified by the SMTAnalysis' s option PostOutput CDriver specific! See also SMTPut .59259 µ 10-13 . Sxx. 8. Eyy. allpostnames allkeywords 8DeformedMeshX. 5. allpostnames< = SMTGet@D. 3. valueD set the value of the integer type environment variable with the code code to be equal value SMTIData@"All"D get all names and values of integer type environment variables SMTRData@"code"D get the value of the real type environment variable with the code code SMTRData@"code".g.vNoNodes <D set the data with the code code for all nodes to be equal given values Get or set the general nodal data. valueD set the data with the code code for nodes selected by nodeselector to be equal value SMTNodeData@"code"D get the data with the code code for all nodes SMTNodeData@ "code". The values of the code parameter are specified in Integer Type Environment Data and Real Type Environment Data. IMPORTANT: The structure of the global tangent matrix has to be updated with the SMTSetSolver command in the case that the change of element or nodal data has effect on the structure of the global tangent matrix (e.AceFEM Finite Element Environment 207 Data Base Manipulations SMTIData SMTIData@ "code"D get the value of the integer type environment variable with the code code SMTIData@ "code". if essential boundary conditions are added or removed during the analysis). valueD set the value of the real type environment variable with the code code to be equal value SMTRData@"All"D get all names and values of integer type environment variables Get or set the real or integer type environment variable.…. SMTIData@"NoNodes"D SMTRData See also: SMTIData SMTNodeData SMTNodeData@nodeselector. 8v1 . The nodeselector can be a node number.v2 . . The values of the code parameter are specified in Node Data . "code". "code"D get the data with the code code for nodes selected by nodeselector SMTNodeData@nodeselector. a list of node numbers or a logical expression (see also Selecting Nodes ). This returns the number of nodes. The values of the code parameter are specified in Node Specification Data. 0< D SMTNodeSpecData SMTNodeSpecData@ "code"D get the data with the code code for all node specifications SMTNodeSpecData@ NodeID. "at". "sX". set the current value of all unknowns of the problem 9a1 . SMTNodeData@5."All"D get all names and values of the data for the node specification NodeID Get node specification data.aNoEquations =E Get an additional information related to the node that is not a part of the nodal data structure. SMTNodeData@5. "at"D D This sets all unknowns to zero in all nodes. "at"D This adds 1 to unknowns in first 10 nodes. Node specification data can not be changed. 81. "sdB". 0< D This sets the BC velocity field in node 5 to {1. This returns the current values of all unknowns in node 5. 0 * SMTNodeData@"at"D D This sets the shape velocity field in node 5 to {1.…. The ordering of the components is done accordingly to the current ordering of equations as defined by SMTNodeData["DOF"]. 1 + SMTNodeData@Range@10D."All"D get all names and values of the data for nodes selected by nodeselector SMTNodeData@"All"D get all names and values of the data for all nodes Get an additional information related to the node that is not a part of the nodal data structure. " NodeID "D get the node specification NodeID for nodes selected by nodeselector SMTNodeData@" NodeID "D get the node specification NodeID for all nodes SMTNodeData@nodeselector. 81.208 AceFEM Finite Element Environment Interpreted nodal data SMTNodeData@ " Unknowns "D get a vector of current values of all unknowns of the problem SMTNodeDataA" Unknowns ". SMTNodeData@nodeselector. "code"D get the data with the code code for the node specification NodeID SMTNodeSpecData@ NodeID.a2 .0}. SMTNodeData@"at". SMTNodeData@Range@10D. SMTElementData . The vector of unknowns is composed of all nodal degrees of freedom that are not constrained.0} SMTNodeData@5. code. This returns a list of nodes for 35-th element.codeD get the data with the code code for elements selected by elementselector SMTElementData@ set the data with the code code for elementselector. The values of the code parameter are specified in Domain Specification Data. valueD set the data with the code code for domain dID to be equal value SMTDomainData@"code"D get the data with the code code for all domains SMTDomainData@ dID. "code"D get the data with the code code for i -th domain SMTDomainData@i_Integer. valueD set the data with the code code for i-th domain to be equal value Get or set the element specification data."All"D get all names and values of for all elements or for the selection of elements Get an additional information related to the element that is not a part of the element's data structure.AceFEM Finite Element Environment 209 SMTElementData SMTElementData@elementselector. This returns material data specified for the domain "solid". a list of element numbers or a logical expression (see also Selecting Elements ). "Data"D This sets material data specified for the domain "solid" to new values. "code". The elementselector can be an element number. The values of the code parameter are specified in Element Data .valueD elements selected by elementselector to be equal value SMTElementData@"code"D get the data with the code code for all elements Get or set the element data. " Domain "D for all elements or for the selection of elements SMTElementData@" Body "D get the body identification b ID for SMTElementData@ elementselector. " Code "D SMTElementData@"All"D SMTElementData@elementselector. . SMTElementData@" Domain "D SMTElementData@ get the domain identification dID elementselector. " Body "D all elements or for the selection of elements SMTElementData@" Code "D SMTElementData@ get the element type etype for all elements or for the selection of elements elementselector. "code". SMTElementData@35. "code"D get the data with the code code for domain dID SMTDomainData@dID. "Nodes"D SMTDomainData SMTDomainData@dID."All"D get all names and values of the data for domain dID SMTDomainData@"DomainID"D get domain identifications dID for all domains SMTDomainData@i_Integer. SMTDomainData@"solid". 8ordering.. SMTDomainDataA"solid".1 if data is not available) to Integer Type Environment variable "NegativePivots" and the number of near-zero pivots to variable "ZeroPivots".comêsoftwareêproductsêmklêdocsêmanuals..D initialize solver with solver identification number solverID and a set of parameters depending on the solver type SMTSetSolver@D reset solver structures solverID 0 1 2 3 Description appropriate solver is chosen automatically standard LU profile unsymmetric solver Hno user parameters definedL standard LDL profile symmetric solver Hno user parameters definedL NOT A PART OF THE STANDARD DISTRIBUTION !!! SuperLU unsymmetric solver SMTSetSolver@4. It has one of the forms described in section Selecting Elements.htmL 4 5 Linear solver sets the number of negative pivots (or .p2 . sy .. It has one of the forms described in section Selecting Nodes.PARDISO initialization .8pivot_tresh. SMTSetSolver SMTSetSolver@solverIDD update all structures related to the global tangent matrix and number of equations accordingly to the value of parameter solverID [email protected]. Intel MKL Solver . fill<D NOT A PART OF THE STANDARD DISTRIBUTION !!! UMFPACK solver PARDISO solver from INTEL MKL H manual is available at http:êêwww.p1 . SMTFindElements SMTFindElements@elementselectorD The parameter elementselector is used to select elements. …=E SMTFindNodes SMTFindNodes@nodeselectorD The parameter nodeselector is used to select nodes.210 AceFEM Finite Element Environment This sets material data specified for the domain "solid" to new values. n. The the number of negative pivots ( SMTIData["NegativePivots"]) is only available for the standard LU and LDL solvers and for the PARDISO mtype=-2 solver!!. work_allocation<. "Data". 9E. The data can be accessed through the SMTIData["NegativePivots"] and SMTIData[""ZeroPivots"] commands. The solver will not perform more than the absolute value of nstep steps of iterative refinement and will stop the process if a satisfactory level of accuracy of the solution in terms of backward error has been achieved.complex and Hermitian indefinite matrix 6 . pv } .intel.Out-of-core Parameter 60 controls what version of PARDISO . The current OOC version does not use threading.99pi1 ...pv2 =. {8. {60.real and symmetric positive defini matrix -2 .real and structurally symmetric matrix (partial pivoting) 2 . .complex and symmetric matrix 11 . For a complete list of the parameters refer to the manual available at http : // www. initialize PARDISO solver mtype.pv} -Small pivot treshold On entry.pv1 =.complex and Hermitian positive definite matrix -4 .index of the i -th parameter in the iparm vector accordingly to the PARDISO manual pvi . Iterative refinement will stop if a satisfactory level of accuracy of the solution in terms of backward error has been achieved.PARDISO initialization SMTSetSolverA5.htm.real and symmetric indefinite matrix ( SMTIData["NegativePivots"] available) 3 .real and unsymmetric matrix (full pivoting) 13 .out-of-core version (pv=2) or in-core version (pv=0) .value of the i -th parameter Some of the more common parameters are given below. mtype . {10.9pi2 .==E mtype -type of matrix pii . pv instructs PARDISO how to handle small pivots or zero pivots for unsymmetric matrices .AceFEM Finite Element Environment 211 Intel MKL Solver . The magnitude of the potential pivot is tested against a constant threshold of: e = 10-pv Small pivots are therefore perturbed with e = 10-pv The default value of pv is 13 and therefore e = 10-13 .nstep} -Max number of iterative refinment steps Maximum number of iterative refinement steps that the solver will perform..complex and structurally symmetr matrix 4 .is used.Type of matrix type of matrix 1 .com/software/products/mkl/docs/manuals. The default value for nstep is 2.complex and unsymmetric matrix Complex matrices are not yet supported! The default matrix type depends on the element specification SMSSymmetricTangent and node identifications (Node Identification) -L and -AL. .…=E adds the element with the unified element code Ikey1 <>key2 <>. See also:AceShare. Simple AceShare library SMTAddToLibrary SMTAddToLibraryA9key2 . option "Code" "Title" "URL" "Keywords" description two letter code that uniquely identifies the library the short name that describes the contents of the library He.key2 . "large strain plasticity models"L the internet address where the library will be posted the list of keywords used to create the elements code Isee Unified Element CodeM the description of the contents of the library the contact address of the corresponding author or institution Default "UL" "User Library" "xxx" the keywords used by the default builtin library "xxx" "xxx" " Contents " "Contact" Options for SMTSetLibrary command...212 AceFEM Finite Element Environment References Intel® Math Kernel Library : Reference Manual Shared Finite Element Libraries SMTSetLibrary SMTSetLibrary@pathD sets the path to the users library and initializes the library Initialize the library. The AceGen session name used to create the element must be the same as the element code.g. M composed from the given keywords to the current library Add elements to the library. The keywords used to compose the element code must be the same as defined by the SMTSetLibrary Isee Unified Element CodeM command. ... SMTSetLibrary SMTLibraryContents SMTLibraryContents@D prepares the contents of the library in a way that can be posted on internet H it should be called once before postingL See also: Simple AceShare library .AceFEM Finite Element Environment 213 option "Author" "Source" description 8"name"...< a list of HTML form hyperlinks to the figures that appears as a part of the home page 8"figure hyperlink 1".""< "" "Documentation" "Examples" "DeleteOriginal" "DescriptionTable" "Main" "Data" "" "" False 88<< Ñ 8< "Benchmark" "Figure" 8< 8< "Links" 8< Options for SMTAddToLibrary command.. "hyperlink 1"<. "Documentation" and "Examples" notebooks after they are copied to the library 2 D array included into home page Hhome page itemL arbitrary data stored Hdata can be retrived by "Main"ê.< Hdata can be retrived by data_keyê.."address"< the name of the notebook with the AceGen source used to create the element Hthe source notebook can be also automatically created by the SMSRecreateNotebook@D commandL the name of the notebook with the documentation the name of the notebook with the practical examples delete the original "Source"... Simple AceShare library..SMTGetData@"element code"D L list of rules where arbitrary data can be strored under the keywords 8data_key1->data_contents1. See also:AceShare.< Default 8"".< a list of HTML form hyperlinks that are included into the home page 88 "link description 1". SMTGetData@"element code"D L list of rules Hhome page itemL 8key1 -> "HTML source code printed into home page verbatim 1"... Blue. 100<<. pt = Take@pt. "Input points". Ò + 100<.214 AceFEM Finite Element Environment Utilities SMTScanedDiagramToTable SMTScanedDiagramToTable@ transforms a table of points picked with scaned_points. ColumnB: Row@ 8"Input:". 8Red.v0. pt = 8Ò. "Set s0". Button@"Clear". s1. " "D. Point@Drop@pt. pt = 8820. 8"Set s0". Green. Locator@pt@@1DDD. ÒDD &F >F .v1D Mathematica from the bitmap picture into the table of points in the actual coordinate system. Switch@task. 2DD. 20<. AppendTo@pt. s0. RadioButtonBar@Dynamic@taskD. where s0 and s1 are two points picked from the picture with the known coordinates v0 and v1 Example << AceFEM`. task = "s0". "Input points"<D. ClickPaneB ShowB Graphics@Dynamic@ . 2DD<. "Set s1". "Set s1". Locator@pt@@2DDD<DDF . 8100. pt@@2DD = Ò. 604.099.563<. 855.AceFEM Finite Element Environment 215 graph = SMTScanedDiagramToTable@ Drop@pt. pt@@2DD. 8100. 2D. 0<. 8711. 1000. 8462.058.394.<D [email protected]. 8850.. 95. 81000.37.217<. pt@@1DD. 8955. 19.. PlotMarkers Ø AutomaticD 88260.513<< Ê 800 600 Ê 400 Ê 200 Ê Ê 400 500 600 700 800 900 .057<. 361.0114<. Default value of the nodal weight factor is 1. See also: SMTPostData. Type 1: The integration point value is multiplied by the shape function value fNi = wNi ⁄NoIntPoints wij fGj j=1 i=1. There are three postprocessing codes with the predetermined function: "DeformedMeshX". ncode_StringD nodal quantity ncode H"at"."sp"L from all nodes SMTPost@i_IntegerD ª SMTPost@i . SMTPointValues [email protected] the value of the shape functions at the integration point and have to be supplied by the user. p2 . The smoothing over the patch of elements is then performed in order to get nodal values. Integration point weight factor can be e. "DeformedMeshY" and "DeformedMeshZ" postprocessing codes are specified by the user then SMTShowMesh use the corresponding data to produce deformed version of the original finite element mesh.…. wNi are the nodal wight factors and fNi are the values mapped to nodes. The SMTPointValues function returns scalar fields evaluated at the specific points of the problem domain. By default the least square extrapolation is used. If the pcode code corresponds to the integration point quantity then the integration point values are first mapped to nodes accordingly to the type of extrapolation as follows: Type 0: Least square extrapolation from integration points to nodal points is used.…<. nvD evaluate scalar field defined by the vector of nodal values nv at point p SMTPointValues@ evaluate N -dimensional vector field 8p1 .2. By default the last NoNodes integration point quantities are taken for the weight factors. …. If the "DeformedMeshX"."DeformedMeshY" and "DeformedMeshZ". The post-processing code pcode can corresponds either to the integration point or to the nodal point post-processing quantity.NoNodes where fGj are an integration point values. nvN <D defined by the vectors of nodal values nvi at points pi The vectors of nodal values nvi are arbitrary vectors of NoNodes numbers (see also SMTPost). wij are an integration point weight factors. See also: SMTPostData .8nv1 ."st". The first form of the function can only be used if the element user subroutine for data post-processing has been defined (see Standard user subroutines). "at"D The SMTPost function returns the vector of NoNodes numbers that can be used for postprocessing by the SMTShowMesh function or directly in Mathematica. nv2 ."da". SMTPointValues .216 AceFEM Finite Element Environment SMTPost SMTPost@pcode _StringD get a vector composed of the nodal values according to element postprocessing code pcode HCDriver specificL SMTPost@ get a vector composed of the i-th componenet of the i_Integer. SMTPost SMTMakeDll .nodenumber]. The nodal value is additionally multiplied by the user defined nodal weight factor that is stored in element specification data structure for each node (es$$["PostNodeWeights"."ap". the user should write his own SMTMakeDll function that creates .AceFEM Finite Element Environment 217 SMTMakeDll SMTMakeDll@source fileD create dll file SMTMakeDll@D create dll file from the last generated AceGen code Hif possibleL option "Platform" "OptimizeDll" description "32" or "64" bit platform True fl create dll file optimised by the compiler False fl create dll file without additional compiler optimisation the data is not saved if the absolute difference in multiplier for two successive SMTPut calls is less than "MultiplierFrequency" default value Automatic True "AdditionalSourceFiÖ list of additional source files Hthey are always recompiledL les" "AdditionalLibraries" list of additional libraries "AdditionalObjectFiÖ ist of additional object files les" "Debug" pause on exit and keep all temporary files Options for the SMTMakeDll function.dll file on a basis of the element source file. For other C compilers.txt file. .h header file and the SMSUtility.c file. How to set necessary paths is described in the Install. Files can be found at the Mathematica directory $BaseDirectory/Applications/AceFEM/Include/CDriver/ ). 8< 8< 8< False The dll file is created automatically by the SMTMakeDll function if the command line Visual studio C compiler and linker MinGW C compiler and linker are available. the sms.
Copyright © 2024 DOKUMEN.SITE Inc.