#include <gedge.h>
Public Member Functions | |
void | alloc_cn (long nccnfn, long nccnln) |
void | check_normal (vector &x, vector &y, ivector &nod) |
void | direction_vector (gnode *gnodes) |
gedge () | |
void | give_dirvect (double *v) |
void | give_first_node_numbers (long *fnn) |
void | give_last_node_numbers (long *lnn) |
void | give_mult_code_numbers (long fln, long *mcn) |
void | give_norvect (double *v) |
void | normal_vector (gnode *gnodes) |
void | print (FILE *out) |
~gedge () | |
Public Attributes | |
long * | adjel |
numbers of adjacent elements | |
long * | cnfn |
array of code numbers for the first nodes (code numbers of Lagrange multipliers) | |
long * | cnln |
array of code numbers for the last nodes (code numbers of Lagrange multipliers) | |
double * | dv |
direction vector | |
long | fn |
first node (number of first node) | |
double | l |
length of the edge | |
long | ln |
last node (number of last node) | |
long | ndofnf |
the number of DOFs defined on first nodes | |
long | ndofnl |
the number of DOFs defined on last nodes | |
long | next |
next edge | |
long * | nlist |
list of nodes on edge | |
long | nm |
node multiplicity | |
long | nn |
the number of nodes on edge | |
double * | nv |
normal vector | |
long | prev |
previous edge | |
long | re |
number of reference element | |
double | threshold |
threshold |
class gedge
this class defines general edge, which can be used in connection with general finite elements only topological informations are collected
the class is motivated by solution of hemivariational inequalities, in 2D problems, there is a contact between two parts of a body matching mesh is assumed and therefore two elements share one edge, the edge has to know four nodes because it will work with differences of displacements
example:
BODY 1 3 4 5 ---2-------3--------4--------5---- ---6-------7--------8--------9---- 2 3 4 BODY 2
edge 4 from the body 1 and edge 3 from body 2 are identical, they are stored in one general edge which has to know nodes 3,7,4,8 nodes in body 1 are ordered first, nodes in body 2 are ordered after ordering of body 1 number of nodes on edge nn=4 node multiplicity nm=2 list of nodes on edge nlist[0]=3, nlist[1]=7, nlist[2]=4, nlist[3]=8
JK, 9.7.2007
Definition at line 43 of file gedge.h.
gedge | ( | void | ) |
~gedge | ( | void | ) |
void alloc_cn | ( | long | nccnfn, | |
long | nccnln | |||
) |
function allocates array for code numbers of Lagrange multipliers
nccnfn | - number of components in array cn of the first nodes | |
nccnln | - number of components in array cn of the last nodes |
JK, 6.1.2008
Definition at line 273 of file gedge.cpp.
References cnfn, cnln, ndofnf, and ndofnl.
Referenced by gtopology::alloc_edge_cn().
void direction_vector | ( | gnode * | gnodes | ) |
function computes direction vector
top | - pointer to topology |
JK, 9.7.2007
Definition at line 68 of file gedge.cpp.
References dv, fn, l, ln, print_err(), threshold, gnode::x, gnode::y, and gnode::z.
Referenced by gtopology::edge_dirvect(), and normal_vector().
void give_dirvect | ( | double * | v | ) |
function returns directional vector
JK, 28.8.2007
Definition at line 199 of file gedge.cpp.
References dv.
Referenced by edgem::tan_nor_displacements().
void give_first_node_numbers | ( | long * | fnn | ) |
function assembles node numbers of first nodes
fnn | - array containing node numbers of first nodes |
JK, 6.8.2008
Definition at line 295 of file gedge.cpp.
References nlist.
Referenced by gtopology::give_edge_code_numbers().
void give_last_node_numbers | ( | long * | lnn | ) |
function assembles node numbers of last nodes
lnn | - array containing node numbers of last nodes |
JK, 6.8.2008
Definition at line 308 of file gedge.cpp.
References nlist.
Referenced by gtopology::give_edge_code_numbers().
void give_mult_code_numbers | ( | long | fln, | |
long * | mcn | |||
) |
function assembles code numbers of Lagrange multipliers defined between selected nodes
fln | - first or last node indicator fln=1 - first nodes are assumed fln=2 - last nodes are assumed | |
mcn | - code numbers of selected multipliers |
JK, 6.8.2008
Definition at line 326 of file gedge.cpp.
References cnfn, cnln, ndofnf, and ndofnl.
Referenced by gtopology::give_edge_code_numbers().
void give_norvect | ( | double * | v | ) |
function returns normal vector
JK, 28.8.2007
Definition at line 210 of file gedge.cpp.
References nv.
Referenced by transtop::compute_resistance_factor(), and edgem::tan_nor_displacements().
void normal_vector | ( | gnode * | gnodes | ) |
function computes normal vector
top | - pointer to topology |
JK, 9.7.2007
Definition at line 104 of file gedge.cpp.
References direction_vector(), dv, nv, print_err(), and threshold.
Referenced by gtopology::edge_normvect().
void print | ( | FILE * | out | ) |
long* adjel |
numbers of adjacent elements
Definition at line 87 of file gedge.h.
Referenced by gtopology::edge_allelem(), gtopology::edges_mat(), gedge(), edget::init(), transtop::mod_view_factors(), and ~gedge().
long* cnfn |
array of code numbers for the first nodes (code numbers of Lagrange multipliers)
Definition at line 94 of file gedge.h.
Referenced by alloc_cn(), gtopology::codenum_multip(), gedge(), give_mult_code_numbers(), and ~gedge().
long* cnln |
array of code numbers for the last nodes (code numbers of Lagrange multipliers)
Definition at line 96 of file gedge.h.
Referenced by alloc_cn(), gtopology::codenum_multip(), gedge(), give_mult_code_numbers(), and ~gedge().
double* dv |
direction vector
Definition at line 101 of file gedge.h.
Referenced by direction_vector(), gedge(), give_dirvect(), normal_vector(), print(), and ~gedge().
long fn |
first node (number of first node)
Definition at line 71 of file gedge.h.
Referenced by gtopology::alloc_edge_cn(), check_normal(), gtopology::codenum_multip(), transtop::compute_resistance_factor(), direction_vector(), gtopology::edge_elem(), gtopology::edge_series(), transtop::edge_temperature(), gtopology::edges(), gtopology::edges_mat(), gedge(), transtop::heat_fluxes(), and transtop::view_factors().
double l |
length of the edge
Definition at line 99 of file gedge.h.
Referenced by direction_vector(), gedge(), transtop::heat_fluxes(), and transtop::view_factors().
long ln |
last node (number of last node)
Definition at line 73 of file gedge.h.
Referenced by gtopology::alloc_edge_cn(), gtopology::codenum_multip(), transtop::compute_resistance_factor(), direction_vector(), gtopology::edge_elem(), gtopology::edge_series(), transtop::edge_temperature(), gtopology::edges(), gtopology::edges_mat(), gedge(), transtop::heat_fluxes(), endnodem::nodal_displacements(), and transtop::view_factors().
long ndofnf |
the number of DOFs defined on first nodes
Definition at line 75 of file gedge.h.
Referenced by alloc_cn(), skyline::column_lengths(), dskyline::column_lengths(), transtop::compute_jumps(), transtop::compute_resistance_factor(), gtopology::edge_localization(), gedge(), and give_mult_code_numbers().
long ndofnl |
the number of DOFs defined on last nodes
Definition at line 77 of file gedge.h.
Referenced by alloc_cn(), skyline::column_lengths(), dskyline::column_lengths(), transtop::compute_jumps(), gtopology::edge_localization(), gedge(), and give_mult_code_numbers().
long next |
next edge
Definition at line 82 of file gedge.h.
Referenced by gtopology::edge_series(), gedge(), gtopology::prev_next_edges(), and print().
long* nlist |
list of nodes on edge
Definition at line 92 of file gedge.h.
Referenced by edget::compute_jump(), edget::compute_node_jump(), gtopology::create_ltg(), gtopology::edge_allelem(), gtopology::edge_series(), gtopology::edgenode_sorting(), gtopology::edges(), gtopology::edges_mat(), gedge(), give_first_node_numbers(), give_last_node_numbers(), edgem::nodal_displacements(), gtopology::prev_next_edges(), print(), and ~gedge().
long nm |
node multiplicity
Definition at line 90 of file gedge.h.
Referenced by gtopology::edges(), gtopology::edges_mat(), gedge(), and print().
long nn |
the number of nodes on edge
Definition at line 69 of file gedge.h.
Referenced by gtopology::edges(), gtopology::edges_mat(), gedge(), gtopology::give_nnedge(), and print().
double* nv |
normal vector
Definition at line 103 of file gedge.h.
Referenced by check_normal(), gedge(), give_norvect(), normal_vector(), print(), and ~gedge().
long prev |
previous edge
Definition at line 80 of file gedge.h.
Referenced by gtopology::edge_series(), gedge(), gtopology::prev_next_edges(), and print().
long re |
number of reference element
Definition at line 85 of file gedge.h.
Referenced by gtopology::edge_allelem(), gtopology::edge_elem(), gedge(), and gtopology::normvectorient().
double threshold |
threshold
Definition at line 106 of file gedge.h.
Referenced by direction_vector(), gedge(), and normal_vector().