SIFEL/MEFEL/SRC/elemswitch.cpp File Reference

#include "elemswitch.h"
#include "genfile.h"
#include "global.h"
#include "elemhead.h"
#include "node.h"
#include "element.h"
#include "intpoints.h"

Go to the source code of this file.

Functions

void compute_ipstrains (long lcid)
 function computes strains at integration points
void compute_ipstresses (long lcid)
 function computes stresses at integration points
void compute_nodeothers ()
 function computes values of other array at nodes
void compute_nodestrains (long lcid)
 function computes strains at nodes with respect to setup in problem description
void compute_nodestresses (long lcid)
 function computes stresses at nodes
void computestrains (long lcid)
 general function for strain computation
void computestresses (long lcid)
 general function for stress computation
void elem_eigstrain_forces (long lcid, long eid, vector &nfor)
 function computes nodal forces caused by eigenstrains on one element
void elem_incr_internal_forces (long i, long lcid, vector &ifor)
 function computes contributions to increments of internal forces from one element
void elem_integration_quant (long eid, integratedquant iq, long lcid, vector &nv)
 function integrates arbitrary selected quantity over element volume
void elem_internal_forces (long i, long lcid, vector &ifor)
 function computes contributions to internal forces from one element
void elem_intpointval (long eid, vector &nodval, vector &ipval)
 function interpolates nodal values to integration points on one element
void elem_intpointval2 (long eid, vector &nodval, vector &ipval)
 function interpolates nodal values into integration points using lower order approximation
void elem_local_values (long i, long lcid)
 function computes local values for consecutive averaging
void elem_mechq_nodval (long eid, vector &nodval, nontransquant qt)
 function determines mechanical quantities at nodes on one element, they are used by TRFEL in coupled problems
void elem_mechq_nodval_comp (long eid, vector &nodval, long ncne, long nq, nontransquant *qt)
 function computes mechanical quantities in nodes on one element, they are used by TRFEL in coupled problems
void elem_nlstresses (long i, long lcid)
 function computes stresses
void elem_nonloc_internal_forces (long i, long lcid, vector &ifor)
 function computes contributions to internal forces from one element nonlocally
void find_extreme_ipstresses (long lcid)
void initstiffmat (long lcid, long eid, matrix &sm)
 function computes intial stiffness matrix of required element
double interpolate (long eid, double *nodval, double *coord)
 function interpolates arbitrary nodal quantity to the required inner point
void intpointval (double *gv, nonmechquant nmq, double scale)
 function interpolates nodal values into integration points
void intpointval2 (double *gv, nonmechquant nmq)
 function interpolates nodal values into integration points using lower order approximation
void ipvolume ()
 function computes volume appropriate to integration points
void loadmat (long eid, matrix &lm)
 function computes load matrix of required element
void massmat (long lcid, long eid, matrix &mm)
 function computes mass matrix of required element
void nodestrains_comp (long lcid)
 function computes strains directly at nodes
void stiffmat (long lcid, long eid, matrix &sm)
 function computes stiffness matrix of required element

Function Documentation

void compute_ipstrains ( long  lcid  ) 

function computes strains at integration points

The function computes strains at integration points. All components at all integration points are evaluated.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK, 28.11.2006

Definition at line 28 of file elemswitch.cpp.

References mechmat::add_macro_strains(), Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Beam3dg, beamg3d, Cct, cctel, mechmat::cleanstrain(), Dkt, dktel, Dst, dstel, mechmat::eigstrmod(), mechtop::give_elem_type(), lhsrhs::give_lhs(), mechtop::give_ncomp(), Gtm, probdesc::homog, gtopology::leso, Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Lsrs, Ltet, Ltetrot, Mm, Mp, Mt, Ndofm, mechtop::ne, beamgen3d::nodal_displ(), beamel3d::nodal_displ(), beamel2d::nodal_displ(), particleelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, Pqcon, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, axisymqq::res_allip_strains(), axisymlq::res_allip_strains(), linhexrot::res_ip_strains(), lintetrot::res_ip_strains(), quadhex::res_ip_strains(), linhex::res_ip_strains(), quadtet::res_ip_strains(), lintet::res_ip_strains(), shellq::res_ip_strains(), shelltr::res_ip_strains(), q4plate::res_ip_strains(), dstelem::res_ip_strains(), dktelem::res_ip_strains(), cctelem::res_ip_strains(), planeelemrotlq::res_ip_strains(), planeelemqq::res_ip_strains(), planeelemlq::res_ip_strains(), planeelemrotlt::res_ip_strains(), planeelemlt::res_ip_strains(), barel3d::res_ip_strains(), barel2d::res_ip_strains(), axisymlt::res_mainip_strains(), soilplateq::res_mainip_strains(), soilplatetr::res_mainip_strains(), plquadcontact::res_mainip_strains(), planeelemsubqt::res_mainip_strains(), planeelemqt::res_mainip_strains(), barelq3d::res_mainip_strains(), barelq2d::res_mainip_strains(), Sbeam, shellqelem, shelltrelem, Shq, Shtr, Splq, Spltr, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, springel::strains(), soilbeam::strains(), subsoilbeam, subsoilplateq, and subsoilplatetr.

