SIFEL/TRFEL/SRC/adaptivityt.cpp File Reference

#include "adaptivityt.h"
#include "globalt.h"
#include "globmatt.h"
#include "elemswitcht.h"

Go to the source code of this file.

Functions

long closest_node (gtopology *gt, long dim, double x, double y, double z)
 !!!! toto narvat do gtopology pod dohledem JKTK !!!!!!!!!!!!!!!
double distance2 (double *a, double *b, long dim)
void findout_parentel_nod (gtopology *gt_old, gtopology *gt_new, long dim, long *parentel)
void give_valuesinpoints (gtopology *gt, long eid, long npoints, double *xx, double *yy, long nval, const double *nodvalues, double **pointval, bool pvmtrx)
bool isnodonlhsof3pcurve (gnode &n1, gnode &n2, gnode &n3, double xx, double yy)
bool isnodonlhsofline (gnode &n1, gnode &n2, double xx, double yy)
long ispointinel (gnode *nod, long *elnod, double x, double y, long ndd)
void transfvalues_nod (gtopology *gt_old, gtopology *gt_new, const double *r_old, double *r_new, long *parentel, long dim, long ndofn, bool spr)
long whereispoint (gtopology *gt, long nsusel, long *susel, long *newsusel, long *passedel, double x, double y, long rep)
long whereispoint_outpoint (gtopology *gt, long dim, double x, double y, double z)

Function Documentation

long closest_node ( gtopology gt,
long  dim,
double  x,
double  y,
double  z 
)

!!!! toto narvat do gtopology pod dohledem JKTK !!!!!!!!!!!!!!!

Function finds closest node to 'point'. The point is defined by coordinates x,y.

Parameters:
dim - dimension of solved problem
x,y - coordinates of the 'point'
Return values:
- number of closest node

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

Definition at line 474 of file adaptivityt.cpp.

References dist(), gnode::distance2(), gtopology::gnodes, and gtopology::nn.

Referenced by findout_parentel_nod(), and whereispoint_outpoint().

double distance2 ( double *  a,
double *  b,
long  dim 
)

Definition at line 645 of file adaptivityt.cpp.

References print_err().

Referenced by whereispoint_outpoint().

void findout_parentel_nod ( gtopology gt_old,
gtopology gt_new,
long  dim,
long *  parentel 
)

For every node (from new mesh) function finds out "parent" element (from old mesh), in which the "new" node lays.

Parameters:
gt_old - gtopology of old mesh
gt_new - gtopology of new mesh
parentel - answer = allocated array of parent elements, size is mt_new->nn

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

Definition at line 704 of file adaptivityt.cpp.

References ivector::a, imatrix::a, gtopology::adjelnod, allocm(), closest_node(), copyv(), fillv(), for(), gtopology::gelements, gtopology::gnodes, gtopology::nadjelnod, gtopology::ne, gtopology::nn, gelement::nne, nod, gelement::nodes, nullv(), whereispoint(), whereispoint_outpoint(), gnode::x, gnode::y, and gnode::z.

void give_valuesinpoints ( gtopology gt,
long  eid,
long  npoints,
double *  xx,
double *  yy,
long  nval,
const double *  nodvalues,
double **  pointval,
bool  pvmtrx 
)

Function approximates 'values' from nodes into 'points'. All the point lays in 'element', which is determined by 'gt' and 'eid'. Values in points are returned by array pointval.

Parameters:
npoints - number of points
xx - array of x-coordinates of points, size is npoints
yy - array of y-coordinates of points, size is npoints
nval - number of values
nodvalues - 1D array of values in nodes, size is nval*gt->nn, value position in array is (val[0] on nod[0] ... val[0] on nod[gt->nn] ... val[nval] on nod[0] ... val[nval] on nod[gt->nn])
pointval - answer = 2D array, size is npoints*nval
pvmtrx - true == pointval is matrix; false == pointval is vector

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

Definition at line 765 of file adaptivityt.cpp.

