planeelemlq Class Reference

#include <plelemlq.h>

List of all members.

Public Member Functions

double approx (double xi, double eta, vector &nodval)
void bf_matrix (matrix &n, double xi, double eta)
void bvectors (vector &x, vector &y, double xi, double eta, double &jac, vector &b11, vector &b12, vector &b21, vector &b22)
void compute_eigstress (long lcid, long eid, long ri, long ci)
double compute_error (long eid, double &e2, double &u2, double &sizel, vector *rderfull)
void compute_nlstress (long lcid, long eid, long ri, long ci)
void compute_nlstressincr (long lcid, long eid, long ri, long ci)
void compute_nonloc_nlstress (long lcid, long eid, long ri, long ci)
void define_meaning (long eid)
void dmatblock (long ri, long ci, matrix &d, matrix &dd)
void edge_integral (long edg, vector &x, vector &y, long intord, vector &gp, vector &w, vector &t, vector &coef, matrix &km)
void edgenodeval (long edg, vector &nodval, double *list)
void eigstrain_forces (long lcid, long eid, long ri, long ci, vector &nfor, vector &x, vector &y)
void elchar (long eid, matrix &spsig)
void elem_integration (integratedquant iq, long lcid, long eid, long ri, long ci, vector &nv, vector &x, vector &y)
void extract (atsel &at, vector &val)
void geom_matrix (matrix &gm, vector &x, vector &y, double xi, double eta, double &jac)
void geom_matrix_block (matrix &gm, long ri, vector &x, vector &y, double xi, double eta, double &jac)
void gl_internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y)
void gl_ip_strains (long lcid, long eid, long ri, long ci, vector &x, vector &y, vector &r)
void gl_stiffness_matrix (long eid, long ri, long ci, matrix &sm, vector &x, vector &y)
void gngeom_matrix (matrix &gm, vector &r, vector &x, vector &y, double xi, double eta, double &jac)
void gnl_grmatrix (matrix &grm, vector &x, vector &y, double xi, double eta, double &jac)
void gnl_internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y)
void gnl_ip_strains (long lcid, long eid, long ri, long ci, vector &x, vector &y, vector &r)
void gnl_stiffness_matrix (long lcid, long eid, long ri, long ci, matrix &sm, vector &x, vector &y)
void incr_internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y)
void inicipval (long eid, long ri, long ci, matrix &nodval, inictype *ictn)
void intpointval (long eid, vector &nodval, vector &ipval)
void ipcoord (long eid, long ipp, long ri, long ci, vector &coord)
void ipcoordblock (long eid, long ri, long ci, double **coord)
void ipvolume (long eid, long ri, long ci)
void load_matrix (long eid, matrix &lm, vector &x, vector &y)
void local_values (long lcid, long eid, long ri, long ci)
void mass_matrix (long eid, matrix &mm, vector &x, vector &y)
void mechq_nodval (long eid, vector &nodval, nontransquant qt)
void mechq_nodval_comp (long eid, vector &nodval, long ncnv, long nq, nontransquant *qt)
void nod_eqother_ip (long eid, long ri, long ci)
void nod_strains_comp (long lcid, long eid)
void nod_strains_ip (long lcid, long eid, long ri, long ci)
void nod_stresses_comp (long lcid, long eid, long ri, long ci, double **stra, double **stre)
void nod_stresses_ip (long lcid, long eid, long ri, long ci)
void nodeforces (long eid, long *le, double *nv, vector &nf)
void nonloc_internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y)
void ntdbr_vector (long eid, vector &ntdbr)
void ntn_matrix (long eid, matrix &ntn)
 planeelemlq (void)
void res_eigstrain_forces (long lcid, long eid, vector &nfor)
void res_incr_internal_forces (long lcid, long eid, vector &ifor)
void res_internal_forces (long lcid, long eid, vector &ifor)
void res_ip_strains (long lcid, long eid)
void res_ip_stresses (long lcid, long eid)
void res_load_matrix (long eid, matrix &lm)
void res_mass_matrix (long eid, matrix &mm)
void res_nonloc_internal_forces (long lcid, long eid, vector &ifor)
void res_stiffness_matrix (long lcid, long eid, matrix &sm)
void strains (long lcid, long eid, long ri, long ci)
void stresses (long lcid, long eid, long ri, long ci)
void transf_matrix (ivector &nod, matrix &tmat)
 ~planeelemlq (void)

Public Attributes

long * cncomp
 array containing cumulative numbers of components of stress and strain tensors
long gncomp
 number of components for graphic purposes
long intordb
 order of integration on edges
long intordmm
 order of integration of mass matrix
long ** intordsm
 array containing orders of numerical integration of stiffness matrix
long napfun
 number of approximated functions on the element
long nb
 number of blocks
long * ncomp
 array containing numbers of components of stress and strain tensors
long ndofe
 number of DOFs on the element
long ned
 number of edges
long ** nip
 array of numbers of integration points in sets
long nne
 number of nodes on one element
long nned
 number of nodes on one edge
strastrestate ssst
 stress/strain state
long tncomp
 total number of components of stress and strain tensors
long tnip
 total number of integration points on element

Detailed Description

class planeelemlq defines plane quadrilateral element with bi-linear approximation functions

