78LatticeBeam3dBoundary :: computeStiffnessMatrix(
FloatMatrix &answer, MatResponseMode rMode,
86 bool matStiffSymmFlag = this->
giveCrossSection()->isCharacteristicMtrxSymmetric(rMode);
91 LatticeBeam3d :: computeStiffnessMatrix(answerTemp, rMode, tStep);
96 for (
int m = 1; m <= 12; m++ ) {
97 for (
int k = 1; k <= 12; k++ ) {
98 answer.
at(m, k) = answerTemp.at(m, k);
102 if ( matStiffSymmFlag ) {
113 for (
int m = 1; m <= 12; m++ ) {
114 for (
int k = 1; k <= 12; k++ ) {
115 answerTemp.at(m, k) = answer.
at(m, k);
119 IntArray projectionComponentNodeOne(3);
120 projectionComponentNodeOne.
zero();
125 IntArray projectionComponentNodeTwo(3);
126 projectionComponentNodeTwo.
zero();
131 for (
int k = 1; k <= 12; k++ ) {
134 t.at(1, 13) = projectionComponentNodeOne.
at(1);
135 t.at(2, 14) = projectionComponentNodeOne.
at(2);
136 t.at(3, 15) = projectionComponentNodeOne.
at(3);
139 t.at(2, 16) = projectionComponentNodeOne.
at(3);
140 t.at(1, 17) = projectionComponentNodeOne.
at(3);
141 t.at(1, 18) = projectionComponentNodeOne.
at(2);
144 t.at(7, 13) = projectionComponentNodeTwo.
at(1);
145 t.at(8, 14) = projectionComponentNodeTwo.
at(2);
146 t.at(9, 15) = projectionComponentNodeTwo.
at(3);
148 t.at(8, 16) = projectionComponentNodeTwo.
at(3);
149 t.at(7, 17) = projectionComponentNodeTwo.
at(3);
150 t.at(7, 18) = projectionComponentNodeTwo.
at(2);
362LatticeBeam3dBoundary :: computeGeometryProperties()
373 specimenDimension.
at(1) = this->
giveNode(3)->giveCoordinate(1);
374 specimenDimension.
at(2) = this->
giveNode(3)->giveCoordinate(2);
375 specimenDimension.
at(3) = this->
giveNode(3)->giveCoordinate(3);
377 IntArray projectionComponentNodeOne(3);
378 projectionComponentNodeOne.
zero();
383 IntArray projectionComponentNodeTwo(3);
384 projectionComponentNodeTwo.
zero();
389 for (
int i = 0; i < 3; i++ ) {
390 coordsA.
at(i + 1) = nodeA->
giveCoordinate(i + 1) + projectionComponentNodeOne.
at(i + 1) * specimenDimension.
at(i + 1);
391 coordsB.
at(i + 1) = nodeB->
giveCoordinate(i + 1) + projectionComponentNodeTwo.
at(i + 1) * specimenDimension.
at(i + 1);
400 for (
int i = 0; i < 3; i++ ) {
401 this->
normal.at(i + 1) = coordsB.
at(i + 1) - coordsA.
at(i + 1);
406 for (
int i = 0; i < 3; i++ ) {
412 for (
int i = 0; i < 3; i++ ) {
413 this->
midPoint.at(i + 1) = 0.5 * ( coordsB.
at(i + 1) + coordsA.
at(i + 1) );
495 if ( !
gc.testElementGraphicActivity(
this) ) {
500 EASValsSetColor(
gc.getActiveCrackColor() );
505 specimenDimension.
at(1) = this->
giveNode(3)->giveCoordinate(1);
506 specimenDimension.
at(2) = this->
giveNode(3)->giveCoordinate(2);
507 specimenDimension.
at(3) = this->
giveNode(3)->giveCoordinate(3);
510 IntArray projectionComponentNodeOne(3);
511 projectionComponentNodeOne.
zero();
516 IntArray projectionComponentNodeTwo(3);
517 projectionComponentNodeTwo.
zero();
523 p [ 0 ].x = ( FPNum ) this->
giveNode(1)->giveCoordinate(1) + projectionComponentNodeOne.
at(1) * specimenDimension.
at(1);
524 p [ 0 ].y = ( FPNum ) this->
giveNode(1)->giveCoordinate(2) + projectionComponentNodeOne.
at(2) * specimenDimension.
at(2);
525 p [ 0 ].z = ( FPNum ) this->
giveNode(1)->giveCoordinate(3) + projectionComponentNodeOne.
at(3) * specimenDimension.
at(3);
526 p [ 1 ].x = ( FPNum ) this->
giveNode(2)->giveCoordinate(1) + projectionComponentNodeTwo.
at(1) * specimenDimension.
at(1);
527 p [ 1 ].y = ( FPNum ) this->
giveNode(2)->giveCoordinate(2) + projectionComponentNodeTwo.
at(2) * specimenDimension.
at(2);
528 p [ 1 ].z = ( FPNum ) this->
giveNode(2)->giveCoordinate(3) + projectionComponentNodeTwo.
at(3) * specimenDimension.
at(3);
530 go = CreateLine3D(p);
531 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
532 EGAttachObject(go, ( EObjectP )
this);
533 EMAddGraphicsToModel(ESIModel(), go);
541 if ( !
gc.testElementGraphicActivity(
this) ) {
545 double defScale =
gc.getDefScale();
550 EASValsSetColor(
gc.getDeformedElementColor() );
554 specimenDimension.
at(1) = this->
giveNode(3)->giveCoordinate(1);
555 specimenDimension.
at(2) = this->
giveNode(3)->giveCoordinate(2);
556 specimenDimension.
at(3) = this->
giveNode(3)->giveCoordinate(3);
559 dispOne.
at(1) = this->
giveNode(1)->giveDofWithID(D_u)->giveUnknown(VM_Total, tStep);
560 dispOne.
at(2) = this->
giveNode(1)->giveDofWithID(D_v)->giveUnknown(VM_Total, tStep);
561 dispOne.
at(3) = this->
giveNode(1)->giveDofWithID(D_w)->giveUnknown(VM_Total, tStep);
562 dispOne.
at(4) = this->
giveNode(1)->giveDofWithID(R_u)->giveUnknown(VM_Total, tStep);
563 dispOne.
at(5) = this->
giveNode(1)->giveDofWithID(R_v)->giveUnknown(VM_Total, tStep);
564 dispOne.
at(6) = this->
giveNode(1)->giveDofWithID(R_w)->giveUnknown(VM_Total, tStep);
567 dispTwo.
at(1) = this->
giveNode(2)->giveDofWithID(D_u)->giveUnknown(VM_Total, tStep);
568 dispTwo.
at(2) = this->
giveNode(2)->giveDofWithID(D_v)->giveUnknown(VM_Total, tStep);
569 dispTwo.
at(3) = this->
giveNode(2)->giveDofWithID(D_w)->giveUnknown(VM_Total, tStep);
570 dispTwo.
at(4) = this->
giveNode(2)->giveDofWithID(R_u)->giveUnknown(VM_Total, tStep);
571 dispTwo.
at(5) = this->
giveNode(2)->giveDofWithID(R_v)->giveUnknown(VM_Total, tStep);
572 dispTwo.
at(6) = this->
giveNode(2)->giveDofWithID(R_w)->giveUnknown(VM_Total, tStep);
575 dispThree.
at(1) = this->
giveNode(3)->giveDofWithID(D_u)->giveUnknown(VM_Total, tStep);
576 dispThree.
at(2) = this->
giveNode(3)->giveDofWithID(D_v)->giveUnknown(VM_Total, tStep);
577 dispThree.
at(3) = this->
giveNode(3)->giveDofWithID(D_w)->giveUnknown(VM_Total, tStep);
578 dispThree.
at(4) = this->
giveNode(3)->giveDofWithID(R_u)->giveUnknown(VM_Total, tStep);
579 dispThree.
at(5) = this->
giveNode(3)->giveDofWithID(R_v)->giveUnknown(VM_Total, tStep);
580 dispThree.
at(6) = this->
giveNode(3)->giveDofWithID(R_w)->giveUnknown(VM_Total, tStep);
582 IntArray projectionComponentNodeOne(3);
583 projectionComponentNodeOne.
zero();
588 IntArray projectionComponentNodeTwo(3);
589 projectionComponentNodeTwo.
zero();
596 dispOne.
at(1) = dispOne.
at(1) + projectionComponentNodeOne.
at(1) * dispThree.
at(1) + projectionComponentNodeOne.
at(2) * dispThree.
at(4) + projectionComponentNodeOne.
at(3) * dispThree.
at(5);
597 dispOne.
at(2) = dispOne.
at(2) + projectionComponentNodeOne.
at(2) * dispThree.
at(2) + projectionComponentNodeOne.
at(3) * dispThree.
at(6);
598 dispOne.
at(3) = dispOne.
at(3) + projectionComponentNodeOne.
at(3) * dispThree.
at(3);
601 dispTwo.
at(1) = dispTwo.
at(1) + projectionComponentNodeTwo.
at(1) * dispThree.
at(1) + projectionComponentNodeTwo.
at(2) * dispThree.
at(4) + projectionComponentNodeTwo.
at(3) * dispThree.
at(5);
602 dispTwo.
at(2) = dispTwo.
at(2) + projectionComponentNodeTwo.
at(2) * dispThree.
at(2) + projectionComponentNodeTwo.
at(3) * dispThree.
at(6);
603 dispTwo.
at(3) = dispTwo.
at(3) + projectionComponentNodeTwo.
at(3) * dispThree.
at(3);
605 double x1, y1, z1, x2, y2, z2;
606 x1 = this->
giveNode(1)->giveCoordinate(1) + projectionComponentNodeOne.
at(1) * specimenDimension.
at(1);
607 y1 = this->
giveNode(1)->giveCoordinate(2) + projectionComponentNodeOne.
at(2) * specimenDimension.
at(2);
608 z1 = this->
giveNode(1)->giveCoordinate(3) + projectionComponentNodeOne.
at(3) * specimenDimension.
at(3);
610 x2 = this->
giveNode(2)->giveCoordinate(1) + projectionComponentNodeTwo.
at(1) * specimenDimension.
at(1);
611 y2 = this->
giveNode(2)->giveCoordinate(2) + projectionComponentNodeTwo.
at(2) * specimenDimension.
at(2);
612 z2 = this->
giveNode(2)->giveCoordinate(3) + projectionComponentNodeTwo.
at(3) * specimenDimension.
at(3);
614 p [ 0 ].x = ( FPNum ) x1 + defScale * dispOne.
at(1);
615 p [ 0 ].y = ( FPNum ) y1 + defScale * dispOne.
at(2);
616 p [ 0 ].z = ( FPNum ) z1 + defScale * dispOne.
at(3);
618 p [ 1 ].x = ( FPNum ) x2 + defScale * dispTwo.
at(1);
619 p [ 1 ].y = ( FPNum ) y2 + defScale * dispTwo.
at(2);
620 p [ 1 ].z = ( FPNum ) z2 + defScale * dispTwo.
at(3);
622 go = CreateLine3D(p);
623 EGWithMaskChangeAttributes(WIDTH_MASK | COLOR_MASK | LAYER_MASK, go);
624 EMAddGraphicsToModel(ESIModel(), go);
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
#define OOFEG_DEFORMED_GEOMETRY_LAYER
#define OOFEG_DEFORMED_GEOMETRY_WIDTH
#define OOFEG_RAW_GEOMETRY_WIDTH
#define OOFEG_RAW_GEOMETRY_LAYER