References vector::a, allocv(), gelement::auxinf, bf_lin_3_2d(), bf_lin_4_2d(), bf_quad_3_2d(), bf_quad_4_2d(), gtopology::gelements, gtopology::give_node_coord2d(), gtopology::give_nodes(), nc_lin_3_2d(), nc_lin_4_2d(), nc_quad_3_2d(), nc_quad_4_2d(), gtopology::nn, gelement::nne, nodes, nodval(), print_err(), and scprd().

bool isnodonlhsof3pcurve ( gnode n1,
gnode n2,
gnode n3,
double  xx,
double  yy 
)

Function finds out, whether point (xx,yy) lays on the left hand side of the curve defined by three nodes n1,n2 and n3.

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

Definition at line 515 of file adaptivityt.cpp.

References isnodonlhsofline(), gnode::x, and gnode::y.

Referenced by ispointinel().

bool isnodonlhsofline ( gnode n1,
gnode n2,
double  xx,
double  yy 
)

Function finds out, whether point (xx,yy) lays on the left hand side of the line defined by two nodes n1 and n2.

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

Definition at line 499 of file adaptivityt.cpp.

References gnode::x, and gnode::y.

Referenced by isnodonlhsof3pcurve(), and ispointinel().

long ispointinel ( gnode nod,
long *  elnod,
double  x,
double  y,
long  ndd 
)

Function finds out, whether 'node' lays in 'element'. Node is defined by its coordinates - x,y. Element is defined by its node numbers - 'elnod' and dimdegnne - 'ndd'

Parameters:
nod - array of all gnodes
elnod - array of node numbers of element
x,y - coordinates of node
ndd - nnedimdeg of element

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

Definition at line 556 of file adaptivityt.cpp.

References isnodonlhsof3pcurve(), isnodonlhsofline(), and print_err().

Referenced by whereispoint(), and whereispoint_outpoint().

void transfvalues_nod ( gtopology gt_old,
gtopology gt_new,
const double *  r_old,
double *  r_new,
long *  parentel,
long  dim,
long  ndofn,
bool  spr 
)

Function transforms values from nodes of old mesh into nodes of new mesh.

Parameters:
po - problem of old mesh
pn - problem of new mesh
lcid - id of load case
dim - dimension of solved problem
ndofn - number of DOFs in node
parentel - array of parent (old)elements of new mesh nodes, size is p_new->mt->nn
spr created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz

CHILD NODES AT OLD ELEMENTS

ALLOCATION

transformation from r_old to r_new

Definition at line 819 of file adaptivityt.cpp.

References vector::a, allocv(), destrm(), give_valuesinpoints(), gtopology::gnodes, memset(), gtopology::ne, gtopology::nn, print_err(), gnode::x, and gnode::y.

long whereispoint ( gtopology gt,
long  nsusel,
long *  susel,
long *  newsusel,
long *  passedel,
double  x,
double  y,
long  rep 
)

Function finds out element including "point". First of all, the elements in 'susel' are investigated.

Parameters:
gt - gtopology, where the element is finding out
nsusel - number suspected elements
susel - array of suspected elements, size is gt->ne
newsusel - empty array, size is gt->ne
passedel - zero !!!!! array, size is gt->ne
x,y - coordinates of point

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

point is in susel array

Definition at line 613 of file adaptivityt.cpp.

References gtopology::adjelel, gelement::auxinf, gtopology::gelements, gtopology::gnodes, ispointinel(), gtopology::nadjelel, gelement::nodes, print_err(), and whereispoint().

long whereispoint_outpoint ( gtopology gt,
long  dim,
double  x,
double  y,
double  z 
)

Function finds out element including "point" or element closest to "point" in case the point doesnot lay in domain.

Parameters:
dim - dimension of solved problem
gt - gtopology, where the element is finding out
x,y - coordinates of point

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

Definition at line 664 of file adaptivityt.cpp.

References gtopology::adjelnod, gelement::auxinf, gelement::centroid(), closest_node(), dist(), distance2(), gtopology::gelements, gtopology::gnodes, ispointinel(), gtopology::nadjelnod, and gelement::nodes.

Referenced by findout_parentel_nod().


Generated by  doxygen 1.6.2