basic data nne = 4 - number nodes on element ndofe = 8 - number of DOFs on element ncomp = 3 - number of strain (stress) tensor components napfun = 2 - number of approximated functions intordmm = 2 - order of numerical integration of mass matrix (2x2)

nsip - number of sets of integration points there are two sets, nip - number of integration points in sets intordsm - array containing orders of numerical integration

JK

Definition at line 31 of file plelemlq.h.


Constructor & Destructor Documentation

planeelemlq ( void   ) 

Definition at line 16 of file plelemlq.cpp.

References cncomp, gncomp, intordb, intordmm, intordsm, napfun, nb, ncomp, ndofe, ned, nip, nne, nned, tncomp, and tnip.

~planeelemlq ( void   ) 

Definition at line 77 of file plelemlq.cpp.

References cncomp, intordsm, nb, ncomp, and nip.


Member Function Documentation

double approx ( double  xi,
double  eta,
vector nodval 
)

function approximates function defined by nodal values

Parameters:
xi,eta - coordinates on element
nodval - nodal values

JK

Definition at line 101 of file plelemlq.cpp.

References vector::a, bf_lin_4_2d(), f, nne, and scprd().

Referenced by compute_error(), edge_integral(), elem_integration(), planeelemqt::give_sig_roof(), gl_stiffness_matrix(), gnl_internal_forces(), gnl_stiffness_matrix(), inicipval(), interpolate(), intpointval(), planeelemqq::intpointval2(), ipcoord(), ipcoordblock(), ipvolume(), load_matrix(), mass_matrix(), ntdbr_vector(), and ntn_matrix().

void bf_matrix ( matrix n,
double  xi,
double  eta 
)

function assembles matrix of base (approximation, shape) functions

Parameters:
n - array containing matrix
xi,eta - natural coordinates

JK, 9.7.2001

Definition at line 191 of file plelemlq.cpp.

References vector::a, bf_lin_4_2d(), fillm(), and nne.

Referenced by edge_integral(), load_matrix(), mass_matrix(), and nodeforces().

void bvectors ( vector x,
vector y,
double  xi,
double  eta,
double &  jac,
vector b11,
vector b12,
vector b21,
vector b22 
)

function assembles auxiliary vectors B for evaluation of stiffness matrix in geometrically nonlinear problems

Parameters:
x,y - array containing node coordinates
xi,eta - natural coordinates
jac - Jacobian
b11,b12,b21,b22 - vectors of derivatives of shape functions

JK, 21.9.2005

Definition at line 295 of file plelemlq.cpp.

References vector::a, derivatives_2d(), dx_bf_lin_4_2d(), dy_bf_lin_4_2d(), fillv(), and nne.

Referenced by gngeom_matrix(), gnl_grmatrix(), and gnl_ip_strains().

void compute_eigstress ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes correct eigen stresses caused by eigenstrains at integration points on element

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices

JK, 27.11.2006

Definition at line 1843 of file plelemlq.cpp.

References mechtop::elements, mechmat::giveeigstrain(), intordsm, element::ipp, mechmat::matstiff(), Mm, Mt, mxv(), nb, mechmat::storeeigstress(), and tncomp.

Referenced by eigstrain_forces().

double compute_error ( long  eid,
double &  e2,
double &  u2,
double &  sizel,
vector rsigfull 
)

Function 1. 1. computes "e2" - square of energy norm of error of solution on element e2 = integral{ (sig_star - sig_roof)T * D_inv * (sig_star - sig_roof) } sig_star = recovered stress, values in nodes are defined by "rsigfull" and over element are interpolated by base functions sig_roof = stress obtained by FEM D_inv = inverse stiffness matrix of material 2. computes "u2" - square of energy norm of strain on element u2 = integral{ epsT * D * eps } eps = strain obtained by FEM D = stiffness matrix of material 3. computes area of element and adds to "volume" (sum of areas of previous elements) 4. computes "sizel" (characteristic size of element)

Parameters:
eid - element id
volume - sum of areas of previous elements
e2 - empty(returned) value;
u2 - empty(returned) value;
sizel - empty(returned) value;
rsigfull - 1Darray of stress in nodes; dimmension is ncomp*gt->nn after this manner {(val[0]; ... ;val[gt->nn])[0] ; ... ; (val[0]; ... ;val[gt->nn])[ncomp]}

created 3.5.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz

Definition at line 2546 of file plelemlq.cpp.

References approx(), bf_lin_4_2d(), mechtop::elements, gauss_points(), give_der_star(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), mechcrsec::give_thickness(), invm(), mechmat::ip, element::ipp, jac_2d(), mechmat::matstiff(), Mc, Mm, Mt, mxv(), mechtop::nn, nne, nodes, intpoints::strain, subv(), tncomp, and vxmxv().

Referenced by adaptivity::compute_error().

void compute_nlstress ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes correct stresses at integration points on element

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices

JK, 27.11.2006

Definition at line 1755 of file plelemlq.cpp.