Referenced by compute_req_val(), computestrains(), incr_internal_forces(), mechmat::initvalues(), loc_internal_forces(), nonloc_internal_forces(), solve_var_stiff_method(), and stress_initdispl().

void compute_ipstresses ( long  lcid  ) 

function computes stresses at integration points

The function computes all stresses at integration points.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK, 28.11.2006

Definition at line 753 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Beam3dg, beamg3d, Cct, cctel, Dkt, dktel, Dst, dstel, mechtop::give_elem_type(), Gtm, gtopology::leso, Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, mechtop::ne, beamgen3d::nodal_forces(), beamel3d::nodal_forces(), beamel2d::nodal_forces(), particleelem, Pelq, Pelt, Peqq, Perlt, planeelementlq, planeelementlt, planeelementqq, planeelementrotlt, planequadcontact, Pqcon, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, axisymqq::res_allip_stresses(), axisymlq::res_allip_stresses(), linhexrot::res_ip_stresses(), lintetrot::res_ip_stresses(), quadhex::res_ip_stresses(), linhex::res_ip_stresses(), quadtet::res_ip_stresses(), lintet::res_ip_stresses(), shellq::res_ip_stresses(), shelltr::res_ip_stresses(), q4plate::res_ip_stresses(), dstelem::res_ip_stresses(), dktelem::res_ip_stresses(), cctelem::res_ip_stresses(), planeelemqq::res_ip_stresses(), planeelemlq::res_ip_stresses(), planeelemrotlt::res_ip_stresses(), planeelemlt::res_ip_stresses(), barel3d::res_ip_stresses(), barel2d::res_ip_stresses(), axisymlt::res_mainip_stresses(), plquadcontact::res_mainip_stresses(), barelq3d::res_mainip_stresses(), barelq2d::res_mainip_stresses(), shellqelem, shelltrelem, Shq, Shtr, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, springel::stresses(), subsoilplateq, and subsoilplatetr.

Referenced by compute_req_val(), computestresses(), response_spectrum_method(), and solve_var_stiff_method().

void compute_nodeothers (  ) 
void compute_nodestrains ( long  lcid  ) 

function computes strains at nodes with respect to setup in problem description

Function computes strains at element nodes. Nodal strains are averaged. In case of bar and beam elements be carefull if averaging is reasonable.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK, 28.11.2006

Definition at line 268 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, bar3d, Barq2d, barq2d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Cct, cctel, probdesc::detnodstrain, dktel, dstel, mechtop::give_elem_type(), Gtm, gtopology::leso, Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mp, Mt, mechtop::ne, mechtop::nn, planeelemsubqt::nod_strains(), planeelemqt::nod_strains(), linhexrot::nod_strains_ip(), lintetrot::nod_strains_ip(), quadhex::nod_strains_ip(), linhex::nod_strains_ip(), quadtet::nod_strains_ip(), lintet::nod_strains_ip(), shellq::nod_strains_ip(), shelltr::nod_strains_ip(), axisymqq::nod_strains_ip(), axisymlq::nod_strains_ip(), axisymlt::nod_strains_ip(), cctelem::nod_strains_ip(), planeelemqq::nod_strains_ip(), planeelemlq::nod_strains_ip(), planeelemrotlt::nod_strains_ip(), planeelemlt::nod_strains_ip(), barelq2d::nod_strains_ip(), barel2d::nod_strains_ip(), beamel3d::nodal_displ(), beamel2d::nodal_displ(), mechtop::nodes, node::nullstrain(), particleelem, Pelq, Pelt, Peqq, Peqt, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, print_err(), q4plateel, Qhex, Qtet, quadrhex, quadrtet, shellqelem, shelltrelem, Shq, Shtr, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, node::strain_averageval(), subsoilplateq, and subsoilplatetr.

