SIFEL/MEFEL/SRC/meshtransfer.h File Reference

Go to the source code of this file.

Functions

long adjacnode (gtopology *gt, double x, double y, double z)
void allipcoord (double **ipcoord)
void findout_parentel_ip (gtopology *gt_old, gtopology *gt_new, mechmat *mm_new, mechtop *mt_new, double **ipcoord, long *parentel_ip)
void findout_parentel_nod (gtopology *gt_old, gtopology *gt_new, long *parentel_nod, long dim)
long give_nodvals_ip (long dim, long nipcomp[], double *&nodvalues)
void give_rfull (long lcid, double *rfull)
void give_valuesinpoints (gtopology *gt, long eid, long npoints, double *xx, double *yy, long nval, double *nodvalues, double **pointval, char flag)
long isnodonlhsof3pcurve (gnode &n1, gnode &n2, gnode &n3, double xx, double yy)
long isnodonlhsofline (gnode &n1, gnode &n2, double xx, double yy)
long ispointinel (gnode *nod, long *elnod, double x, double y, long ndd)
void locintpoints (gtopology *gt_old, gtopology *gt_new, mechtop *mt_new, double **ipcoord, long *passedel1, long *passedel2, long nelheap, long *elheap, long *newelheap, long *susel, long *newsusel, long *parentel)
void locnodes (gtopology *gt_old, gtopology *gt_new, long *parentel, long dim)
void newmeshread (const char *filename, long lcid)
void transfvalues_ip_direct (gtopology *gt_old, mechmat *mm_new, const double **apcoord, const long *parentel, long nipcomp[], const mechmat *mm_old, long dim)
void transfvalues_ip_indirect (gtopology *gt_old, mechmat *mm_new, double **ipcoord, long *parentel, long nipcomp[], double *nodvalue)
void transfvalues_nod (problem *po, problem *pn, long lcid, long dim, long ndofn, long *parentel, char spr)
long whereispoint (gtopology *gt, long nsusel, long *susel, long *newsusel, long *passedel, double x, double y, char flag)

Function Documentation

long adjacnode ( gtopology gt,
double  x,
double  y,
double  z 
)

Function approximates values stored on integration points (in arrays `strain` `stress` `eqother`) to nodes - for "global" mesh. Used interpolation method is 'spr_smoothing'. Values in nodes are returned by array nodvalues. 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]) Necessary precondition is Mm->ip[i].ncompstr and Mm->ip[i].ncompother are constant all over the domain !!!!

Parameters:
dim - dimension of solved problem
nipcomp - number of members (of arrays Mm->ip[].strain , Mm->ip[].stress and Mm->ip[].eqother), which are approximated; nipcomp[0] <0;Mm->ip[].ncompstr>, nipcomp[1] <0;Mm->ip[].ncompstr>, nipcomp[2] <0;Mm->ip[].ncompother> if nipcomp = -1 => all members
nodvalues - answer ; nonalocated

created 9.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function returns array of deformations in ALL nodes of problem 'p'. Deformation position in answer array is (r[node_1][x] ... r[node_nn][x] , r[node_1][y] ... r[node_nn][y])

Parameters:
lcid - id of load case
p - pointr on problem
rfull - answer - allocated 1D array, size is p->mt->nn * p->mm->ip[0].ndofn

created 9.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz function computes coordinates of all integration points in "global" mesh

Parameters:
ipcoord - empty 1D array, size is Mt->tnip x 3

created 5.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function alocates required arrays for function 'locintpoints', which finds out (for every integration point from new mesh) "parent" element (from old mesh), in which the integration point lays. Parent elements are returned in array "parentel_ip".

Parameters:
gt_old - gtopology of old mesh
gt_new - gtopology of new mesh
mm_new - mechmat of new mesh
mt_new - mechtop of new mesh
ipcoord - array of coordinates of new mesh int. points, size is mm_new->tnip x dim
parentel_ip - answer = 1D array, size is mt_new->tnip

created 3.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz For every integration point (from new mesh) function finds out "parent" element (from old mesh), in which the int. point lays. Parent elements are returned in array "parentel".

Parameters:
gt_old - gtopology of old mesh
gt_new - gtopology of new mesh
mt_new - mechtop of new mesh
ipcoord - array of coordinates of new mesh int. points, size is mm_new->tnip x dim
passedel1 - empty array, size is gt_old->ne
passedel2 - zero array, size is gt_new->ne
nelheap = 1
elheap - array of size gt_new->ne, elheap[0] = 0
newelheap - empty array, size is gt_new->ne
susel - empty array, size is gt_old->ne
newsusel - answer = 1D array, size is gt_old->ne
parentel - answer = 1D array, size is mm_new->tnip

