#include <q4plate.h>
Public Member Functions | |
double | approx (double xi, double eta, vector &nodval) |
void | appval (double xi, double eta, long fi, long nc, vector &eps, double **val) |
void | areaforces (long eid, double *nv, vector &lm) |
void | atd_matrix (matrix &atd, vector &x, vector &y, long eid) |
void | bf_matrix (matrix &n, matrix &atd, vector &x, vector &y, vector &l) |
void | compute_eigstress (long lcid, long eid, long ri, long ci) |
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 | dmatblock (matrix &dd, matrix &d, long ri, long ci, double t) |
void | eigstrain_forces (long lcid, long eid, long ri, long ci, vector &nfor, vector &x, vector &y) |
void | elem_integration (integratedquant iq, long lcid, long eid, long ri, long ci, vector &nv, vector &x, vector &y) |
void | geom_matrix_bending (matrix &gm, matrix &atd, vector &x, vector &y, vector &l) |
void | geom_matrix_shear (matrix &gm, matrix &atd, vector &x, vector &y, vector &l) |
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 | initstr_matrix (long eid, long ri, long ci, matrix &ism) |
void | internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y) |
void | ip_strains (long lcid, long eid, long ri, long ci, vector &x, vector &y, vector &r) |
void | load_matrix (long eid, matrix &lm) |
void | local_values (long lcid, long eid, long ri, long ci) |
void | nod_strains_ip (long lcid, long eid, long ri, long ci) |
void | nod_stresses_ip (long lcid, long eid, long ri, long ci) |
void | nonloc_internal_forces (long lcid, long eid, long ri, long ci, vector &ifor, vector &x, vector &y) |
q4plate (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_nonloc_internal_forces (long lcid, long eid, vector &ifor) |
void | res_stiffness_matrix (long eid, matrix &sm) |
void | stiffness_matrix (long eid, long ri, long ci, matrix &sm, vector &x, vector &y) |
void | strains (long lcid, long eid, long ri, long ci) |
void | stresses (long lcid, long eid, long ri, long ci) |
void | transfmat (ivector &nodes, matrix &tmat) |
~q4plate (void) | |
Public Attributes | |
long * | cncomp |
long | intordb |
long | intordmm |
long ** | intordsm |
long | napfun |
long | nb |
long * | ncomp |
long | ndofe |
long | ned |
long ** | nip |
long | nne |
long | nned |
strastrestate | ssst |
long | tncomp |
long | tnip |
total number of integration points on element |
this class defines rectangular plate element based on Mindlin theory shear stresses are taken into account
approximated functions are ordered in the following way: w,fx,fy
PF
Definition at line 18 of file q4plate.h.
q4plate | ( | void | ) |
~q4plate | ( | void | ) |
double approx | ( | double | xi, | |
double | eta, | |||
vector & | nodval | |||
) |
function approximates function defined by nodal values
xi,eta | - coordinates on element | |
nodval | - nodal values |
Definition at line 96 of file q4plate.cpp.
References vector::a, bf_lin_4_2d(), f, nne, and scprd().
Referenced by appval(), compute_nlstress(), elem_integration(), inicipval(), initstr_matrix(), load_matrix(), and stiffness_matrix().
void appval | ( | double | xi, | |
double | eta, | |||
long | fi, | |||
long | nc, | |||
vector & | eps, | |||
double ** | val | |||
) |
Definition at line 620 of file q4plate.cpp.
References allocv(), approx(), destrv(), nne, and nodval().
Referenced by strains(), and stresses().
void areaforces | ( | long | eid, | |
double * | nv, | |||
vector & | lm | |||
) |
function computes load vector from area forces fz of the Q4plate 20.3.2002
Definition at line 1432 of file q4plate.cpp.
References matrix::a, vector::a, atd_matrix(), bf_matrix(), fillv(), gauss_points(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), intordmm, Mt, ndofe, nne, nnj(), and nodes.
function assembles matrix of transformation for Q4plate matrix reduces 16 DOFs to 12 DOFs
20.3.2002
Definition at line 114 of file q4plate.cpp.
References fillm(), gemp(), nne, and p.
Referenced by areaforces(), elem_integration(), initstr_matrix(), ip_strains(), load_matrix(), and stiffness_matrix().
function assembles matrix of base functions for w (approximation of deflection)
20.3.2002
Definition at line 234 of file q4plate.cpp.
References matrix::n.
Referenced by areaforces(), and load_matrix().
void compute_eigstress | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci | |||
) |
function computes correct eigen stresses caused by temperature 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 1311 of file q4plate.cpp.
References mechtop::elements, mechmat::giveeigstrain(), intordsm, element::ipp, mechmat::matstiff(), Mm, Mt, mxv(), nb, mechmat::storeeigstress(), and tncomp.
Referenced by eigstrain_forces().
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 |
TKo, 7.2008
Definition at line 1160 of file q4plate.cpp.
References vector::a, allocv(), approx(), mechmat::computenlstresses(), destrv(), mechtop::elements, gauss_points(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), mechmat::givestress(), intordsm, element::ipp, Mc, Mm, Mp, Mt, nb, nne, nodes, mechmat::storestress(), probdesc::strcomp, and tncomp.
Referenced by elem_nlstresses(), internal_forces(), shellq::res_ip_stresses(), 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 1214 of file q4plate.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 |
TKo 7.2008
Definition at line 1279 of file q4plate.cpp.
References mechmat::compnonloc_nlstresses(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.
Referenced by nonloc_internal_forces().
function assembles stiffness matrices for bending and shear
function extracts components of the bending part of stiffness matrix of the material to the matrix db
20.3.2002
Definition at line 302 of file q4plate.cpp.
References fillm().
Referenced by stiffness_matrix().
void eigstrain_forces | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci, | |||
vector & | nfor, | |||
vector & | x, | |||
vector & | y | |||
) |
function computes nodal forces caused by temperature changes
eid | - element id | |
ri,ci | - row and column indices | |
nfor | - array containing nodal forces | |
x,y | - nodal coordinates |
7.2008, TKo
Definition at line 1012 of file q4plate.cpp.
References compute_eigstress(), probdesc::eigstrcomp, eigstress, elem_integration(), and Mp.
Referenced by res_eigstrain_forces().
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 |
TKo 7.2008
Definition at line 1351 of file q4plate.cpp.
References vector::a, addv(), allocm(), allocv(), approx(), atd_matrix(), cmulv(), cncomp, destrm(), destrv(), mechtop::elements, f, fillv(), gauss_points(), geom_matrix_bending(), geom_matrix_shear(), 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(), incr_internal_forces(), internal_forces(), and nonloc_internal_forces().
function assembles bending part of the geometrical matrix of base functions Q4plate 20.3.2002
Definition at line 255 of file q4plate.cpp.
References matrix::n.
Referenced by elem_integration(), ip_strains(), and stiffness_matrix().
function assembles shear part of the geometrical matrix of base functions Q4plate 20.3.2002
Definition at line 279 of file q4plate.cpp.
References matrix::n.
Referenced by elem_integration(), ip_strains(), and stiffness_matrix().
void incr_internal_forces | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci, | |||
vector & | ifor, | |||
vector & | x, | |||
vector & | y | |||
) |
function computes increments of internal forces
lcid | - load case id | |
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 989 of file q4plate.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 1501 of file q4plate.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 initstr_matrix | ( | long | eid, | |
long | ri, | |||
long | ci, | |||
matrix & | ism | |||
) |
function computes initial stress stiffness matrix of Q4 element
eid | - element id | |
ri,ci | - row and column indices | |
ism | - i-s matrix |
15.11.2003
Definition at line 479 of file q4plate.cpp.
References allocv(), approx(), atd_matrix(), destrv(), fillm(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), intordsm, Mc, Mt, nb, nne, and nodes.
void internal_forces | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci, | |||
vector & | ifor, | |||
vector & | x, | |||
vector & | y | |||
) |
function computes internal forces
lcid | - load case id | |
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 941 of file q4plate.cpp.
References compute_nlstress(), elem_integration(), and locstress.
Referenced by res_internal_forces().
function computes strains at integration points of element
lcid | - load case id | |
eid | - element id | |
ri | - row index | |
ci | - column index | |
x,y | - vectors of nodal coordinates | |
r | - vector of nodal displacements |
Definition at line 688 of file q4plate.cpp.
References vector::a, allocm(), allocv(), atd_matrix(), cncomp, destrm(), destrv(), mechtop::elements, gauss_points(), geom_matrix_bending(), geom_matrix_shear(), intordsm, element::ipp, Mm, Mt, mxv(), nb, ncomp, ndofe, and mechmat::storestrain().
Referenced by shellq::res_ip_strains(), and res_ip_strains().
void load_matrix | ( | long | eid, | |
matrix & | lm | |||
) |
function computes load matrix of the plate rectangular finite element load vector is obtained after premultiplying load matrix by nodal load values
eid | - number of element | |
lm | - load matrix |
JK, 3.10.2006
Definition at line 565 of file q4plate.cpp.
References matrix::a, approx(), atd_matrix(), bf_matrix(), fillm(), gauss_points(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), mechcrsec::give_thickness(), intordmm, matrix::m, Mc, Mt, matrix::n, napfun, ndofe, nne, nnj(), and nodes.
Referenced by loadmat().
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, 7.2008
Definition at line 1247 of file q4plate.cpp.
References mechmat::computenlstresses(), mechtop::elements, intordsm, element::ipp, Mm, Mp, Mt, nb, and probdesc::strcomp.
Referenced by elem_local_values().
void nod_strains_ip | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci | |||
) |
function assembles strains at nodes of element strains are obtained from the nearest integration points
lcid | - load case id | |
eid | - element id | |
ri,ci | - row and column indices (default value is 0, nonzero values are used in shell elements) |
10.5.2002
Definition at line 751 of file q4plate.cpp.
References mechtop::elements, mechtop::give_elemnodes(), mechmat::givestrain(), intordsm, element::ipp, Mm, Mt, nne, nod, mechtop::nodes, nodip_planelq(), node::storestrain(), and tncomp.
Referenced by shellq::nod_strains_ip().
void nod_stresses_ip | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci | |||
) |
Definition at line 843 of file q4plate.cpp.
References mechtop::elements, mechtop::give_elemnodes(), mechmat::givestress(), intordsm, element::ipp, Mm, Mt, nne, nod, mechtop::nodes, nodip_planelq(), node::storestress(), and tncomp.
Referenced by shellq::nod_stresses_ip().
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
lcid | - load case id | |
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 965 of file q4plate.cpp.
References compute_nonloc_nlstress(), elem_integration(), and nonlocstress.
Referenced by res_nonloc_internal_forces().
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 |
TKo, 7.2008
Definition at line 1129 of file q4plate.cpp.
References eigstrain_forces(), mechtop::give_node_coord2d(), Mt, nne, and nodes.
Referenced by elem_eigstrain_forces().
void res_incr_internal_forces | ( | long | lcid, | |
long | eid, | |||
vector & | ifor | |||
) |
function computes resulting increment of internal forces
lcid | - load case id | |
eid | - element id | |
ifor | - vector of internal forces |
TKo, 7.2008
Definition at line 1098 of file q4plate.cpp.
References mechtop::give_node_coord2d(), incr_internal_forces(), Mt, nne, and nodes.
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 |
TKo, 7.2008
Definition at line 1036 of file q4plate.cpp.
References mechtop::give_node_coord2d(), internal_forces(), Mt, nne, and nodes.
Referenced by elem_internal_forces().
void res_ip_strains | ( | long | lcid, | |
long | eid | |||
) |
function computes strains Q4
lcid | - load case id | |
eid | - element id |
Definition at line 650 of file q4plate.cpp.
References vector::a, allocm(), allocv(), copyv(), destrm(), destrv(), eldispl(), mechtop::give_elemnodes(), mechtop::give_node_coord2d(), ip_strains(), lgvectortransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, and transfmat().
Referenced by compute_ipstrains().
void res_ip_stresses | ( | long | lcid, | |
long | eid | |||
) |
Definition at line 836 of file q4plate.cpp.
References compute_nlstress().
Referenced by compute_ipstresses().
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 |
TKo, 7.2008
Definition at line 1067 of file q4plate.cpp.
References mechtop::give_node_coord2d(), Mt, nne, nodes, and nonloc_internal_forces().
Referenced by elem_nonloc_internal_forces().
void res_stiffness_matrix | ( | long | eid, | |
matrix & | sm | |||
) |
function assembles stiffness matrix of plane stress rectangular finite element with biquadratic approximation functions
eid | - element id | |
sm | - stiffness matrix |
Definition at line 450 of file q4plate.cpp.
References mechtop::give_elemnodes(), mechtop::give_node_coord2d(), glmatrixtransf(), mechtop::locsystems(), Mt, ndofe, nne, nodes, stiffness_matrix(), and transfmat().
Referenced by stiffmat().
function computes stiffness matrix of Q4plate element
this function is used in plate elements (function is called by function res_stiffness_matrix) and shell elements
eid | - element id | |
ri,ci | - row and column indices | |
sm | - stiffness matrix | |
x,y | - nodal coordinates |
20.3.2002
Definition at line 363 of file q4plate.cpp.
References vector::a, allocm(), allocv(), approx(), atd_matrix(), bdbjac(), destrm(), destrv(), dmatblock(), mechtop::elements, fillm(), gauss_points(), geom_matrix_bending(), geom_matrix_shear(), mechtop::give_elemnodes(), mechcrsec::give_thickness(), intordsm, element::ipp, mechmat::matstiff(), Mc, Mm, Mt, nb, ncomp, ndofe, nne, and nodes.
Referenced by shellq::res_stiffness_matrix(), and res_stiffness_matrix().
void strains | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci | |||
) |
Definition at line 777 of file q4plate.cpp.
References allocv(), appval(), destrv(), enodes, aepoints::give_aepcoord(), aepoints::give_naep(), aepoints::give_ncomp(), aepoints::give_sid(), intpts, Mm, Mp, nne, nowhere, aepoints::storevalues(), mechmat::stra, probdesc::strainaver, aepoints::tape, tncomp, and userdefined.
void stresses | ( | long | lcid, | |
long | eid, | |||
long | ri, | |||
long | ci | |||
) |
Definition at line 867 of file q4plate.cpp.
References allocv(), appval(), destrv(), enodes, aepoints::give_aepcoord(), aepoints::give_naep(), aepoints::give_ncomp(), aepoints::give_sid(), intpts, Mm, Mp, nne, nowhere, 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
base vectors e1 and e2 have to contain 2 components the components are in the midplane
nodes | - element nodes | |
tmat | - transformation matrix |
JK,
Definition at line 333 of file q4plate.cpp.
References node::e1, node::e2, matrix::m, Mt, ivector::n, mechtop::nodes, and node::transf.
Referenced by res_ip_strains(), and res_stiffness_matrix().
long* cncomp |
Definition at line 79 of file q4plate.h.
Referenced by elem_integration(), ip_strains(), q4plate(), and ~q4plate().
long intordmm |
Definition at line 89 of file q4plate.h.
Referenced by areaforces(), load_matrix(), and q4plate().
long** intordsm |
Definition at line 87 of file q4plate.h.
Referenced by compute_eigstress(), compute_nlstress(), compute_nlstressincr(), compute_nonloc_nlstress(), elem_integration(), mechtop::give_intordsm(), inicipval(), initstr_matrix(), ip_strains(), local_values(), nod_strains_ip(), nod_stresses_ip(), q4plate(), shellq::shellq(), stiffness_matrix(), and ~q4plate().
long napfun |
Definition at line 81 of file q4plate.h.
Referenced by mechtop::give_napfun(), load_matrix(), and q4plate().
long nb |
Definition at line 95 of file q4plate.h.
Referenced by compute_eigstress(), compute_nlstress(), compute_nlstressincr(), compute_nonloc_nlstress(), elem_integration(), mechtop::give_nb(), mechtop::give_nb_te(), inicipval(), initstr_matrix(), ip_strains(), local_values(), q4plate(), shellq::shellq(), stiffness_matrix(), and ~q4plate().
long* ncomp |
Definition at line 77 of file q4plate.h.
Referenced by elem_integration(), ip_strains(), q4plate(), stiffness_matrix(), and ~q4plate().
long ndofe |
Definition at line 69 of file q4plate.h.
Referenced by areaforces(), elem_integration(), mechtop::give_ndofe(), ip_strains(), load_matrix(), q4plate(), shellq::res_ip_strains(), res_ip_strains(), res_stiffness_matrix(), shellq::shellq(), and stiffness_matrix().
long ned |
Definition at line 83 of file q4plate.h.
Referenced by mechtop::give_ned(), and q4plate().
long** nip |
Definition at line 93 of file q4plate.h.
Referenced by mechtop::give_nip(), q4plate(), shellq::shellq(), and ~q4plate().
long nne |
Definition at line 71 of file q4plate.h.
Referenced by approx(), appval(), areaforces(), atd_matrix(), compute_nlstress(), elem_integration(), mechtop::give_nne(), inicipval(), initstr_matrix(), load_matrix(), nod_strains_ip(), nod_stresses_ip(), q4plate(), res_eigstrain_forces(), res_incr_internal_forces(), res_internal_forces(), res_ip_strains(), res_nonloc_internal_forces(), res_stiffness_matrix(), stiffness_matrix(), strains(), and stresses().
long nned |
Definition at line 85 of file q4plate.h.
Referenced by mechtop::give_nned(), and q4plate().
Definition at line 97 of file q4plate.h.
Referenced by mechtop::give_ssst(), and q4plate().
long tncomp |
Definition at line 73 of file q4plate.h.
Referenced by compute_eigstress(), compute_nlstress(), mechtop::give_ncomp(), mechtop::give_tncomp(), nod_strains_ip(), nod_stresses_ip(), q4plate(), shellq::shellq(), strains(), and stresses().
long tnip |
total number of integration points on element
Definition at line 75 of file q4plate.h.
Referenced by mechtop::give_tnip(), and q4plate().