Referenced by compute_req_val().

void compute_nodestresses ( long  lcid  ) 

function computes stresses at nodes

The function computes stresses at element nodes. Nodal stresses are averaged. In case of bar and beam elements, be carefull if averaging is reasonable.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK, 28.11.2006

Definition at line 1246 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, bar3d, Barq2d, barq2d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Beam3dg, beamg3d, Cct, cctel, dktel, dstel, mechtop::give_elem_type(), Gtm, gtopology::leso, Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, mechtop::ne, mechtop::nn, planeelemsubqt::nod_stresses(), planeelemqt::nod_stresses(), linhexrot::nod_stresses_ip(), lintetrot::nod_stresses_ip(), quadhex::nod_stresses_ip(), linhex::nod_stresses_ip(), quadtet::nod_stresses_ip(), lintet::nod_stresses_ip(), shellq::nod_stresses_ip(), shelltr::nod_stresses_ip(), axisymqq::nod_stresses_ip(), axisymlq::nod_stresses_ip(), axisymlt::nod_stresses_ip(), cctelem::nod_stresses_ip(), planeelemqq::nod_stresses_ip(), planeelemlq::nod_stresses_ip(), planeelemrotlt::nod_stresses_ip(), planeelemlt::nod_stresses_ip(), barelq2d::nod_stresses_ip(), barel2d::nod_stresses_ip(), beamgen3d::nodal_forces(), beamel3d::nodal_forces(), beamel2d::nodal_forces(), mechtop::nodes, node::nullstress(), particleelem, Pelq, Pelt, Peqq, Peqt, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, print_err(), q4plateel, Qhex, Qtet, quadrhex, quadrtet, shellqelem, shelltrelem, Shq, Shtr, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, node::stress_averageval(), subsoilplateq, and subsoilplatetr.

Referenced by compute_req_val().

void computestrains ( long  lcid  ) 

general function for strain computation

The function computes strains at strain points.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK,

Definition at line 555 of file elemswitch.cpp.

References compute_ipstrains().

void computestresses ( long  lcid  ) 

general function for stress computation

The function computes stresses at stress points.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK,

Definition at line 1432 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Cct, cctel, compute_ipstresses(), Dkt, dktel, Dst, dstel, mechtop::give_elem_type(), Gtm, gtopology::leso, Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, mechtop::ne, beamel3d::nodal_forces(), beamel2d::nodal_forces(), particleelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, shellqelem, shelltrelem, Shq, Shtr, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, linhexrot::stresses(), lintetrot::stresses(), quadhex::stresses(), linhex::stresses(), quadtet::stresses(), lintet::stresses(), shellq::stresses(), shelltr::stresses(), axisymqq::stresses(), axisymlq::stresses(), axisymlt::stresses(), q4plate::stresses(), dstelem::stresses(), dktelem::stresses(), cctelem::stresses(), planeelemsubqt::stresses(), planeelemrotlq::stresses(), planeelemqq::stresses(), planeelemlq::stresses(), planeelemrotlt::stresses(), planeelemqt::stresses(), planeelemlt::stresses(), springel::stresses(), barelq3d::stresses(), barelq2d::stresses(), barel3d::stresses(), and barel2d::stresses().

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

function computes nodal forces caused by eigenstrains on one element

The function computes nodal forces caused by eigenstrains on one element.

Parameters:
lcid - load case id
eid - element id
nfor - vector of nodal values (output)
Returns:
The function returns contributions in the parameter nfor.

Created by JK,

