# Did anyone developed a code/function to create Stiffness matrix of 8-Node Brick (Hexahedral) in Finite Element Analysis ?

6 views (last 30 days)
Asif Arshid on 22 Oct 2017
Answered: Precise Simulation on 26 Oct 2017
I am developing a model, which will use 8-nodded brick elements. I am looking for an already built code/function, which can create its stiffness matrix.

Precise Simulation on 23 Oct 2017
Q1 hexahedral elements are available and pre-defined with the FEA Toolbox. Once installed, the following code assembles a bilinear diffusion matrix with 8 node brick elements on a 5x5x5 unit cube:
grid = blockgrid( 5, 5, 5 );
form = [2 3 4; 2 3 4]; % Bilinear form specification.
sfun = { 'sf_hex_Q1'; 'sf_hex_Q1' }; % Q1 elements.
coef = 1; % Bilinear form coefficient.
icub = 2; % Quadrature rule/order.
[vrowinds,vrowcols,vavals,n_rows,n_cols] = ...
assemblea( form, sfun, coef, icub, grid.p, grid.c, grid.a);
help assemblea % See help text.
A = sparse(vrowinds,vrowcols,vavals,n_rows,n_cols); % Create sparse matrix.
spy( A )
To see the element/basis function definition simply open the featool/ellib/sf_hex_Q1.m file in a text editor.
Asif Arshid on 25 Oct 2017
Thanks for sharing this resource. I downloaded and installed FEATool but I am unable to view/print the stiffness matrix of (any) single brick element, which was my objective.

Precise Simulation on 26 Oct 2017
For a single element you can just create a grid with one cell, for example using
grid = blockgrid(1);
in the example above.