References mechmat::computenlstresses(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.

Referenced by elem_nlstresses(), gl_internal_forces(), and res_ip_stresses().

void compute_nlstressincr ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes correct increments of stresses at integration points on element

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices

TKo 7.2008

Definition at line 1785 of file plelemlq.cpp.

References mechmat::computenlstressesincr(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.

Referenced by incr_internal_forces().

void compute_nonloc_nlstress ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes nonlocal correct stresses at integration points on element

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices

JK, 27.11.2006

Definition at line 1814 of file plelemlq.cpp.

References mechmat::compnonloc_nlstresses(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.

Referenced by nonloc_internal_forces().

void define_meaning ( long  eid  ) 

function defines meaning of DOFs at nodes

Parameters:
eid - element id

JK, 21.8.2005

Definition at line 2365 of file plelemlq.cpp.

References mechtop::give_code_numbers(), mechtop::give_elemnodes(), node::meaning, Mt, ndofe, nne, nod, and mechtop::nodes.

Referenced by mechtop::define_meaning().

void dmatblock ( long  ri,
long  ci,
matrix d,
matrix dd 
)

function assembles blocks of stiffness matrix of material

Parameters:
ri - row index
ci - column index
d - stiffness matrix of material
dd - required block of stiffness matrix of material

JK

Definition at line 470 of file plelemlq.cpp.

References fillm().

Referenced by gl_stiffness_matrix().

void edge_integral ( long  edg,
vector x,
vector y,
long  intord,
vector gp,
vector w,
vector t,
vector coef,
matrix km 
)

function integrates N^T c N over edges

Parameters:
edg - edge id (number of edge)
x,y - coordinates of element nodes
intord - order of numerical integration
gp,w - coordinates and weights of integration points
t - nodal thicknesses
coef - array of nodal values of coefficient
km - output matrix

JK, 20.10.2007

Definition at line 2033 of file plelemlq.cpp.

References matrix::a, approx(), bf_matrix(), jac1d_2d(), matrix::m, matrix::n, napfun, ndofe, and nnj().

void edgenodeval ( long  edg,
vector nodval,
double *  list 
)

function picks up nodal values on required edges

Parameters:
edg - number of required edge
nodval - array of nodal values
list - array of nodal values defined on all edges

JK, 19.8.2004

Definition at line 2118 of file plelemlq.cpp.

References ivector::a, fillv(), linquadrilat_edgnod(), napfun, and nned.

void eigstrain_forces ( long  lcid,
long  eid,
long  ri,
long  ci,
vector nfor,
vector x,
vector y 
)

function computes contributions from eigenstrains to the right hand side

Parameters:
eid - element id
ri,ci - row and column indices
ifor - vector of nodal forces
x,y - vectors of nodal coordinates

JK, 28.7.2001

Definition at line 1564 of file plelemlq.cpp.

References compute_eigstress(), probdesc::eigstrcomp, eigstress, elem_integration(), and Mp.

Referenced by res_eigstrain_forces().

void elchar ( long  eid,
matrix spsig 
)

This function prepare array 'spder' for using in function `least_squarespr_default`. It allocates and fills up array 'spder' by derivatives(strain ro stress) in sampling points. For planeelemlt sampling points == main integration point == Gauss's point at the centroid of element.

Parameters:
eid - element id
spder - allocated array
flags - determines by which derivate is spder filled

created 3.5.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz

Definition at line 2641 of file plelemlq.cpp.

References vector::a, matrix::a, allocm(), eldispl(), mechtop::elements, geom_matrix(), mechtop::give_node_coord2d(), mechmat::givestrain(), mechmat::givestress(), element::ipp, matrix::m, mechmat::matstiff(), Mm, Mt, mxv(), matrix::n, ndofe, nne, and tncomp.

Referenced by adaptivity::spr().

void elem_integration ( integratedquant  iq,
long  lcid,
long  eid,
long  ri,
long  ci,
vector nv,
vector x,
vector y 
)

function integrates selected quantity over the finite element it results in nodal values

Parameters:
iq - type of integrated quantity (see alias.h)
lcid - number of load case
eid - element id
ri,ci - row and column indices
nv - nodal values
x,y - node coordinates

JK, 27.11.2006

Definition at line 1885 of file plelemlq.cpp.

References vector::a, addv(), allocm(), allocv(), approx(), cmulv(), cncomp, destrm(), destrv(), mechtop::elements, fillv(), gauss_points(), geom_matrix_block(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), mechmat::givequantity(), intordsm, element::ipp, Mc, Mm, Mt, mtxv(), nb, ncomp, ndofe, nne, and nodes.

Referenced by eigstrain_forces(), gl_internal_forces(), incr_internal_forces(), and nonloc_internal_forces().

void extract ( atsel at,
vector val 
)

function extracts variables on element it is used in stochastic or fuzzy computations

Parameters:
at - array of attributes (it describes which variables will be extracted)
val - vector of extracted values

JK, 17.4.2007

Definition at line 2681 of file plelemlq.cpp.

References atsel::atrib, and atsel::num.

void geom_matrix ( matrix gm,
vector x,
vector y,
double  xi,
double  eta,
double &  jac 
)

function assembles strain-displacement (geometric) matrix

Parameters:
gm - geometric matrix
x,y - array containing node coordinates
xi,eta - natural coordinates
jac - Jacobian

JK, 9.7.2001

Definition at line 220 of file plelemlq.cpp.

References vector::a, derivatives_2d(), dx_bf_lin_4_2d(), dy_bf_lin_4_2d(), fillm(), and nne.

Referenced by elchar(), planeelemqt::give_sig_roof(), quadrilatc::mainip_strains(), and nod_strains_comp().

void geom_matrix_block ( matrix gm,
long  ri,
vector x,
vector y,
double  xi,
double  eta,
double &  jac 
)

function assembles blocks of strain-displacement (geometric) matrix

Parameters:
gm - geometric matrix
ri - row index (number of required block)
x,y - array containing node coordinates
xi,eta - natural coordinates
jac - Jacobian

JK, 9.7.2001

Definition at line 254 of file plelemlq.cpp.

References vector::a, derivatives_2d(), dx_bf_lin_4_2d(), dy_bf_lin_4_2d(), fillm(), and nne.

Referenced by elem_integration(), gl_ip_strains(), gl_stiffness_matrix(), quadrilatc::lower_cap_coup_matrix(), quadrilatc::lower_cond_coup_matrix(), quadrilatc::mainip_strains(), quadrilatc::upper_cap_coup_matrix(), quadrilatc::upper_cond_coup_matrix(), and quadrilatc::upper_cond_coup_vector().

void gl_internal_forces ( long  lcid,
long  eid,
long  ri,
long  ci,
vector ifor,
vector x,
vector y 
)

function computes internal forces (from correct stresses)

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices
ifor - vector of internal forces
x,y - vectors of nodal coordinates

JK, 28.7.2001

Definition at line 1412 of file plelemlq.cpp.

References compute_nlstress(), elem_integration(), and locstress.

Referenced by res_internal_forces().

void gl_ip_strains ( long  lcid,
long  eid,
long  ri,
long  ci,
vector x,
vector y,
vector r 
)

function computes strains at integration points of element function is used in geometrically linear problems

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices
x,y - arrays with node coordinates
r - vector of nodal displacements

JK, 10.5.2002

Definition at line 856 of file plelemlq.cpp.

References vector::a, addv(), allocm(), allocv(), cmulv(), cncomp, destrm(), destrv(), mechtop::elements, gauss_points(), geom_matrix_block(), mechmat::givestrain(), intordsm, element::ipp, Mm, Mt, mxv(), nb, ncomp, ndofe, and mechmat::storestrain().

Referenced by res_ip_strains().

void gl_stiffness_matrix ( long  eid,
long  ri,
long  ci,
matrix sm,
vector x,
vector y 
)

function computes stiffness matrix of plane rectangular finite element with bilinear approximation functions

function computes stiffness matrix for geometrically linear problems

Parameters:
eid - number of element
ri,ci - row and column indices
sm - stiffness matrix
x,y - vectors of nodal coordinates

JK, 10.7.2001

Definition at line 537 of file plelemlq.cpp.

References vector::a, allocm(), allocv(), approx(), bdbjac(), destrm(), destrv(), dmatblock(), mechtop::elements, fillm(), gauss_points(), geom_matrix_block(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), intordsm, element::ipp, mechmat::matstiff(), Mc, Mm, Mt, nb, ncomp, ndofe, nne, nodes, and tncomp.

Referenced by res_stiffness_matrix().

void gngeom_matrix ( matrix gm,
vector r,
vector x,
vector y,
double  xi,
double  eta,
double &  jac 
)

function computes strain-displacement matrix for geometrically nonlinear problems

Parameters:
gm - strain-displacement matrix
r - array of nodal displacements
x,y - array containing node coordinates
xi,eta - natural coordinates
jac - Jacobian

JK, 21.9.2005

Definition at line 331 of file plelemlq.cpp.

References bvectors(), fillm(), ndofe, vxm(), and vxv().

Referenced by gnl_internal_forces(), and gnl_stiffness_matrix().

void gnl_grmatrix ( matrix grm,
vector x,
vector y,
double  xi,
double  eta,
double &  jac 
)

function computes gradient matrix for geometrically nonlinear problems

Parameters:
grm - gradient matrix
x,y - array containing node coordinates
xi,eta - natural coordinates
jac - Jacobian

JK, 21.9.2005

Definition at line 441 of file plelemlq.cpp.

References bvectors(), and ndofe.

Referenced by gnl_stiffness_matrix().

void gnl_internal_forces ( long  lcid,
long  eid,
long  ri,
long  ci,
vector ifor,
vector x,
vector y 
)

function computes internal forces (from correct stresses)

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices
ifor - vector of internal forces
x,y - vectors of nodal coordinates

JK, 22.9.2005

Definition at line 1437 of file plelemlq.cpp.

References vector::a, allocv(), approx(), cmulv(), mechmat::computenlstresses(), destrv(), eldispl(), mechtop::elements, fillv(), gauss_points(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), mechmat::givestress(), gngeom_matrix(), intordsm, element::ipp, Mc, Mm, Mp, Mt, mtxv(), ndofe, nne, nodes, probdesc::strcomp, and tncomp.

void gnl_ip_strains ( long  lcid,
long  eid,
long  ri,
long  ci,
vector x,
vector y,
vector r 
)

function computes strains at integration points of element function is used in geometrically linear problems

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices
x,y - arrays with node coordinates
r - vector of nodal displacements

JK, 24.9.2005

Definition at line 934 of file plelemlq.cpp.

References vector::a, allocv(), bvectors(), destrv(), mechtop::elements, gauss_points(), intordsm, element::ipp, Mm, Mt, ndofe, scprd(), mechmat::storestrain(), and tncomp.

void gnl_stiffness_matrix ( long  lcid,
long  eid,
long  ri,
long  ci,
matrix sm,
vector x,
vector y 
)

function computes stiffness matrix of quadrilateral finite element

function computes stiffness matrix for geometrically nonlinear problems

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices
sm - stiffness matrix
x,y - vectors of nodal coordinates

JK, 21.9.2005

Definition at line 614 of file plelemlq.cpp.

References vector::a, allocv(), approx(), bdbjac(), destrv(), eldispl(), mechtop::elements, fillm(), gauss_points(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), mechmat::givestress(), gngeom_matrix(), gnl_grmatrix(), intordsm, element::ipp, mechmat::matstiff(), Mc, Mm, Mt, ndofe, nne, nodes, and tncomp.

void incr_internal_forces ( long  lcid,
long  eid,
long  ri,
long  ci,
vector ifor,
vector x,
vector y 
)

function computes increment of internal forces (from correct stresses increment)

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices
ifor - vector of internal forces
x,y - vectors of nodal coordinates

TKo, 7.2008

Definition at line 1540 of file plelemlq.cpp.

References compute_nlstressincr(), elem_integration(), and stressincr.

Referenced by res_incr_internal_forces().

void inicipval ( long  eid,
long  ri,
long  ci,
matrix nodval,
inictype ictn 
)

The function computes initial values of the given quantities at each integration point of the element from the nodal values given by the parameter nodval. Initial condition types must be the same for all nodes of the element.

Parameters:
eid - element id
ri - block row index
ci - block column index
nodval - nodal values of particular initial conditions. nodval[i][j] represents value of j-th initial condition at i-th node of the given element.
ictn - array of types of initial condition for each node of element. The type of initial condition determines which values are being specified in the node. (ictn[i] & inistrain) returns nonzero if nodal values of initial strains are specified (ictn[i] & inistress) returns nonzero if nodal values of initial stresses are specified (ictn[i] & iniother) returns nonzero if nodal values of initial values of eqother array are specified (ictn[i] & inicond) returns nonzero if nodal values of other initial conditions are specified

The function does not return anything.

Created by Tomas Koudelka 2004 Revised by Tomas Koudelka 03.2012

Definition at line 2159 of file plelemlq.cpp.

References vector::a, allocv(), approx(), destrv(), mechtop::elements, intpoints::eqother, gauss_points(), mechmat::ic, inicond, iniother, inistrain, inistress, intordsm, mechmat::ip, element::ipp, memset(), Mm, Mt, matrix::n, nb, intpoints::ncompeqother, intpoints::ncompstr, nne, print_err(), intpoints::strain, and intpoints::stress.

Referenced by mechbclc::inicipval().

void intpointval ( long  eid,
vector nodval,
vector ipval 
)

function interpolates the nodal values to the integration points on the element

Parameters:
eid - element id
nodval - array of nodal values
ipval - array of values at integration points

21.6.2004, JK

Definition at line 2326 of file plelemlq.cpp.

References vector::a, allocv(), approx(), destrv(), gauss_points(), intordsm, and nb.

Referenced by elem_intpointval().

void ipcoord ( long  eid,
long  ipp,
long  ri,
long  ci,
vector coord 
)

function assembles coordinates of selected integration point the integration point is defined by the parameter ipp

Parameters:
eid - element id
ipp - integration point id
ri - row index
ci - column index
ipcoord - array containing coordinates of selected integration point

JK, 8.5.2002

Definition at line 125 of file plelemlq.cpp.

References vector::a, approx(), mechtop::elements, gauss_points(), mechtop::give_node_coord2d(), intordsm, element::ipp, Mt, and nne.

Referenced by ipcoord().

void ipcoordblock ( long  eid,
long  ri,
long  ci,
double **  coord 
)

function assembles coordinates of integration points in block [ri][ci]

Parameters:
eid - element id
ri - row index
ci - column index
ipcoord - array containing coordinates of integration points

JK, 8.5.2002

Definition at line 159 of file plelemlq.cpp.

References vector::a, approx(), gauss_points(), mechtop::give_node_coord2d(), intordsm, Mt, and nne.

void ipvolume ( long  eid,
long  ri,
long  ci 
)

function computes volume appropriate to integration point

Parameters:
eid - element id
ri,ci - row and column indices

2.3.2004, JK 07.2008 TKo - multiplictaion by thickness added

Definition at line 2280 of file plelemlq.cpp.

References vector::a, allocv(), approx(), destrv(), mechtop::elements, gauss_points(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), mechcrsec::give_thickness(), intordsm, element::ipp, jac_2d(), Mc, Mm, Mt, nb, nne, nodes, and mechmat::storeipvol().

Referenced by ipvolume().

void load_matrix ( long  eid,
matrix lm,
vector x,
vector y 
)

function computes load matrix of the plane stress rectangular finite element with bilinear approximation functions load vector is obtained after premultiplying load matrix by nodal load values

Parameters:
eid - number of element
lm - load matrix
x,y - node coordinates

JK, 25.7.2001

Definition at line 1325 of file plelemlq.cpp.

References matrix::a, approx(), bf_matrix(), fillm(), gauss_points(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), intordmm, jac_2d(), matrix::m, Mc, Mt, matrix::n, napfun, ndofe, nne, nnj(), and nodes.

Referenced by res_load_matrix().

void local_values ( long  lcid,
long  eid,
long  ri,
long  ci 
)

Function computes local values which will be used for averageing in nonlocal models at integration points. Mp->nonlocphase have to be 1.

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices

TKo, 10.6.2013

Definition at line 1725 of file plelemlq.cpp.

References mechmat::computenlstresses(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.

Referenced by elem_local_values().

void mass_matrix ( long  eid,
matrix mm,
vector x,
vector y 
)

function computes mass matrix of the plane stress rectangular finite element with bilinear approximation functions

this function is used in plane stress/strain elements (function is called by function res_mass_matrix) and shell elements

Parameters:
eid - number of element
mm - mass matrix
x,y - vectors of nodal coordinates

JK, 24.6.2001

Definition at line 741 of file plelemlq.cpp.

References matrix::a, approx(), bf_matrix(), fillm(), gauss_points(), mechcrsec::give_density(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), intordmm, jac_2d(), matrix::m, Mc, Mt, matrix::n, napfun, ndofe, nne, nnj(), and nodes.

Referenced by res_mass_matrix().

void mechq_nodval ( long  eid,
vector nodval,
nontransquant  qt 
)

Function computes required mechanical quantity at nodes of element.

Parameters:
eid - element id
nodval - vector of nodal values
qt - type of mechanical quantity
Returns:
The function does not return anything.

12/06/2012 TKr

Definition at line 2710 of file plelemlq.cpp.

References mechtop::elements, mechmat::givemechq(), intordsm, element::ipp, Mm, Mt, nne, and nodip_planelq().

Referenced by elem_mechq_nodval().

void mechq_nodval_comp ( long  eid,
vector nodval,
long  ncnv,
long  nq,
nontransquant qt 
)

Function computes mechanical quantities in nodes of element.

Parameters:
eid - element id
nodval - vector of nodal values of all required quantities, i.e., nodal value of i-th quantity in j-th node is given by nodval[i*ncnv+j] where ncnv is the number of calculated nodes on eid-th element.
ncnv - number of computed nodes on element (only first ncnv of nodes is calculated)
nq - number of required mechanical quantities
qt - array of types of required mechanical quantities
Returns:
The function does not return anything.

Created by Tomas Koudelka, 29.11.2013

Definition at line 2743 of file plelemlq.cpp.

References mechmat::compnonloc_nlstresses(), mechmat::computenlstresses(), intpoints::copy(), mechtop::elements, intpoints::eqother, mechtop::give_elemnodes(), mechmat::give_num_averq(), mechmat::givemechq(), mechmat::givenonlocid(), intordsm, mechmat::ip, element::ipp, local, probdesc::matmodel, Mb, Mm, Mp, Mt, intpoints::ncompeqother, intpoints::ncompother, intpoints::ncompstr, mechbclc::nlc, nne, nod_strains_comp(), mechtop::nodes, nodip_planelq(), intpoints::nonloc, nonlocal, intpoints::other, print_err(), mechmat::storeeqother(), mechmat::storenonloc(), mechmat::storeother(), mechmat::storestrain(), mechmat::storestress(), intpoints::strain, node::strain, intpoints::stress, and mechmat::updateipvalmat().

Referenced by elem_mechq_nodval_comp().

void nod_eqother_ip ( long  eid,
long  ri,
long  ci 
)

function computes other values in nodes of element

Parameters:
eid - element id

10.5.2002

Definition at line 1283 of file plelemlq.cpp.

References vector::a, mechtop::elements, mechtop::give_elemnodes(), mechmat::giveeqother(), mechmat::givencompeqother(), intordsm, element::ipp, Mm, Mt, nne, nod, mechtop::nodes, nodip_planelq(), reallocv(), and node::storeother().

Referenced by compute_nodeothers().

void nod_strains_comp ( long  lcid,
long  eid 
)

The function computes nodal strains directly.

Parameters:
lcid - load case id
eid - element id

JK, 25.9.2004

Definition at line 1016 of file plelemlq.cpp.

References allocm(), allocv(), copyv(), destrm(), destrv(), eldispl(), geom_matrix(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), lgvectortransf(), mechtop::locsystems(), Mt, mxv(), ndofe, nne, nodcoord_planelq(), mechtop::nodes, node::storestrain(), tncomp, and transf_matrix().

Referenced by mechq_nodval_comp(), and strains().

void nod_strains_ip ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes strains in nodes of element

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices

10.5.2002

Definition at line 983 of file plelemlq.cpp.

References mechtop::elements, mechtop::give_elemnodes(), mechmat::givestrain(), gncomp, intordsm, element::ipp, Mm, Mt, nne, nod, mechtop::nodes, nodip_planelq(), and node::storestrain().

Referenced by compute_nodestrains(), and strains().

void nod_stresses_comp ( long  lcid,
long  eid,
long  ri,
long  ci,
double **  stra,
double **  stre 
)

function computes nodal stresses directly

Parameters:
lcid - load case id
eid - element id
stra - array for strain components

JK, 25.9.2004

Definition at line 1185 of file plelemlq.cpp.

References mechtop::elements, element::ipp, mechmat::matstiff(), Mm, Mt, mxv(), nne, and tncomp.

void nod_stresses_ip ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes stresses at nodes of element

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices

JK, 10.5.2002

Definition at line 1151 of file plelemlq.cpp.

References mechtop::elements, mechtop::give_elemnodes(), mechmat::givestress(), gncomp, intordsm, element::ipp, Mm, Mt, nne, nod, mechtop::nodes, nodip_planelq(), and node::storestress().

Referenced by compute_nodestresses(), and stresses().

void nodeforces ( long  eid,
long *  le,
double *  nv,
vector nf 
)
void nonloc_internal_forces ( long  lcid,
long  eid,
long  ri,
long  ci,
vector ifor,
vector x,
vector y 
)

function computes internal forces for nonlocal models

this function is used in plane stress/strain elements (function is called by function res_nonloc_internal_forces) and shell elements

Parameters:
lcid - number of load case
eid - element id
ri,ci - row and column indices
ifor - vector of internal forces
x,y - vectors of nodal coordinates

TKo, 7.2008

Definition at line 1515 of file plelemlq.cpp.

References compute_nonloc_nlstress(), elem_integration(), and nonlocstress.

Referenced by res_nonloc_internal_forces().

void ntdbr_vector ( long  eid,
vector ntdbr 
)

Function integrates function "NT*D*B*r" (= NT*Stress) over whole element. N is matrix of basic functions. !!! Values in 'ntdbr' are stored unusually. Not after this manner {(val[0]; ... ;val[tncomp])[0] ; ... ; (val[0]; ... ;val[tncomp])[nne]} but after this manner {(val[0]; ... ;val[nne])[0] ; ... ; (val[0]; ... ;val[nne])[ntncomp]}

Parameters:
eid - element id
ntdbr - empty(returned) array, dimension is tncomp*nne

created 3.5.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz

Definition at line 2411 of file plelemlq.cpp.

References approx(), bf_lin_4_2d(), mechtop::elements, fillv(), gauss_points(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), mechcrsec::give_thickness(), mechmat::ip, element::ipp, jac_2d(), mechmat::matstiff(), Mc, Mm, Mt, mxv(), nne, nodes, intpoints::strain, and tncomp.

Referenced by z2_smoothing::compute_ntdbr().

void ntn_matrix ( long  eid,
matrix ntn 
)

Function integrates function "NT*N" over whole element. N is matrix of basic functions. !!! Matrix N is composed of three same blocks, it is computed only one third.

Parameters:
eid - element id
ntn - empty(returned) 2Darray, dimension is nne x nne

created 3.5.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz

Definition at line 2488 of file plelemlq.cpp.

References vector::a, approx(), bf_lin_4_2d(), fillm(), gauss_points(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), mechcrsec::give_thickness(), jac_2d(), Mc, Mt, nne, and nodes.

Referenced by z2_smoothing::compute_ainv(), and z2_smoothing::compute_ntn_sky().

void res_eigstrain_forces ( long  lcid,
long  eid,
vector nfor 
)

function computes resulting contributions from eigenstrains to the right hand side

Parameters:
lcid - load case id
eid - element id
nfor - vector of internal forces

JK, 28.7.2001

Definition at line 1690 of file plelemlq.cpp.

References copyv(), eigstrain_forces(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glvectortransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by elem_eigstrain_forces().

void res_incr_internal_forces ( long  lcid,
long  eid,
vector ifor 
)

function computes resulting increments of internal forces

Parameters:
lcid - load case id
eid - element id
ifor - vector of internal forces

TKo, 7.2008

Definition at line 1656 of file plelemlq.cpp.

References copyv(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glvectortransf(), incr_internal_forces(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by elem_incr_internal_forces().

void res_internal_forces ( long  lcid,
long  eid,
vector ifor 
)

function computes resulting internal forces

Parameters:
lcid - load case id
eid - element id
ifor - vector of internal forces

JK, 22.9.2005

Definition at line 1588 of file plelemlq.cpp.

References copyv(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), gl_internal_forces(), glvectortransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by elem_internal_forces().

void res_ip_strains ( long  lcid,
long  eid 
)

function computes strains at integration points

Parameters:
lcid - load case id
eid - element id

JK

Definition at line 816 of file plelemlq.cpp.

References vector::a, allocm(), allocv(), copyv(), destrm(), destrv(), eldispl(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), gl_ip_strains(), lgvectortransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by compute_ipstrains(), and strains().

void res_ip_stresses ( long  lcid,
long  eid 
)

function computes stresses at integration points

Parameters:
lcid - load case id
eid - element id

JK

Definition at line 1133 of file plelemlq.cpp.

References compute_nlstress().

Referenced by compute_ipstresses(), and stresses().

void res_load_matrix ( long  eid,
matrix lm 
)

function computes load matrix of the plane stress rectangular finite element with bilinear approximation functions load vector is obtained after premultiplying load matrix by nodal load values

Parameters:
eid - number of element
lm - load matrix

JK, 25.7.2001

Definition at line 1367 of file plelemlq.cpp.

References mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glmatrixtransf(), load_matrix(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by loadmat().

void res_mass_matrix ( long  eid,
matrix mm 
)

function assembles mass matrix of plane stress rectangular finite element with bilinear approximation functions

Parameters:
eid - element id
mm - mass matrix

JK

Definition at line 782 of file plelemlq.cpp.

References mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glmatrixtransf(), mechtop::locsystems(), mass_matrix(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by massmat().

void res_nonloc_internal_forces ( long  lcid,
long  eid,
vector ifor 
)

function computes resulting internal forces for nonlocal models

Parameters:
lcid - load case id
eid - element id
ifor - vector of internal forces

JK, 22.9.2005

Definition at line 1622 of file plelemlq.cpp.

References copyv(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glvectortransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, nonloc_internal_forces(), and transf_matrix().

Referenced by elem_nonloc_internal_forces().

void res_stiffness_matrix ( long  lcid,
long  eid,
matrix sm 
)

function computes stiffness matrix of quadrilateral element

Parameters:
lcid - load case id
eid - element id
sm - stiffness matrix

JK

Definition at line 704 of file plelemlq.cpp.

References mechtop::give_elemnodes(), mechtop::give_node_coord2d(), gl_stiffness_matrix(), glmatrixtransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transf_matrix().

Referenced by stiffmat().

void strains ( long  lcid,
long  eid,
long  ri,
long  ci 
)

function computes strains at strain points

Parameters:
lcid - load case id
eid - element id
ri,ci - row and column indices

JK

Definition at line 1072 of file plelemlq.cpp.

References allocv(), cenodes, destrv(), enodes, aepoints::give_aepcoord(), aepoints::give_naep(), aepoints::give_ncomp(), aepoints::give_sid(), intpts, Mm, Mp, nod_strains_comp(), nod_strains_ip(), nowhere, print_err(), res_ip_strains(), aepoints::storevalues(), mechmat::stra, probdesc::strainaver, aepoints::tape, and userdefined.

void stresses ( long  lcid,
long  eid,
long  ri,
long  ci 
)
void transf_matrix ( ivector nod,
matrix tmat 
)

function assembles transformation matrix from local nodal coordinate system to the global coordinate system x_g = T x_l

Parameters:
nodes - array containing node numbers
tmat - transformation matrix

JK, 9.7.2001

Definition at line 500 of file plelemlq.cpp.

References node::e1, node::e2, fillm(), matrix::m, Mt, ivector::n, mechtop::nodes, and node::transf.

Referenced by nod_strains_comp(), res_eigstrain_forces(), res_incr_internal_forces(), res_internal_forces(), res_ip_strains(), res_load_matrix(), quadrilatc::res_mainip_strains(), res_mass_matrix(), res_nonloc_internal_forces(), and res_stiffness_matrix().


Member Data Documentation

long* cncomp

array containing cumulative numbers of components of stress and strain tensors

Definition at line 131 of file plelemlq.h.

Referenced by elem_integration(), gl_ip_strains(), planeelemlq(), and ~planeelemlq().

long gncomp

number of components for graphic purposes

Definition at line 125 of file plelemlq.h.

Referenced by nod_strains_ip(), nod_stresses_ip(), and planeelemlq().

long intordb

order of integration on edges

Definition at line 143 of file plelemlq.h.

Referenced by nodeforces(), and planeelemlq().

long intordmm

order of integration of mass matrix

Definition at line 141 of file plelemlq.h.

Referenced by load_matrix(), mass_matrix(), and planeelemlq().

long** intordsm
long napfun

number of approximated functions on the element

Definition at line 133 of file plelemlq.h.

Referenced by edge_integral(), edgenodeval(), mechtop::give_napfun(), load_matrix(), mass_matrix(), nodeforces(), and planeelemlq().

long nb
long* ncomp

array containing numbers of components of stress and strain tensors

Definition at line 129 of file plelemlq.h.

Referenced by adaptivity::check_consistency(), elem_integration(), gl_ip_strains(), gl_stiffness_matrix(), planeelemlq(), quadrilatc::quadrilatc(), and ~planeelemlq().

long ndofe
long ned

number of edges

Definition at line 135 of file plelemlq.h.

Referenced by mechtop::give_ned(), and planeelemlq().

long** nip

array of numbers of integration points in sets

Definition at line 145 of file plelemlq.h.

Referenced by adaptivity::check_consistency(), mechtop::give_nip(), planeelemlq(), and ~planeelemlq().

long nne
long nned

number of nodes on one edge

Definition at line 137 of file plelemlq.h.

Referenced by edgenodeval(), mechtop::give_nned(), and planeelemlq().

stress/strain state

Definition at line 149 of file plelemlq.h.

long tncomp
long tnip

total number of integration points on element

Definition at line 127 of file plelemlq.h.

Referenced by mechtop::give_tnip(), and planeelemlq().


The documentation for this class was generated from the following files:

Generated by  doxygen 1.6.2