created 3.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function runs function 'locnodes'.

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

created 6.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz 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 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 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 Function finds out, whether point (xx,yy) lays on the left hand side of 'line'. Line is defined by two nodes n1,n2.

created 3.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function finds out, whether point (xx,yy) lays on the left hand side of 'curve'. Curve is defined by three nodes n1,n2,n3.

created 3.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function transforms values from nodes of old mesh into int. points of new mesh.

Parameters:
gt_old - gtopology of old mesh
mm_new - mechmat of new mesh
ipcoord - array of coordinates of new mesh int. points, size is mm_new->tnip x dim
parentel - array of parent elements of new mesh int. points, size is mt_new->tnip
nipcomp - number of members (of arrays Mm->ip[].strain , Mm->ip[].stress and Mm->ip[].eqother), which are approximated; nipcomp[0] <0;Mm->ip[].ncompstr>, nipcomp[1] <0;Mm->ip[].ncompstr>, nipcomp[2] <0;Mm->ip[].ncompother> if nipcomp = -1 => all members
nodvalue - 1D array of nodal values of old mesh, size is gt_old->nn * nvals 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])

created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function transforms values from int. points of old mesh into int. points of new mesh.

Parameters:
gt_old - gtopology of old mesh
mm_new - mechmat of new mesh
apcoord - array of coordinates of new mesh int. points, size is mm_new->tnip x dim
parentel - array of parent elements of new mesh int. points, size is mt_new->tnip
nipcomp - number of members (of arrays Mm->ip[].strain , Mm->ip[].stress and Mm->ip[].eqother), which are approximated; nipcomp[0] <0;Mm->ip[].ncompstr>, nipcomp[1] <0;Mm->ip[].ncompstr>, nipcomp[2] <0;Mm->ip[].ncompother> if nipcomp = -1 => all members
mm_old - mechmat of old mesh
dim - dimension of solved problem

created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz Function transforms displacement from nodes of old mesh into nodes of new mesh by direct interpolation.

Parameters:
po - problem of old mesh
pn - problem of new mesh
lcid - id of load case
ndofn - number of DOFs in node
parentel - array of parent (old)elements of new mesh nodes, size is p_new->mt->nn

created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz 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

created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz 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

created 7.12.2002, Ladislav Svoboda, termit@cml.fsv.cvut.cz function finds out node(from gt), which is the closest by required point

Parameters:
x,y,z - coordinates of point

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

Definition at line 981 of file meshtransfer.cpp.

References gtopology::gnodes, gtopology::ne, gnode::x, gnode::y, and gnode::z.

Referenced by outdiagm::read().

void allipcoord ( double **  ipcoord  ) 
void findout_parentel_ip ( gtopology gt_old,
gtopology gt_new,
mechmat mm_new,
mechtop mt_new,
double **  ipcoord,
long *  parentel_ip 
)
void findout_parentel_nod ( gtopology gt_old,
gtopology gt_new,
long *  parentel_nod,
long  dim 
)
long give_nodvals_ip ( long  dim,
long  nipcomp[],
double *&  nodvalues 
)
void give_rfull ( long  lcid,
double *  rfull 
)
void give_valuesinpoints ( gtopology gt,
long  eid,
long  npoints,
double *  xx,
double *  yy,
long  nval,
double *  nodvalues,
double **  pointval,
char  flag 
)

Referenced by transfvalues_nod().

long 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().

long 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 locintpoints ( gtopology gt_old,
gtopology gt_new,
mechtop mt_new,
double **  ipcoord,
long *  passedel1,
long *  passedel2,
long  nelheap,
long *  elheap,
long *  newelheap,
long *  susel,
long *  newsusel,
long *  parentel 
)
void locnodes ( gtopology gt_old,
gtopology gt_new,
long *  parentel,
long  dim 
)
void newmeshread ( const char *  filename,
long  lcid 
)
void transfvalues_ip_direct ( gtopology gt_old,
mechmat mm_new,
const double **  apcoord,
const long *  parentel,
long  nipcomp[],
const mechmat mm_old,
long  dim 
)
void transfvalues_ip_indirect ( gtopology gt_old,
mechmat mm_new,
double **  ipcoord,
long *  parentel,
long  nipcomp[],
double *  nodvalue 
)
void transfvalues_nod ( problem po,
problem pn,
long  lcid,
long  dim,
long  ndofn,
long *  parentel,
char  spr 
)
long whereispoint ( gtopology gt,
long  nsusel,
long *  susel,
long *  newsusel,
long *  passedel,
double  x,
double  y,
char  flag 
)

Generated by  doxygen 1.6.2