FEDEM Solver  R8.0
Source code of the dynamics solver
Functions
FiUserElmPlugin_F.C File Reference

Fortran wrapper for the FiUserElmPlugin methods. More...

#include "FiUserElmPlugin.H"
#include "FFaLib/FFaCmdLineArg/FFaCmdLineArg.H"
#include "FFaLib/FFaString/FFaTokenizer.H"
#include "FFaLib/FFaOS/FFaFortran.H"
#include <cstring>
Include dependency graph for FiUserElmPlugin_F.C:

Functions

 SUBROUTINE (fi_ude_init, FI_UDE_INIT) const
 Loads the user-defined element plugin library into memory. More...
 
 SUBROUTINE (fi_ude0, FI_UDE0) const
 Returns the length of the work arrays needed by a user-defined element. More...
 
 SUBROUTINE (fi_ude1, FI_UDE1) const
 Initializes the constant (state-independent) part of the work areas. More...
 
 SUBROUTINE (fi_ude2, FI_UDE2) const
 Updates the state of a given user-defined element. More...
 
 SUBROUTINE (fi_ude3, FI_UDE3) const
 Calculates the local origin of a user-defined element. More...
 
 SUBROUTINE (fi_ude4, FI_UDE4) const
 Returns the name of a result quantity of a user-defined element. More...
 
 SUBROUTINE (fi_ude5, FI_UDE5) const
 Returns a result quantity value of a user-defined element. More...
 
 SUBROUTINE (fi_ude6, FI_UDE6) const
 Calculates the total mass of a user-defined element. More...
 

Detailed Description

Fortran wrapper for the FiUserElmPlugin methods.

Function Documentation

◆ SUBROUTINE() [1/8]

SUBROUTINE ( fi_ude0  ,
FI_UDE0   
) const

Returns the length of the work arrays needed by a user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • nenod - Number of nodes in the element
  • nedof - Number of degrees of freedom in the element
  • niwork - Required size of the integer work area for this element
  • nrwork - Required size of the double precision work area for this element

◆ SUBROUTINE() [2/8]

SUBROUTINE ( fi_ude1  ,
FI_UDE1   
) const

Initializes the constant (state-independent) part of the work areas.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • nenod - Number of nodes in the element
  • nedof - Number of degrees of freedom in the element
  • X - Global coordinas of the element nodes (initial configuration)
  • T - Local coordinate systems of the element nodes
  • iwork - Integer work area for this element
  • rwork - Double precision work area for this element
  • ierr - Error flag

◆ SUBROUTINE() [3/8]

SUBROUTINE ( fi_ude2  ,
FI_UDE2   
) const

Updates the state of a given user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • nenod - Number of nodes in the element
  • nedof - Number of degrees of freedom in the element
  • X - Global nodal coordinates of the element (current configuration)
  • T - Local nodal coordinate systems of the element (current configuration)
  • V - Global nodal velocities of the element (current configuration)
  • A - Global nodal accelerations of the element (current configuration)
  • iwork - Integer work area for this element
  • rwork - Real work area for this element
  • K - Tangent stiffness matrix
  • C - Damping matrix
  • M - Mass matrix
  • Fs - Internal elastic forces
  • Fd - Damping forces
  • Fi - Intertia forces
  • Q - External forces
  • t - Current time
  • dt - Time step size
  • istep - Time step number
  • iter - Iteration number
  • ierr - Error flag

This function is invoked once within the Newton iteration loop for each element. It should evaluate the updated tangent matrices and associated force vectors.

◆ SUBROUTINE() [4/8]

SUBROUTINE ( fi_ude3  ,
FI_UDE3   
) const

Calculates the local origin of a user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • nenod - Number of element nodes
  • X - Global nodal coordinates of the element (current configuration)
  • T - Local nodal coordinate systems of the element (current config.)
  • iwork - Integer work area for this element
  • rwork - Real work area for this element
  • Tlg - Current local-to-global transformation matrix for the element
  • ierr - Error flag

This function is invoked only in pre- and post-processing tasks, requiring the position of current element. It does not affect the response simulation.

Note
The user-defined element plugin does not need to contain this function. If absent, the identity transformation matrix is assumed.

◆ SUBROUTINE() [5/8]

SUBROUTINE ( fi_ude4  ,
FI_UDE4   
) const

Returns the name of a result quantity of a user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • idx - Result quantity index
  • iwork - Integer work area for this element
  • rwork - Real work area for this element
  • name - Name of result quantity
  • nchar - Maximum length of the result quantity name
  • nvar - Total number of result quantities for this element

This function is only invoked once as a pre-processing task.

Note
The user-defined element plugin does not need to contain this function. If absent, no output variables are defined.

◆ SUBROUTINE() [6/8]

SUBROUTINE ( fi_ude5  ,
FI_UDE5   
) const

Returns a result quantity value of a user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • idx - Result quantity index
  • iwork - Integer work area for this element
  • rwork - Real work area for this element
  • value - The result quantity value
  • nvar - Total number of result quantities for this element

This function is only invoked once as a post-processing task after each time increment, when saving results to file.

Note
The user-defined element plugin does not need to contain this function. If absent, no output variables are defined.

◆ SUBROUTINE() [7/8]

SUBROUTINE ( fi_ude6  ,
FI_UDE6   
) const

Calculates the total mass of a user-defined element.

  • eId - Unique id identifying this element instance (the baseID)
  • eType - Unique id identifying the element type
  • nenod - Number of element nodes
  • X - Global nodal coordinates of the element (current configuration)
  • iwork - Integer work area for this element
  • rwork - Real work area for this element
  • mass - Total mass for the element
  • ierr - Error flag

This function is invoked only as a pre-processing task, in the process of generating a total mass summary of the model. It does not affect the response simulation.

Note
The user-defined element plugin does not need to contain this function. If absent, all user-defined elements are assumed to be mass-less.

◆ SUBROUTINE() [8/8]

SUBROUTINE ( fi_ude_init  ,
FI_UDE_INIT   
) const

Loads the user-defined element plugin library into memory.

  • gdata - Global parameters that applies to all element instances
  • sign - Text string containing a description of the loaded library
  • nchar - Maximum length of the description string
  • ierr - Error flag