Definition at line 3110 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Cct, cctel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, linhexrot::res_eigstrain_forces(), lintetrot::res_eigstrain_forces(), quadhex::res_eigstrain_forces(), linhex::res_eigstrain_forces(), quadtet::res_eigstrain_forces(), lintet::res_eigstrain_forces(), axisymqq::res_eigstrain_forces(), axisymlq::res_eigstrain_forces(), axisymlt::res_eigstrain_forces(), soilplateq::res_eigstrain_forces(), q4plate::res_eigstrain_forces(), cctelem::res_eigstrain_forces(), planeelemsubqt::res_eigstrain_forces(), planeelemrotlq::res_eigstrain_forces(), planeelemqq::res_eigstrain_forces(), planeelemlq::res_eigstrain_forces(), planeelemrotlt::res_eigstrain_forces(), planeelemqt::res_eigstrain_forces(), planeelemlt::res_eigstrain_forces(), barelq3d::res_eigstrain_forces(), barelq2d::res_eigstrain_forces(), barel3d::res_eigstrain_forces(), barel2d::res_eigstrain_forces(), Splq, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, and subsoilplateq.

Referenced by nodal_eigstrain_forces(), and nodal_pore_press_forces().

void elem_incr_internal_forces ( long  i,
long  lcid,
vector ifor 
)

function computes contributions to increments of internal forces from one element

The function computes contributions to increments of internal forces from one finite element.

Parameters:
i - element id
lcid - load case id
ifor - vector of increments of internal forces on one element (output)
Returns:
The function returns contributions in the parameter ifor.

Created by JK, 29.4.2008

Definition at line 2944 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Cct, cctel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, linhexrot::res_incr_internal_forces(), lintetrot::res_incr_internal_forces(), quadhex::res_incr_internal_forces(), linhex::res_incr_internal_forces(), quadtet::res_incr_internal_forces(), lintet::res_incr_internal_forces(), axisymqq::res_incr_internal_forces(), axisymlq::res_incr_internal_forces(), axisymlt::res_incr_internal_forces(), soilplateq::res_incr_internal_forces(), q4plate::res_incr_internal_forces(), cctelem::res_incr_internal_forces(), planeelemsubqt::res_incr_internal_forces(), planeelemrotlq::res_incr_internal_forces(), planeelemqq::res_incr_internal_forces(), planeelemlq::res_incr_internal_forces(), planeelemrotlt::res_incr_internal_forces(), planeelemqt::res_incr_internal_forces(), planeelemlt::res_incr_internal_forces(), barelq3d::res_incr_internal_forces(), barelq2d::res_incr_internal_forces(), barel3d::res_incr_internal_forces(), barel2d::res_incr_internal_forces(), Splq, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, and subsoilplateq.

Referenced by incr_internal_forces().

void elem_integration_quant ( long  eid,
integratedquant  iq,
long  lcid,
vector nv 
)

function integrates arbitrary selected quantity over element volume

The function integrates arbitrary selected quantity over finite element, i.e. it performs {} {} d. It results in nodal values that can be used in the homogenization problems.

Parameters:
eid - element id
iq - type of integrated quantity (see alias.h)
lcid - number of load case
nv - nodal values (output)
Returns:
The function returns nodal values calculated in the vector nv

Created by TKo, 23.1.2015

Definition at line 2433 of file elemswitch.cpp.

References lintet::elem_integration_quant(), mechtop::give_elem_type(), lineartet, Ltet, Mt, and print_err().

Referenced by loc_internal_forces().

void elem_internal_forces ( long  i,
long  lcid,
vector ifor 
)

function computes contributions to internal forces from one element

The function computes contributions to internal forces from one finite element.

Parameters:
i - element id
lcid - load case id
ifor - vector of internal forces on one element (output)
Returns:
The function returns contributions in the parameter ifor.

Created by JK, 3.11.2006

Definition at line 2230 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Cct, cctel, Dkt, dktel, Dst, dstel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, particleelem, Pelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, Pqcon, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, elemparticle::res_internal_forces(), linhexrot::res_internal_forces(), lintetrot::res_internal_forces(), quadhex::res_internal_forces(), linhex::res_internal_forces(), quadtet::res_internal_forces(), lintet::res_internal_forces(), shelltr::res_internal_forces(), axisymqq::res_internal_forces(), axisymlq::res_internal_forces(), axisymlt::res_internal_forces(), soilplatetr::res_internal_forces(), soilplateq::res_internal_forces(), q4plate::res_internal_forces(), dstelem::res_internal_forces(), dktelem::res_internal_forces(), cctelem::res_internal_forces(), plquadcontact::res_internal_forces(), planeelemsubqt::res_internal_forces(), planeelemrotlq::res_internal_forces(), planeelemqq::res_internal_forces(), planeelemlq::res_internal_forces(), planeelemrotlt::res_internal_forces(), planeelemqt::res_internal_forces(), planeelemlt::res_internal_forces(), springel::res_internal_forces(), soilbeam::res_internal_forces(), beamel3d::res_internal_forces(), beamel2d::res_internal_forces(), barelq3d::res_internal_forces(), barelq2d::res_internal_forces(), barel3d::res_internal_forces(), barel2d::res_internal_forces(), Sbeam, shelltrelem, Shtr, Splq, Spltr, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, subsoilbeam, subsoilplateq, and subsoilplatetr.

