23 for (i=1; i<points[0](); i++)
centrcoord.
add(points[0][i]->give_coords());
29 for (i=0; i<points[0](); i++) {
47 if (points[0]() == 2)
lav = points[0][0]->give_coords()->dist_to(points[0][1]->give_coords());
48 else _errorr (
"Unsupported number of nodes on 1d element.");
59 for (
int i=1; i<
nv; i++)
60 lav += points[0][i-1]->give_coords()->dist_to(points[0][i]->give_coords());
99 if (
nv == 4)
normal.
beVectProduct (points[0][0]->give_coords(), points[0][2]->give_coords(), points[0][1]->give_coords(), points[0][3]->give_coords());
100 else normal.
beVectProduct (points[0][0]->give_coords(), points[0][1]->give_coords(), points[0][2]->give_coords());
115 for (
int i=3; i<
nv; i++) {
121 if (nv <= 4)
lav = 0.5 * l;
123 const PoinT **pointss =
new const PoinT*[nv+2];
125 for (
int i=0; i<
nv; i++) pointss[i] = points[0][i]->give_coords();
126 pointss[
nv ] = points[0][0]->give_coords();
127 pointss[nv+1] = points[0][1]->give_coords();
168 v1.
beP2P( points[0][0]->give_coords(), points[0][1]->give_coords() );
169 v2.
beP2P( points[0][1]->give_coords(), points[0][2]->give_coords() );
198 const PoinT *c1 = points[0][0]->give_coords();
199 const PoinT *c2 = points[0][1]->give_coords();
200 const PoinT *c3 = points[0][2]->give_coords();
201 const PoinT *c4 = points[0][3]->give_coords();
205 m(0,0) = c1->
x - c4->
x; m(0,1) = c2->
x - c4->
x; m(0,2) = c3->
x - c4->
x;
206 m(1,0) = c1->
y - c4->
y; m(1,1) = c2->
y - c4->
y; m(1,2) = c3->
y - c4->
y;
207 m(2,0) = c1->
z - c4->
z; m(2,1) = c2->
z - c4->
z; m(2,2) = c3->
z - c4->
z;
220 Dvctr x(8),y(8),z(8);
223 for (i=0; i<8; i++) {
224 x[i] = points[0][i]->give_coord(0);
225 y[i] = points[0][i]->give_coord(1);
226 z[i] = points[0][i]->give_coord(2);
const Elem3D * give_vector(void) const
virtual void initialize(void)
initiate/sets data
bool give_PDBO(ProbDescBoolOpt pdbo) const
double dist2_to(const PoinT *p) const
ComponentGeometry1Dpoly(Cell *o, double Z)
CONSTRUCTOR.
bool is_identical_to(const Elem3D *p, double zero) const
virtual void initialize(void)
initiate/sets data
virtual void initialize(void)
initiate/sets data
const LCS_beam * give_lcs_global(void) const
virtual void checkConsistency(void) const
Checks data consistency.
double give_length(void) const
double give_determinant(void) const
virtual void checkConsistency(void) const
Checks data consistency.
virtual void checkConsistency(void) const
Checks data consistency.
Local coordinate system at beam element.
const Element * give_main_masterel_uniq(void) const
main masterel is Element (not Facedge) with same dimension as face/edge
const Problem * give_Pd(void) const
*** *** *** *** CLASS ComponentGeometry 1D *** *** *** ***
void set_n2(const VectoR *src)
virtual void initialize(void)
initiate/sets data
#define _warningg2(_1, _2)
VectoR * beVectProduct(const VectoR *v1, const VectoR *v2)
vector product v1 x v2 (cross product)
ElemAttribs * give_elemAttribs(void)
const GPA< const Point > * give_points(void) const
GPA - Generic Pointer Array, template class manages 1d array of pointers to objects of type T...
#define _errorr3(_1, _2, _3)
virtual void initialize(void)
initiate/sets data
Elem3D * add(const Elem3D *p)
void set_n1(const VectoR *src)
virtual const LCS_pure * give_lcs(void)
virtual void initialize(void)
initiate/sets data
VectoR * beP2P(const PoinT *p1, const PoinT *p2)
Receiver is set to vector from p1 to p2, i.e. 'this = p2 - p1'.
Local coordinate system defined by 2 vectors.
long give_nno(void) const
void reset_nv(void)
DYNAMIC.
*** *** *** *** CLASS ComponentGeometry *** *** *** ***
ComponentGeometry2D(Cell *o, double Z)
CONSTRUCTOR.
double giveScalProduct(const Elem3D *v) const
scalar product this * e
PoinT * copy(const PoinT *p)
VectoR * copy(const VectoR *p)
double area3D_Polygon(int n, const PoinT **V, const VectoR *N)
************************** WWW.SOFTSURFER.COM ALGORITHMS ************************** Copyright 2000...
void set_n3(const VectoR *src)
void jac_3d(double &jac, Dvctr &x, Dvctr &y, Dvctr &z, double xi, double eta, double zeta)