SIFEL/MEFEL/SRC/meshtransfer.cpp File Reference

#include "meshtransfer.h"
#include "global.h"
#include "globmat.h"
#include "intpoints.h"
#include "loadcase.h"
#include "element.h"
#include "plelemlt.h"
#include "plelemqt.h"
#include "plelemlq.h"
#include "plelemqq.h"
#include "nssolver.h"
#include "stochdriver.h"
#include "mefelinit.h"
#include "gtopology.h"
#include "gelement.h"
#include "gnode.h"
#include "gmatrix.h"
#include "mathem.h"
#include "problem.h"
#include <time.h>
#include <math.h>
#include <stdlib.h>

Go to the source code of this file.

Functions

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

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


Generated by  doxygen 1.6.2