#include <plelemlq.h>
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 |
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.
planeelemlq | ( | void | ) |
~planeelemlq | ( | void | ) |
double approx | ( | double | xi, | |
double | eta, | |||
vector & | nodval | |||
) |
function approximates function defined by nodal values
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
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
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
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)
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
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
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
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
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().
function assembles blocks of stiffness matrix of material
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
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
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
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.
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
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().
function extracts variables on element it is used in stochastic or fuzzy computations
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.
function assembles strain-displacement (geometric) matrix
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
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)
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().
function computes strains at integration points of element function is used in geometrically linear problems
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().
function computes stiffness matrix of plane rectangular finite element with bilinear approximation functions
function computes stiffness matrix for geometrically linear problems
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
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().
function computes gradient matrix for geometrically nonlinear problems
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)
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.
function computes strains at integration points of element function is used in geometrically linear problems
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
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)
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().
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.
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().
function interpolates the nodal values to the integration points on the element
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
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]
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
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().
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
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.
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().
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
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.
eid | - element id | |
nodval | - vector of nodal values | |
qt | - type of mechanical quantity |
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.
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 |
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
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.
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
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
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
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 | |||
) |
Definition at line 1935 of file plelemlq.cpp.
References matrix::a, addv(), bf_matrix(), fillm(), fillv(), gauss_points(), mechtop::give_node_coord2d(), intordb, jac1d_2d(), Mt, mxv(), napfun, ndofe, nne, and nnj().
Referenced by loadel::edgeload().
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
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]}
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.
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
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
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
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
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
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
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
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
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
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
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 | |||
) |
Definition at line 1216 of file plelemlq.cpp.
References allocv(), destrv(), enodes, aepoints::give_aepcoord(), aepoints::give_naep(), aepoints::give_ncomp(), aepoints::give_sid(), intpts, Mm, Mp, nne, nod_stresses_ip(), nowhere, print_err(), res_ip_stresses(), aepoints::storevalues(), mechmat::stre, probdesc::stressaver, aepoints::tape, tncomp, and userdefined.
Referenced by computestresses().
function assembles transformation matrix from local nodal coordinate system to the global coordinate system x_g = T x_l
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().
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 |
array containing orders of numerical integration of stiffness matrix
Definition at line 139 of file plelemlq.h.
Referenced by compute_eigstress(), compute_nlstress(), compute_nlstressincr(), compute_nonloc_nlstress(), elem_integration(), export_gid_gauss_pt(), mechtop::give_intordsm(), gl_ip_strains(), gl_stiffness_matrix(), gnl_internal_forces(), gnl_ip_strains(), gnl_stiffness_matrix(), inicipval(), intpointval(), ipcoord(), ipcoordblock(), ipvolume(), local_values(), mechq_nodval(), mechq_nodval_comp(), nod_eqother_ip(), nod_strains_ip(), nod_stresses_ip(), planeelemlq(), and ~planeelemlq().
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 |
number of blocks
Definition at line 147 of file plelemlq.h.
Referenced by adaptivity::check_consistency(), compute_eigstress(), compute_nlstress(), compute_nlstressincr(), compute_nonloc_nlstress(), elem_integration(), mechtop::give_nb(), mechtop::give_nb_te(), gl_ip_strains(), gl_stiffness_matrix(), inicipval(), intpointval(), ipvolume(), local_values(), planeelemlq(), quadrilatc::quadrilatc(), and ~planeelemlq().
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 |
number of DOFs on the element
Definition at line 119 of file plelemlq.h.
Referenced by define_meaning(), edge_integral(), elchar(), elem_integration(), mechtop::give_ndofe(), gl_ip_strains(), gl_stiffness_matrix(), gngeom_matrix(), gnl_grmatrix(), gnl_internal_forces(), gnl_ip_strains(), gnl_stiffness_matrix(), load_matrix(), mass_matrix(), nod_strains_comp(), nodeforces(), planeelemlq(), quadrilatc::quadrilatc(), res_eigstrain_forces(), res_incr_internal_forces(), res_internal_forces(), res_ip_strains(), res_load_matrix(), res_mass_matrix(), res_nonloc_internal_forces(), and res_stiffness_matrix().
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 |
number of nodes on one element
Definition at line 121 of file plelemlq.h.
Referenced by approx(), bf_matrix(), bvectors(), compute_error(), define_meaning(), elchar(), elem_integration(), geom_matrix(), geom_matrix_block(), mechtop::give_nne(), gl_stiffness_matrix(), gnl_internal_forces(), gnl_stiffness_matrix(), inicipval(), planeelemqq::intpointval2(), ipcoord(), ipcoordblock(), ipvolume(), load_matrix(), mass_matrix(), mechq_nodval(), mechq_nodval_comp(), nod_eqother_ip(), nod_strains_comp(), nod_strains_ip(), nod_stresses_comp(), nod_stresses_ip(), nodeforces(), ntdbr_vector(), ntn_matrix(), planeelemlq(), quadrilatc::quadrilatc(), res_eigstrain_forces(), res_incr_internal_forces(), res_internal_forces(), res_ip_strains(), res_load_matrix(), res_mass_matrix(), res_nonloc_internal_forces(), res_stiffness_matrix(), and stresses().
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 |
total number of components of stress and strain tensors
Definition at line 123 of file plelemlq.h.
Referenced by compute_eigstress(), compute_error(), elchar(), mechtop::give_ncomp(), mechtop::give_tncomp(), gl_stiffness_matrix(), gnl_internal_forces(), gnl_ip_strains(), gnl_stiffness_matrix(), nod_strains_comp(), nod_stresses_comp(), ntdbr_vector(), planeelemlq(), quadrilatc::quadrilatc(), and stresses().
long tnip |
total number of integration points on element
Definition at line 127 of file plelemlq.h.
Referenced by mechtop::give_tnip(), and planeelemlq().