Referenced by loadcase::compute_reactions(), dloadcase::compute_reactions(), and loc_internal_forces().

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

function interpolates nodal values to integration points on one element

The function interpolates nodal values to integration points on one element.

Parameters:
eid - element id
nodval - vector of nodal values
ipval - vector of values at integration points (output)
Returns:
The function returns interpolated values in the parameter ipval.

Created by JK, 29.11.2006

Definition at line 1765 of file elemswitch.cpp.

References Asymlq, Asymqq, axisymmlq, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, mechtop::give_elem_type(), linhexrot::intpointval(), lintetrot::intpointval(), quadhex::intpointval(), linhex::intpointval(), quadtet::intpointval(), lintet::intpointval(), axisymqq::intpointval(), axisymlq::intpointval(), planeelemqq::intpointval(), planeelemlq::intpointval(), planeelemlt::intpointval(), springel::intpointval(), barelq3d::intpointval(), barelq2d::intpointval(), barel3d::intpointval(), barel2d::intpointval(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, Pelq, Pelt, Peqq, planeelementlq, planeelementlt, planeelementqq, print_err(), Qhex, Qtet, quadrhex, quadrtet, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, and spring_6.

Referenced by intpointval(), and trfel_mefel_by_nodes().

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

function interpolates nodal values into integration points using lower order approximation

Function interpolates nodal values into integration points. Order of the used approximation functions is one degree less then on the given element.

Parameters:
eid - element id
nodval - vector containing values at corner nodes
ipval - vector of integration point values (output)
Returns:
The function returns resulting integration point values in the vector ipval.

Created by Tomas Koudelka, 10.12.2013

Definition at line 1980 of file elemswitch.cpp.

References Asymqq, axisymmqq, Bar2d, bar2d, Barq2d, barq2d, Barq3d, barq3d, mechtop::give_elem_type(), springel::intpointval(), barel2d::intpointval(), quadhex::intpointval2(), quadtet::intpointval2(), axisymqq::intpointval2(), planeelemqq::intpointval2(), barelq3d::intpointval2(), barelq2d::intpointval2(), Mt, Peqq, planeelementqq, print_err(), Qhex, Qtet, quadrhex, quadrtet, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, and spring_6.

Referenced by intpointval2(), and trfel_mefel_by_nodes().

void elem_local_values ( long  i,
long  lcid 
)

function computes local values for consecutive averaging

The function computes local values which will be averaged for nonlocal material models at one finite element.

Parameters:
i - element id
lcid - load case id
Returns:
The function does not return anything.

Created by Tomas Koudelka, 7.2008

Definition at line 2609 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, beam2d, beam3d, Cct, cctel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, linhexrot::local_values(), lintetrot::local_values(), quadhex::local_values(), linhex::local_values(), quadtet::local_values(), lintet::local_values(), axisymqq::local_values(), axisymlq::local_values(), axisymlt::local_values(), soilplateq::local_values(), q4plate::local_values(), cctelem::local_values(), planeelemsubqt::local_values(), planeelemrotlq::local_values(), planeelemqq::local_values(), planeelemlq::local_values(), planeelemrotlt::local_values(), planeelemqt::local_values(), planeelemlt::local_values(), barelq3d::local_values(), barelq2d::local_values(), barel3d::local_values(), barel2d::local_values(), Ltet, Ltetrot, Mt, particleelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, Splq, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, subsoilbeam, and subsoilplateq.

Referenced by nonloc_internal_forces().

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

function determines mechanical quantities at nodes on one element, they are used by TRFEL in coupled problems

The function returns non-transport=mechanical quantities at element nodes. Nodal values are copied from the closest integration point on element. It is used for passing required mechanical quantities by TRFEL in coupled problems.

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

Created 12/06/2012 TKr Modified by Tomas Koudelka 9.10.2013

Definition at line 3705 of file elemswitch.cpp.

References Bar2d, bar2d, mechtop::give_elem_type(), planeelemlq::mechq_nodval(), barel2d::mechq_nodval(), Mt, Pelq, planeelementlq, and print_err().

Referenced by mefel_trfel().

void elem_mechq_nodval_comp ( long  eid,
vector nodval,
long  ncne,
long  nq,
nontransquant qt 
)

function computes mechanical quantities in nodes on one element, they are used by TRFEL in coupled problems

The function returns non-transport=mechanical quantities from element nodes. Nodal values are computed directly at nodes according to strains. It is used for passing required mechanical quantities by TRFEL in coupled problems.

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*nne+j] where nne is the number of nodes on eid-th element.
ncne - number of computed nodes on element (only first ncne 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 but it stores nodal values in parameter nodval.

Created 12/06/2012 TKr Modified by Tomas Koudelka 9.10.2013

Definition at line 3746 of file elemswitch.cpp.

References Bar2d, bar2d, mechtop::give_elem_type(), planeelemlq::mechq_nodval_comp(), barel2d::mechq_nodval_comp(), Mt, Pelq, planeelementlq, and print_err().

Referenced by mefel_trfel_by_nodes().

void elem_nlstresses ( long  i,
long  lcid 
)

function computes stresses

The function computes stresses at one finite element.

Parameters:
i - element id
lcid - load case id
Returns:
The function does not return anything but it changes stress array of integration points on the given element.

Created by Tomas Koudelka, 10.6.2013

Definition at line 2461 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, beam2d, beam3d, Cct, cctel, linhexrot::compute_nlstress(), lintetrot::compute_nlstress(), quadhex::compute_nlstress(), linhex::compute_nlstress(), quadtet::compute_nlstress(), lintet::compute_nlstress(), axisymqq::compute_nlstress(), axisymlq::compute_nlstress(), axisymlt::compute_nlstress(), soilplateq::compute_nlstress(), q4plate::compute_nlstress(), cctelem::compute_nlstress(), planeelemsubqt::compute_nlstress(), planeelemrotlq::compute_nlstress(), planeelemqq::compute_nlstress(), planeelemlq::compute_nlstress(), planeelemrotlt::compute_nlstress(), planeelemqt::compute_nlstress(), planeelemlt::compute_nlstress(), barelq3d::compute_nlstress(), barelq2d::compute_nlstress(), barel3d::compute_nlstress(), barel2d::compute_nlstress(), mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, particleelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, Splq, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, subsoilbeam, and subsoilplateq.

void elem_nonloc_internal_forces ( long  i,
long  lcid,
vector ifor 
)

function computes contributions to internal forces from one element nonlocally

The function computes contributions to internal forces from one finite element. Contributions are evaluated nonlocally.

Parameters:
i - element id
lcid - load case id
ifor - vector of internal forces on one element (output)
Returns:
The function returns contributions in the parameter ifor.

Created by JK, 3.11.2006

Definition at line 2758 of file elemswitch.cpp.

References Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Cct, cctel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, Ltet, Ltetrot, Mt, particleelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, Pqcon, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, plquadcontact::res_internal_forces(), springel::res_internal_forces(), soilbeam::res_internal_forces(), beamel3d::res_internal_forces(), beamel2d::res_internal_forces(), linhexrot::res_nonloc_internal_forces(), lintetrot::res_nonloc_internal_forces(), quadhex::res_nonloc_internal_forces(), linhex::res_nonloc_internal_forces(), quadtet::res_nonloc_internal_forces(), lintet::res_nonloc_internal_forces(), axisymqq::res_nonloc_internal_forces(), axisymlq::res_nonloc_internal_forces(), axisymlt::res_nonloc_internal_forces(), soilplateq::res_nonloc_internal_forces(), q4plate::res_nonloc_internal_forces(), cctelem::res_nonloc_internal_forces(), planeelemsubqt::res_nonloc_internal_forces(), planeelemrotlq::res_nonloc_internal_forces(), planeelemqq::res_nonloc_internal_forces(), planeelemlq::res_nonloc_internal_forces(), planeelemrotlt::res_nonloc_internal_forces(), planeelemqt::res_nonloc_internal_forces(), planeelemlt::res_nonloc_internal_forces(), barelq3d::res_nonloc_internal_forces(), barelq2d::res_nonloc_internal_forces(), barel3d::res_nonloc_internal_forces(), barel2d::res_nonloc_internal_forces(), Sbeam, Splq, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, subsoilbeam, and subsoilplateq.

Referenced by nonloc_internal_forces().

void find_extreme_ipstresses ( long  lcid  ) 

The function searches the minimum and maximum stresses in integration points.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by JK, 16. 11. 2012

Definition at line 971 of file elemswitch.cpp.

References allocv(), Bar2d, bar3d, Bar3d, destrv(), fillv(), linhex::find_extreme_stresses(), barel3d::find_extreme_stresses(), mechtop::give_elem_type(), Gtm, gtopology::leso, Lhex, linearhex, Mt, mechtop::ne, print_err(), linhex::tncomp, barel3d::tncomp, and barel2d::tncomp.

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

function computes intial stiffness matrix of required element

The function computes initial stiffness matrix of required element.

Parameters:
lcid - load case id
eid - element id
sm - initial stiffness matrix of the element (output)
Returns:
The function returns assembled matrix in the parameter sm.

Created by JK,

Definition at line 3581 of file elemswitch.cpp.

References Beam2d, beam2d, mechtop::give_elem_type(), beamel2d::initstr_matrix_expl(), Mt, and print_err().

Referenced by initial_stiffness_matrix().

double interpolate ( long  eid,
double *  nodval,
double *  coord 
)

function interpolates arbitrary nodal quantity to the required inner point

The function interpolates arbitrary quantity defined by its nodal values to required inner point.

Parameters:
eid - element id
nodval - array containing nodal values
coord - array containing coordinates
Returns:
The function returns required interpolated value.

Created by JK, 23.2.2002

Definition at line 2059 of file elemswitch.cpp.

References allocv(), quadhex::approx(), linhex::approx(), quadtet::approx(), lintet::approx(), planeelemrotlq::approx(), planeelemqq::approx(), planeelemlq::approx(), planeelemrotlt::approx(), planeelemqt::approx(), planeelemlt::approx(), destrv(), mechtop::give_elem_type(), mechtop::give_nne(), Lhex, linearhex, lineartet, Ltet, Mt, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, print_err(), Qhex, Qtet, quadrhex, and quadrtet.

void intpointval ( double *  gv,
nonmechquant  nmq,
double  scale 
)

function interpolates nodal values into integration points

The function interpolates nodal values into integration points.

Parameters:
gv - array containing values at all nodes of the mesh
nmq - type of non-mechanical quantity
scale - scale coefficient
Returns:
The function does not return anything.

Created by JK, 21.6.2004, extended by TKr 31/08/2012

Definition at line 1882 of file elemswitch.cpp.

References elem_intpointval(), mechtop::elements, mechtop::give_elemnodes(), mechtop::give_nne(), mechtop::give_tnip(), Gtm, element::ipp, gtopology::leso, Mm, Mt, mechtop::ne, nodes, nodval(), reallocv(), and mechmat::storenonmechq().

Referenced by approximation_humid(), approximation_inittemper(), approximation_temper(), init_trfel_mefel(), loadcase::tempercontrib(), and trfel_mefel().

void intpointval2 ( double *  gv,
nonmechquant  nmq 
)

function interpolates nodal values into integration points using lower order approximation

Function interpolates nodal values into integration points. Order of the used approximation functions is one degree less then on the given element.

Parameters:
gv - array containing values at all nodes of the mesh
nmq - type of non-mechanical quantity
Returns:
The function does not return anything.

Created by 21.6.2004, JK, extended by TKr 31/08/2012

Definition at line 1931 of file elemswitch.cpp.

References elem_intpointval2(), mechtop::elements, mechtop::give_elemnodes(), mechtop::give_nne(), mechtop::give_tnip(), Gtm, element::ipp, gtopology::leso, Mm, Mt, mechtop::ne, nodes, nodval(), reallocv(), and mechmat::storenonmechq().

Referenced by approximation_humid(), approximation_inittemper(), approximation_temper(), init_trfel_mefel(), and trfel_mefel().

void ipvolume (  ) 
void loadmat ( long  eid,
matrix lm 
)
void massmat ( long  lcid,
long  eid,
matrix mm 
)
void nodestrains_comp ( long  lcid  ) 

function computes strains directly at nodes

Function computes strains at element nodes directly and nodal strains are averaged. In case of bar and beam elements be carefull if averaging is reasonable. The function is intended for transfer of mechanical quantities in coupled problems.

Parameters:
lcid - load case id
Returns:
The function does not return anything.

Created by Tomas Koudelka, 14.11.2013

Definition at line 456 of file elemswitch.cpp.

References axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, bar3d, barq2d, barq3d, mechtop::give_elem_type(), Gtm, gtopology::leso, linearhex, lineartet, gtopology::lnso, Mt, mechtop::ne, mechtop::nn, barel2d::nod_strains_comp(), mechtop::nodes, node::nullstrain(), planeelementlq, planeelementlt, planeelementqq, planeelementqt, print_err(), quadrhex, quadrtet, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, and node::strain_averageval().

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

function computes stiffness matrix of required element

The function computes stiffness matrix of required element.

Parameters:
lcid - load case id
eid - element id
sm - stiffness matrix of the element (output)
Returns:
The function returns assembled matrix in the parameter sm.

Created by JK,

Definition at line 3241 of file elemswitch.cpp.

References Argtrpl, argyristr, Asymlq, Asymlt, Asymqq, axisymmlq, axisymmlt, axisymmqq, Bar2d, bar2d, Bar3d, bar3d, Barq2d, barq2d, Barq3d, barq3d, Beam2d, beam2d, Beam3d, beam3d, Beam3dg, beamg3d, Cct, cctel, Dkt, dktel, Dst, dstel, mechtop::give_elem_type(), Lhex, Lhexrot, linearhex, linearhexrot, lineartet, lineartetrot, linearwed, Ltet, Ltetrot, Lwed, Mt, particleelem, Pelem, Pelq, Pelt, Peqq, Peqt, Perlq, Perlt, Pesqt, planeelementlq, planeelementlt, planeelementqq, planeelementqt, planeelementrotlq, planeelementrotlt, planeelementsubqt, planequadcontact, Pqcon, print_err(), Q4pl, q4plateel, Qhex, Qtet, quadrhex, quadrtet, quadrwed, Qwed, elemparticle::res_stiffness_matrix(), quadwedge::res_stiffness_matrix(), linwedge::res_stiffness_matrix(), linhexrot::res_stiffness_matrix(), lintetrot::res_stiffness_matrix(), quadhex::res_stiffness_matrix(), linhex::res_stiffness_matrix(), quadtet::res_stiffness_matrix(), lintet::res_stiffness_matrix(), shellq::res_stiffness_matrix(), shelltr::res_stiffness_matrix(), axisymqq::res_stiffness_matrix(), axisymlq::res_stiffness_matrix(), axisymlt::res_stiffness_matrix(), soilplateq::res_stiffness_matrix(), soilplatetr::res_stiffness_matrix(), argyrisplate::res_stiffness_matrix(), q4plate::res_stiffness_matrix(), dstelem::res_stiffness_matrix(), dktelem::res_stiffness_matrix(), cctelem::res_stiffness_matrix(), plquadcontact::res_stiffness_matrix(), planeelemsubqt::res_stiffness_matrix(), planeelemrotlq::res_stiffness_matrix(), planeelemqq::res_stiffness_matrix(), planeelemlq::res_stiffness_matrix(), planeelemrotlt::res_stiffness_matrix(), planeelemqt::res_stiffness_matrix(), planeelemlt::res_stiffness_matrix(), springel::res_stiffness_matrix(), soilbeam::res_stiffness_matrix(), beamgen3d::res_stiffness_matrix(), beamel3d::res_stiffness_matrix(), beamel2d::res_stiffness_matrix(), barelq3d::res_stiffness_matrix(), barelq2d::res_stiffness_matrix(), barel3d::res_stiffness_matrix(), barel2d::res_stiffness_matrix(), Sbeam, shellqelem, shelltrelem, Shq, Shtr, Splq, Spltr, Spring, spring_1, spring_2, spring_3, spring_4, spring_5, spring_6, subsoilbeam, subsoilplateq, and subsoilplatetr.

Referenced by loadcase::assemble(), dloadcase::assemble(), stiffness_matrix(), and zero_order_matrix().


Generated by  doxygen 1.6.2