FEAP – User Modules

FEAP is an easy to use finite element code. It comes with quite complete manuals. If users need to extend the code, they may also need to review the three-volume finite element method books written by Zienkiewicz and Taylor. Regarding adding routines, FEAP has come with some template routines: UMESHn for user mesh routines, UMACRn for user solution/macro routines, and ELMTnn for user elements.

FEAP: Header Files and IO Files
When adding a subroutine into FEAP, it is highly recommended that users use include files rather than giving equivalent common statements directly. In addition, it is also much more easy and manageable to follow the recommendation. During execution, FEAP interacts with three files. Those files are identified by their integer numbers as • ior – Number of the input file • iow – Number of the output file • ilg – Number of the log file Those numbers can be obtained by declaring following common block in the header of the subroutine: common /iofile/ ior, iow, ilg

FEAP – Debugging
When we introduce a new subroutine into FEAP, it is necessary to debug the routine such that it runs properly. In such a situation, it is often necessary to check contents of an array whether it is a floating point array or an integer array. FEAP comes with two subroutines, in addition to the standard Fortran commands, that allows us to output an array. Those subroutines can be accessed via: call mprint( array, nrow, ncol, ndim, label ) ! For floating point array call iprint( array, nrow, ncol, ndim, label ) ! For integer array In conjunction to the above subroutines, FEAP also provides a debugging environment. To activate the debugging environment, the FEAP input code should contain a line of DEBUG, ON And, the will-be-debugged subroutine should has line, in its preamble: include 'debugs.h' And finally, debugging is activated by checking the ‘debug’ flag, such as: if (debug) then .... call mprint( array, nrow, ncol, ndim, label ) end if

h • ndf – Number of degree of freedom per node • ndm – Number of dimension space • nen1 • nst • nneq • ndl • nnlm • nadd debugs.nel.h • ior – Unit number of the input file • iow – Unit number of the output file • ilg – Unit number of the solution log file sdata.h • debug – A flag to debugging /eldata/ dm.n.h • numnp – Number of nodal points • numel – Number of elements • nummat – Number of materials • nen – Number of nodes per element • neq • ipr iofile.ma.h’.iel.pstyp n – element number nel – number of nodes per element FEAP – Mesh Info I believe one of the header file that may play a major role in building an additional subroutine is ‘cdata. Declaring the header in our subroutine allows us to access: • numnp – Number of nodal points • numel – Number of elements • nummat – Number of materials • nen – Number of nodes per element • neq • ipr – 2 for REAL*8 .FEAP – Some Important Header Files cdata.mct.

for the current example..'matn'. 0. 'mat8'.. 1 ... a relevant input file for the above UMAT should look like: MATERIAL..210.. type = ‘mat8′. and (ii) reading input data.3 The results should be ud(1) = 210. SOLID ..'mat8'... M008 . then the subroutine will no be able to read the user supplied material data if available. For an example..F subroutine should be written as if ( pcomp(type.. UCON.F.. if you set....0.FEAP –UMATIn In FEAP.0...type = 'M008' If you are using UMATI8. however... 2 ) endif Then.3 .4)) then ..4)) then The material name can be any four-character name. In UMATIn. the material name should be defined in following lines. to read two input data from an input file...... it mainly does two things: (i) definite material name.. an User MATerial routine (UMAT) involves two subroutines: • UMATIn – For reading the material input data • UMATLn – To calculate stresses for given deformation data where . The UMATIn subroutine is simple. the UMAT8. errck = pinput( ud. 4) ) then ... type = 'M008' else . The user supplied material data can be read by using TINPUT function.... and ud(2) = 0. we assume the material name is ‘M008′ if ( pcomp(type..... then the first line above should be if ( pcomp(type.

and shells will not used the module. elastic (nalp3f) Saint-Venant-Kirchhoff model (energy conserving capability).f Modified Mooney-Rivlin. umat = 7. Therefore. For thermal problem. umat = 10. The routine UMATLn retuns and . Description of The material data are given in is given in Table 5. umat = 2. stvk.5 to 5. neither the one-dimensional elements. FEAP – Driver for large deformation material FEAP utilizes the subroutine ‘modlfd. which is the element tangent modulus. plasticity (plasfd). umat = 4. nalp3f Finite stretch plasticity model. stnh3f. neoh3f. frame. umat = 12. elements truss.f’ to control the material model in the large deformation. modmnrv.f Mooney-Rivlin.FEAP – UMATLn Modules The moduless allow you to define a constitutive equation in three dimensional stress state.f Yeoh model. umat = 9. In the code.f Arruda-Boyce model. denotes the temperature. yeoh3f.f Fung Pseudo-exponential model. umat = 3. meanwhile. umat = 1.f umat = 5 and 6. plate. mnrv3f. pfung. the user material data are in . arruda.f Modified neo-Hookean model. Standard neo-Hookean elastic model. .f Ogden model. umat = 11. .8.

Sign up to vote on this title
UsefulNot useful