http://www.concrete-fem.com

Finite Elements types are coded as classes in the module `X-FemElem.py`. This class has the class `Element` as base class. A particular finite-element-type class ( `ElClass`) includes a constructor

`__init__(self, Label, SetLabel, InzList, MatName, NoList, SolSecDic, StateV, NData)`to initialize an instance of

`ElClass`called in the module`X-FemInOut.py::ReadInputFile`. This generally – may deviate for some element types – includes the data`self`reference to the particular instance (listed only for defining,

for calling)`Label`element number – may be subject to renumbering for internal use

`SetLabel`string for element set

`InzList`array of node numbers spanning element

`MatName`string for material type as index for material dictionary

`SolSecDic`string for, e.g., solid section as index for, e.g. solid section dictionary

The values of the preceeding parameters are defined in the input data set.

`NoList`list of all node instances

The value is automatically derived from an already generated list.

`StateV`number of state variables for this material type

`NData`number of data, e.g. stresses, strains, for output

The values are automatically derived from the specifics of the assigned material type.

To define characteristic element properties – independent of the data above for a particular discretization – this constructor includes a constructor for an element instance`Element.__init__(self, TypeVal,nNodVal,DofEVal,nFieVal, IntTVal,nIntVal,nIntLVal, DofTVal,DofNVal, dimVal,NLGeomIVal):`

connected to the instance of`ElClass`with the parameters`self`reference to the particular instance (listed only for defining,

for calling)`TypeVal`string for element type

`nNodVal`number of nodes

`DofEVal`number of dofs for whole element

`nFieVal`degrees of freedom for external loading

`IntTVal`Integration type 0: 1D Gaussian, 1: 2D Gaussian, 2: 3D Gaussian, 3: 2D triangular, 4: shells

`nIntVal`integration order ( index for points, weights = nInt-1)

`nIntLVal`total number of integration points

`DofTVal`tuple, type of dof for every node of this element

1 , 2, 3, 4 around x, 5 around y, 6 around z, 7 gradient field

`DofNVal`tuple, number of dofs ( len(DofT[i]) ) for every node of this element

`dimVal`element type index

1: 1D uniaxial

2: 2D plate

3: 3D volume

10: Bernoulli beam

11: Timoshenko beam

20: Kirchhoff slab

21: continuum based shell

98: 2D spring with translation and rotation dofs

99: 1D uniaxial spring

`NLGeomIVal`Flag whether large deformations are already implemented for this element

Furthermore, the`Element`-class should also provide methods which are shared by some or all element types.

Data of instances of `ElClass` are read in the module `X-FemInOut.py` in the procedure `ReadInputFile`. Two blocks are concerned:

block

`key ELEMENT`block

`data ELEMENT`

Some caution has to followed regarding beam elements and spring elements, see block `key STEP`.

To interface `ElClass` has as methods

`Ini2(self, NoList)`

Post-initialization of element data`FormX(self, r, s, t)`

shape function / interpolation of coordinates`FormN(self, r, s)`

shape functions for displacement degrees of freedom`FormB(self, r, s, t, NLg)`

shape functions derivatives for displacement degrees of freedom`FormT(self, r, s, t)`

shape function / interpolation of temperatures (might be different to coordinate interpolation)`JacoD(self, r, s, t)`

compute Jacobian

Result data are prepared in the module `X-FemInOut.py`. Element specifics data have to be regarded in the procedure `ScaleF`.

The material type connected to the `ElClass`-instance has to match to the generalized strains and stresses provided by `ElClass`.

http://www.concrete-fem.com