28 if (pure) fprintf (stream,
"%s",
linerec);
33 if (str[0] ==
'x') str++;
34 else _errorr2 (
"There is no \"x\" in string \"%s\"", str);
35 fprintf (stream,
"%ld%s", this->
ID + 1, str);
56 else _errorr2 (
"Unsupported type of problem analysis \"%s\"", W);
82 else _errorr2 (
"Unsupported key word in problem analysis line adaptivity \"%s\"", W);
125 fscanf (stream,
"%d", &
gravity);
138 fscanf (stream,
"%lf", &
timef);
139 fscanf (stream,
"%lf", &auxd);
140 fscanf (stream,
"%ld", &auxl);
if (auxl)
errol;
141 fscanf (stream,
"%lf", &auxd);
142 fscanf (stream,
"%ld %ld", &auxl, &auxl);
143 fscanf (stream,
"%ld %ld", &auxl, &auxl);
195 fprintf (stream,
"%d\n",
gravity);
198 if (
adpa) fprintf (stream,
"%d %g %g %g\n",
204 else fprintf (stream,
"%d ", 0);
225 else if (strcmp(W,
"3Dcs" ) == 0)
type =
CST_3d;
226 else if (strcmp(W,
"2Dcs" ) == 0)
type =
CST_2d;
234 else _errorr2 (
"Unsupported name of cross section \"%s\"", W);
240 if (strcmp(W,
"SimpleCS") == 0) {
262 else if (strcmp(W,
"LayeredCS") == 0) {
268 else if (strcmp(W,
"LayerMaterials") == 0) {
272 for (
int i=0; i<
nlayers; i++) {
275 if (
mats[i] == NULL)
_errorr2(
"There is no material with ID = %d", auxi+1);
307 if (
area <= 0.0)
_errorr (
"Wrong crosssection attributs - area");
320 else if (strcmp(W,
"LCS") == 0) {
325 else _errorr2 (
"Unsupported key word in cross-section line \"%s\"", W);
373 Iy += 1.0 / 12.0 * w * h*h*h;
374 Iz += 1.0 / 12.0 * h * w*w*w;
398 case CST_3d: fprintf (stream,
"SimpleCS %ld", this->
ID+1);
break;
399 case CST_2d: fprintf (stream,
"SimpleCS %ld thick %.6g", this->
ID+1,
thickness);
break;
400 case CST_Truss: fprintf (stream,
"SimpleCS %ld area %.6g", this->
ID+1,
area);
break;
402 fprintf (stream,
"SimpleCS %ld", this->
ID+1);
403 fprintf (stream,
" area %.6g Iy %.6g Iz %.6g Ik %.6g",
area,
Iy,
Iz,
Ik);
404 fprintf (stream,
" beamShearCoeff %.6g thick %.6g width %.6g",
bsc,
width,
height);
406 default:
_errorr (
"Unsupported type of cross section ");
410 fprintf (stream,
"%ld", this->
sifid + 1);
414 default:
_errorr (
"Unsupported type of cross section ");
418 fprintf (stream,
"\n");
420 case CST_2d: fprintf (stream,
"SECTYPE, %ld, SHELL\nSECDATA, %.6g\n\n", this->
ID+1,
thickness);
break;
422 fprintf (stream,
"SECTYPE, %ld, BEAM", this->
ID+1);
428 default:
_errorr (
"Unsupported loctype of beam cross section");
431 default:
_errorr (
"Unsupported type of cross section ");
436 fprintf (stream,
"\n");
453 else _errorr2 (
"Unsupported name of material \"%s\"", W);
469 else scanned =
false;
488 default: scanned =
false;
501 else _errorr2 (
"Unsupported key word in material line \"%s\"", W);
520 fprintf (stream,
"j2mat %ld", this->
ID + 1);
522 fprintf (stream,
" d %.3g",
density);
523 if (
E>1000) fprintf (stream,
" E %.1lf",
E);
524 else fprintf (stream,
" E %e",
E);
525 fprintf (stream,
" n %.2lf",
ny);
526 fprintf (stream,
" tAlpha %lf",
tAlpha);
527 fprintf (stream,
" Ry %g",
Ry);
528 if (
IHM != 0.0) fprintf (stream,
" IHM %g",
IHM);
531 fprintf (stream,
"IsoLE %ld", this->
ID + 1);
532 fprintf (stream,
" d %.3g",
density);
533 if (
E>1000) fprintf (stream,
" E %.1lf",
E);
534 else fprintf (stream,
" E %e",
E);
535 fprintf (stream,
" n %.2lf",
ny);
536 fprintf (stream,
" tAlpha %lf",
tAlpha);
539 _errorr(
"rigid material is not implemented");
541 default:
_errorr (
"Unsupported type of material ");
545 fprintf (stream,
"%ld", this->
sifid + 1);
549 case MAT_IsoLE: fprintf (stream,
" %g %g",
E,
ny);
break;
551 default:
_errorr (
"Unsupported type of material ");
555 fprintf (stream,
"\n");
558 ; fprintf (stream,
"MP, EX, %ld, %g\n", this->
ID + 1,
E);
559 ; fprintf (stream,
"MP, PRXY, %ld, %g\n", this->
ID + 1,
ny);
560 if (
density > 0.0) fprintf (stream,
"MP, DENS, %ld, %g\n", this->
ID + 1,
density);
562 default:
_errorr (
"Unsupported type of material ");
567 fprintf (stream,
"\n");
581 else if (strcmp(W,
"NodalLoad") == 0)
type =
BC_NL;
582 else if (strcmp(W,
"ConstantEdgeLoad") == 0)
type =
BC_CEL;
583 else if (strcmp(W,
"ConstantSurfaceLoad") == 0)
type =
BC_CFL;
584 else if (strcmp(W,
"ConstantBodyLoad") == 0)
type =
BC_CBL;
585 else if (strcmp(W,
"DeadWeight") == 0)
type =
BC_DW;
586 else if (strcmp(W,
"PrescribedValue") == 0)
type =
BC_PV;
587 else _errorr2 (
"Unsupported name of boundary condition \"%s\"", W);
600 else scanned =
false;
614 else if (strcmp(W,
"components") == 0) {
622 else if (strcmp(W,
"ltf") == 0) {
634 for (
int i=0; i<
ncomp; i++)
659 _errorr2(
"Boundary condition %ld: number of components doesnot correspond with dpn",
ID+1);
696 if ( !
ncomp == 1 )
return false;
710 case BC_PV: fprintf (stream,
"BoundaryCondition %ld loadTimeFunction %ld", this->
ID + 1,
ltf); fprintf (stream,
" prescribedvalue %g",
components[0]);
break;
712 case BC_CEL: fprintf (stream,
"ConstantEdgeLoad %ld loadTimeFunction %ld", this->
ID + 1,
ltf); fprintf (stream,
" loadType 3 ndofs %d", this->
ncomp); this->
print_components_oo(stream);
break;
713 case BC_CFL: fprintf (stream,
"ConstantSurfaceLoad %ld loadTimeFunction %ld", this->
ID + 1,
ltf); fprintf (stream,
" loadType 3 ndofs %d", this->
ncomp); this->
print_components_oo(stream);
break;
714 case BC_DW: fprintf (stream,
"DeadWeight %ld loadTimeFunction %ld", this->
ID + 1,
ltf); fprintf (stream,
" valtype 2"); this->
print_components_oo(stream);
break;
715 default:
_errorr2 (
"Unsupported type of bc \"%d\"",
type);
717 fprintf (stream,
"\n");
722 for (
int i=0; i<
ncomp; i++)
725 fprintf (stream,
"\n");
731 fprintf (stream,
" components %d", this->
ncomp);
732 for (
int i=0; i<this->
ncomp; i++)
737 for (
int i=0; i<this->
ncomp; i++)
764 if (strcmp(WORD,
"nodes" ) == 0)
node =
true;
765 else if (strcmp(WORD,
"elements") == 0)
node =
false;
766 else _errorr2 (
"Unknown type of fixed entity \"%s\". Only \"nodes\" and \"elements\" supported.", WORD);
770 else _errorr2 (
"Unknown type of assignment of BC \"%s\"", WORD);
781 if (gel == NULL)
errol;
784 else _errorr (
"Unsupported type of assigment");
799 case classABC_NLoad:
if (bct !=
BC_NL)
_errorr2 (
"In block ASSIGN_NODAL_LOAD assigned to %d: assigned boundary condition is not of type NodalLoad",
ID);
break;
800 case classABC_CELoad:
if (bct !=
BC_CEL)
_errorr2 (
"In block ASSIGN_CONST_EDGE_LOAD assigned to %d: assigned boundary condition is not of type Constant Edge Load",
ID);
break;
801 case classABC_CFLoad:
if (bct !=
BC_CFL)
_errorr2 (
"In block ASSIGN_CONST_FACE_LOAD assigned to %d: assigned boundary condition is not of type Constant Face Load",
ID);
break;
802 case classABC_CBLoad:
if (bct !=
BC_CBL && bct !=
BC_DW)
_errorr2 (
"In block ASSIGN_CONST_BODY_LOAD assigned to %d: assigned body condition is not of type Constant Body Load",
ID);
break;
812 else _errorr2 (
"Unknown type of assignment of BC \"%s\"", WORD);
835 for (i=0; i<
ncn; ) { coords.
x =
fcn[i++]; coords.
y =
fcn[i++]; coords.
z =
fcn[i++];
836 ((
Geometry*)
Geom)->assign_NodeLoad_by_point_coords (
bc, &coords); } }
837 else _errorr (
"Unsupported type of assigment");
854 else _errorr (
"Unsupported type of assigment");
872 else _errorr (
"Unsupported type of assigment");
885 else _errorr (
"Unsupported type of assigment");
921 for (
long i=0; i<
loads(); i++) {
936 for (
long i=0; i<
loads(); i++) {
971 cs = NULL;
mat = NULL;
1004 if (samegeom ==
's')
errol;
1006 else if (samegeom ==
'd')
1010 else if (samegeom ==
'm')
1040 else if (
STRCMP(WORD,
"refNode" ) == 0) {
1044 else if (
STRCMP(WORD,
"bodyLoads") == 0) {
1050 else if (
STRCMP(WORD,
"boundaryLoads") == 0) {
1051 if (
EAL !=
EAL_direct)
_errorr(
"Non direct boundaryLoads forbidden, in ASSIGN_ATTRIBUTES_TO_ELEMENT_PROP");
1058 else if (
STRCMP(WORD,
"symStiffMtrxOfMat") == 0) {
1063 else if (
STRCMP(WORD,
"dofsToCondense") == 0) {
1064 int ndofs, nno, n, i, val, nodid;
1073 for (i=0; i<n; i++) {
1078 conDOFs[0][nodid]->set_att(val, 1);
1088 if (
STRCMP(WORD,
"NIP") == 0) {
1094 _errorr2 (
"Unknown OOFEM element key word %s", WORD);
1102 else _errorr2 (
"Unknown MIDAS element key word %s", WORD);
1121 SP_scan_number (str, auxi);
if (auxi != 1)
_errorr(
"more then 1 material per element in SIFEL input file");
1178 if (this->
give_cs() == NULL) {
1199 if (ok ==
false)
_errorr2(
"There is no crossection at element %ld or at its nodes",
owner()->
give_ID()+1);
1208 switch (this->
give_cs()->give_type()) {
1220 default:
_errorr2(
"Unknown cross-section type %d", this->
give_cs()->give_type());
1226 for (i=0; i<
loads(); i++) {
1227 if (loads[i]->give_loctype() !=
BC_CBL && loads[i]->give_loctype() !=
BC_DW)
errol;
1229 loads[i]->check_dpn(this->
give_dpn());
1239 if (
prop != slv->
prop )
_errorr (
"Duplicity slave and master differ in ...");
1241 if (
EAL != slv->
EAL )
_errorr (
"Duplicity slave and master differ in ...");
1243 if (
Patt != slv->
Patt )
_errorr (
"Duplicity slave and master differ in ...");
1244 if (
Gatt != slv->
Gatt )
_errorr (
"Duplicity slave and master differ in ...");
1245 if (
Datt != slv->
Datt )
_errorr (
"Duplicity slave and master differ in ...");
1247 if (
dpn != slv->
dpn )
_errorr (
"Duplicity slave and master differ in ...");
1248 if (
sst != slv->
sst )
_errorr (
"Duplicity slave and master differ in ...");
1253 if (
cs != slv->
cs )
_errorr (
"Duplicity slave and master differ in ...");
1254 if (
mat != slv->
mat )
_errorr (
"Duplicity slave and master differ in ...");
1255 if (
lcs != slv->
lcs )
_errorr (
"Duplicity slave and master differ in ...");
1330 conDOFs[0][point]->set_full_hinge(
false);
1341 conDOFs->first()->is_full_hinge() &&
conDOFs->last()->is_full_hinge())
1376 if (
loads() == 0)
return;
1381 loads[0]->print_components (stream);
1382 fprintf (stream,
"\n");
1389 for (i=0; i<(*edges)(); i++) nbc += (*edges)[i]->give_cloads(
owner());
1395 fprintf (stream,
"%ld ????????????????????????\n",
owner()->
give_ID()+1);
1397 for (i=0; i<(*edges)(); i++) {
1403 fprintf (stream,
" 1");
1404 (*loades)[0]->print_components(stream);
1405 fprintf (stream,
"\n");
1408 fprintf (stream,
" 0\n");
1416 for (i=0; i<(*faces)(); i++) nbc += (*faces)[i]->give_cloads(
owner());
1422 fprintf (stream,
"%ld ????????????????????????\n",
owner()->
give_ID()+1);
1424 for (i=0; i<(*faces)(); i++) {
1430 fprintf (stream,
" 1");
1431 (*loades)[0]->print_components(stream);
1432 fprintf (stream,
"\n");
1435 fprintf (stream,
" 0\n");
1512 for (i=0; i<masterconDOFs[0](); i++) {
1513 if (masterconDOFs[0][i] == NULL)
continue;
1550 fprintf (stream,
" refNode");
1554 else fprintf (stream,
" 0");
1563 const Material *m = this->
give_mat();
if (m) fprintf (stream,
" mat %ld", m->
give_ID()+1);
else fprintf (stream,
" mat 1");
1577 fprintf (stream,
" bodyLoads %ld",
loads());
1578 for (
long i=0; i<
loads(); i++) fprintf (stream,
" %ld", loads[i]->
give_ID()+1);
1587 for (i=0; i<(*edges)(); i++) nedl += (*edges)[i]->give_cloads(
owner());
1588 for (i=0; i<(*faces)(); i++) nfal += (*faces)[i]->give_cloads(
owner());
1594 fprintf (stream,
" boundaryLoads %ld", 2 * (nedl + nfal));
1597 for (i=0; i<(*edges)(); i++) {
1598 loades = (*edges)[i]->give_loads(
owner());
1600 for (j=0; j<(*loades)(); j++)
1604 for (i=0; i<(*faces)(); i++) {
1605 loades = (*faces)[i]->give_loads(
owner());
1607 for (j=0; j<(*loades)(); j++)
1619 fprintf (stream,
" 0");
1626 fprintf (stream,
" %d", csid);
1665 _errorr(
"attribute at virtual element");
1749 loads.resize_zero();
1768 if (strcmp(WORD,
"bc") == 0) {
1772 else if (strcmp(WORD,
"DofIDMask") == 0) {
1775 else if (strcmp(WORD,
"load") == 0) {
1780 else if (strcmp(WORD,
"ndofs") == 0) {
1784 else if (strcmp(WORD,
"lcs") == 0) {
1791 _errorr3 (
"Unknown OOFEM node key word \"%s\", att id = %d", WORD,
prop);
1842 for (
long i=0; i<
loads(); i++)
1843 if (loads[i]->give_type() ==
BC_NL)
1882 if (ndofs != 6) answer->
zero();
1884 while (ndofs--) (*answer)[mask[ndofs]-1] = (*values)[ndofs];
1899 if (!
loads.is_identical_with(slave->
loads))
_errorr (
"node attributes are not equal - in bc attribute");
1924 if (!
dofbc)
return false;
1946 fprintf (stream,
"\n");
1949 const int* att = dofat->
give_att ();
1958 fprintf (stream,
"\n");
1974 if (
loads() == 0)
return;
1977 fprintf (stream,
" load %ld",
loads());
1978 for (
int i=0; i<
loads(); i++)
1979 fprintf (stream,
" %ld", loads[i]->
give_ID()+1);
1986 loads[0]->print_components(stream);
1987 fprintf (stream,
"\n");
1996 for (
int i=0; i<ndofs; i++) {
1997 comp =
loads[0]->give_component(mask[i]-1);
2002 fprintf (stream,
"\n");
2019 else lcsl = ((
Node*)
owner())->give_mdl_lcs();
2021 fprintf (stream,
" lcs 6");
2022 fprintf (stream,
" %lf %lf %lf", lcsl->
n1()->
x, lcsl->
n1()->
y, lcsl->
n1()->
z);
2023 fprintf (stream,
" %lf %lf %lf", lcsl->
n2()->
x, lcsl->
n2()->
y, lcsl->
n2()->
z);
2040 fprintf (stream,
" %ld", locs->
give_sifid()+1);
2042 else fprintf (stream,
" 0");
2074 if (strcmp(WORD,
"mstrprop") == 0)
2076 else if (strcmp(WORD,
"master") == 0)
2078 else if (strcmp(WORD,
"dofType") == 0) {
2083 else if (strcmp(WORD,
"masterMask") == 0) {
2090 _errorr3 (
"Unknown OOFEM RANode key word \"%s\", att id = %d", WORD,
prop);
2105 long nn = (*nodes)();
2111 for (i=0; i<nn; i++) {
2112 if ((*nodes)[i]->has_mproperty(
AUX_msprop)) {
2116 if ((*nodes)[i]->has_mproperty(
prop))
2119 if (
master == NULL && propex)
_errorr2 (
"Rigid arm node master with property was not found, property : %d",
AUX_msprop);
2176 if (nmaster == NULL)
errol;
2178 fprintf (stream,
" master %ld", nmaster->
give_lid_id (did)+1);
2184 _errorr(
"RAN for SIFEL is not implemented");
2218 delete nc;
MC = NULL;
2227 if (strcmp(WORD,
"type") == 0) {
2240 else if (strcmp(WORD,
"mstrprops") == 0) {
2246 else if (strcmp(WORD,
"masters") == 0) {
2252 else if (strcmp(WORD,
"weights") == 0) {
2259 else if (strcmp(WORD,
"dofType") == 0) {
2263 else if (strcmp(WORD,
"masterMask") == 0) {
2273 _errorr3 (
"Unknown OOFEM HNode key word \"%s\", att id = %d", WORD,
prop);
2313 for (e=0; e<
cm; e++) {
2333 long nn = (*nodes)();
2337 const Node **auxMstrs =
new const Node*[nn];
2338 double *auxCntrb =
new double[nn];
2341 for (i=0; i<nn; i++)
if ((*nodes)[i]->has_mproperty(
prop))
break;
2342 if (i==nn)
_errorr2 (
"Hanging node with property %d was not found",
prop);
2345 for (i=0; i<
cm; i++)
2346 for (j=0; j<nn; j++)
2349 auxCntrb[auxCm++] =
contrib[i];
2352 if (!auxCm)
_errorr2 (
"Hanging node with property %d has no master node",
prop);
2358 for (i=0; i<
cm; i++) {
2373 for (
long i=0; i<
cm; i++)
2413 for (
long i=0; i<
cm; i++) sum +=
contrib[i];
2416 _warningg3 (
"checkingConsistency: suma of coefficients of master contributions(%f) != 1.0, property %ld", sum,
prop);
2430 for (
int i=0; i<
cm; i++) {
2461 for (i=0; i<
cm; i++)
masters[i] = mns[i];
2470 for (
long i=0; i<
cm; i++)
2478 for (
long i=0; i<
cm; i++)
2479 if (
masters[i]->give_lid(did) == -1)
2480 _errorr2 (
"Hanging node and its master are not on same domain, global node number: %d", this->
prop+1);
2495 for (i=0; i<
cm; i++)
2496 if (!
masters[i]->is_shared()) {
2503 long ned = superelem[0]();
2504 long *superdom =
new long[ned];
2506 for (i=0; i<ned; i++)
2507 superdom[i] = ((
FElement*)superelem[0][i])->give_domain();
2510 ((
Node*)
owner())->initialize_parallel (ned, superdom);
2519 fprintf (stream,
" hn %3ld dimM %ld order %ld", hid+1,
dimMC,
ordMC);
2522 fprintf (stream,
" coords %12.5f%12.5f%12.5f MNs ", coo->
x, coo->
y, coo->
z);
2524 for (
long i=0; i<
cm; i++)
2527 if (
dimMC > 0) fprintf (stream,
" ksi %5.2f",
nc->
x);
2528 if (
dimMC > 1) fprintf (stream,
" eta %5.2f",
nc->
y);
2529 if (
dimMC > 2) fprintf (stream,
" dzeta %5.2f",
nc->
z);
2549 bool general = (
type==1) ?
true :
false;
2552 fprintf (stream,
" type %ld", general ? 0 : 100*
cm + 10*
ordMC +
dimMC);
2554 fprintf (stream,
" dofType %d",
give_nDOFs());
2557 fprintf (stream,
" masters %ld",
cm);
2558 for (e=0; e<
cm; e++) {
2562 fprintf (stream,
" %ld",
masters[i]->give_lid_id(did)+1);
2567 fprintf (stream,
" weights %ld", cm);
2568 for (i=0; i<
cm; i++) fprintf (stream,
" %.8e",
contrib[i]);
2572 ; fprintf (stream,
" ksi %.9g", this->
nc->
x);
2573 if (this->
dimMC > 1) fprintf (stream,
" eta %.9g", this->
nc->
y);
2574 if (this->
dimMC > 2) fprintf (stream,
" dzeta %.9g",this->
nc->
z);
2578 if (
type!=2)
_errorr(
"HN at finite element is supported only");
2581 fprintf (stream,
" -%ld",
cm);
2582 for (e=0; e<
cm; e++) {
2585 fprintf (stream,
" %ld",
masters[i]->give_lid_id(did)+1);
2589 fprintf (stream,
" %g %g %g", this->
nc->
x, this->nc->y, this->nc->z);
2595 fprintf (stream,
" 0 0");
void shaker(long &n, long *a)
zlikviduje vicenasobne cifry pro long in <0;..>
virtual void checkConsistency(void) const
Checks data consistency.
void setup_full_alloc_DOFvals(Dvctr *answer, const Dvctr *values) const
DOFsPerNode DOFsPerNode_s2e(const char *val)
AdaptivityParameters * adpa
FiniteElementType FET_s2e(const char *str)
string to FET
void SP_unscan_word(const char *&src, const char *w)
*** *** *** SCANNING *** *** *** unscan word == shift pointer back over word
void set_load(int i, char flag='\0', int indx=-1)
LCS_pure * lcs
local coordinate systen at node
int BC_give_att_SIFEL_NODEBC_reverted(int i) const
PAType PAType_i2e_SIFEL(int val)
void set_cs(int i)
void set_NIP (int val) { NIP = val; }
void set_ndofsatt(int n, int *val)
bool give_PDBO(ProbDescBoolOpt pdbo) const
void checkEqualityWith(const PointAttribs *slave) const
const GPA< PointDOFsCondense > * give_conDOFs(void) const
Elem3D * round2abszero(double zr)
virtual void finitialize(void)
finalize preprocessing
LinearSolverType LinearSolverType_i2e_SIFEL(int val)
Conversion from "SIFEL int" to "enum" identificator of "linear solver type".
virtual void checkConsistency(void) const
Checks data consistency.
virtual void initialize(void)
= 0; = 0;
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
bool SP_print_word(const char *&src, FILE *stream)
... word
DOFsPerNode give_dpn(void) const
ElemAttribs(const Element *ow, long p, ElAttLevel eal)
CONSTRUCTOR.
SStype SStype_s2e(const char *val)
void initialize_from(const char *&str, femFileFormat ff)
int MaterialType_e2i_SIFEL(MaterialType val, PAGroup pg)
IntPointSet IPS_inputfile_value_i2e_OOFEM(int val, FiniteElementTypeSet *fets)
val je cislo ze vstupaku oofemu, keyword NIP
int give_ndofs(void) const
bool SP_print_space(const char *&src, FILE *stream)
*** *** *** PRINTING *** *** *** printing == print ...
PAGroup give_analgroup(void) const
const Point * owner() const
POINTERS TO SUPERIORS.
int DOFsPerNode2nDOFs(DOFsPerNode od)
long give_point_indx(const Point *p) const
const GPA< Point > * give_Pjnts(void) const
void EALdirectCheck(void) const
check this is nongeneral == this has to have owner
void print_linerec(FILE *stream, bool pure) const
FEApproximation give_approx(void) const
double give_elemSize(void) const
GLOBAL.
void set_cs_of_type(CrossSectType type, int id)
virtual void checkConsistency(void) const
Checks data consistency.
void set_nDOFs_BC(int nd, int *bc)
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
void set_FETS(const FiniteElementTypeSet *val)
int PAType_e2i_SIFEL(PAType val)
long SP_scan_word(const char *&src, char *dest)
... word; return value is length of the word
const VectoR * n2(void) const
const LCS_beam * give_lcs_global(void) const
virtual void initialize(void)
initialize yourself
#define SP_scan_expected_word_exit(_1, _2, _3, _4)
void set_MatStiffMtrx(int n, double *src)
int give_IN_meshGen_elemCount(void) const
bool only_1d_elements(void) const
only 1d elements
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
DOFsPerNode give_dpn(void) const
double elemSize
vytvorit vedle edge a face jeste volume, pak presunout loads a size VALUES
GPA< const Material > mats
const PointDOFsBCPM * give_dofbc(void) const
bool is_supported(void) const
void print_components(FILE *stream) const
#define SP_scan_expected_number_exit(_1, _2, _3)
void print_Bbc_SIFEL(FILE *stream) const
void set_nDOFs_BC(int nd, int *bc)
virtual void finitialize(void)
finalize preprocessing
long give_mproperty_cnt(void) const
void read_bc(FILE *stream, femFileFormat fff)
StiffMatrixType stiffmattype
#define _warningg3(_1, _2, _3)
void initialize_from(const char *&str, femFileFormat fff)
const Material * give_mat(void) const
void RAN_set_full_slave_node(void)
void check_masters_at_domain(long did) const
void initialize_atelemet(const Cell *mc, long dimmc, long ordmc, long countMN, const Node **mns, const PoinT *natcoords)
initialize hanging node at element type
const PointAttribs * genatt
void print_row_OOFEM(FILE *stream, int did, Beam *b) const
virtual long give_size(void) const
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
void scan_att_ndofs_new(const char *&str)
virtual classID give_classid() const =0
Returns classID - class identification.
virtual ~PointAttribs()
DESTRUCTOR.
#define PIconst
Pi constant.
long ID
(global) identification number == position in list of members; zero-based numbering.
double * contrib
type == 1 ** HN general
PointDOFsRANHN * doftype
RAN DOF types - contain ndofs, dof type array, master mask array.
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
void set_new(const FacedgeAttribs *src)
LinearSolverType linsoltype
long give_sifid(void) const
*** SET *** *** GET ***
Mesh * give_Mesh(long i) const
void initialize_from(const char *&str, femFileFormat ff)
void setup_rotmat_l2g(MatriX *rotmat)
const PointDOFsBCPM * give_DOFbc(void) const
Derived class for management of RAN (rigid arm node) or HN (hanging node) connection of DOFs (Degrees...
virtual void initialize(void)
initialize yourself
void scan_mask_ndofs_new(const char *&str)
void scan_ndofs_new(const char *&str)
*** SCAN ***
bool is_identical_with(const PointDOFsAttributes *src) const
const CrossSection * give_cs(void) const
long give_sifMats(long i) const
int transpmatter
[SIFEL] only - dej jim predponu SIF_
StiffMatrixType StiffMatrixType_i2e_SIFEL(int val)
Conversion from "SIFEL int" to "enum" identificator of "stiffness matrix type".
CellGeometry give_cellGeom(void) const
LCS_beam * lcs
OWNED OBJECTS.
bool scan(const char *&src)
const VectoR * n1(void) const
void set_standard_att_according_to_ndofs(void)
MaterialType MaterialType_i2e_SIFEL(int val, PAGroup pg)
long give_sifBCs(long i) const
void print_Fbc_SIFEL(FILE *stream) const
void switch_dpn_Line(void)
PointAttribs(const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
virtual void initialize(void)
initialize yourself
int ECN_convert_e2i(int id, int compdim, int ord, CellGeometry cg, femFileFormat fff)
External to Internal conversion.
virtual void checkConsistency(void) const
Checks data consistency.
void print_components_oo(FILE *stream) const
void initialize(const Geometry *geom)
const Point * give_point(long i) const
RANAttribs(const Point *ow, long p, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
int CrossSectType_e2i_SIFEL(CrossSectType val, PAGroup pg)
CellGeometry CellGeometry_i2e_HN(int val)
Local coordinate system at beam element.
const Problem * give_Pd(void) const
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Dvctr * resize_ignore_vals(long newsize)
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
void beCopyOf(const PoinT &src)
virtual void initialize(void)
initialize yourself
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
GelemAttribs * give_gelemAttribs(void)
const int * give_dofBCmask(void) const
void scan_linerec(const char *str)
long SP_scan_line(const char *&src, char *dest)
... line; return value is length of the line
PointAttribs * give_pointAttribs(void)
virtual void initialize(void)
initialize yourself
void initialize_BC_NL_SIFEL(FILE *stream)
virtual void checkConsistency(void) const
Checks data consistency.
bool is_the_first_BC(void)
int give_att(int i) const
const GPA< const Face > * give_faces(void) const
void print_bc(FILE *stream, femFileFormat fff) const
void add_load(const BoundaryCond *val)
long giveLineLength(const char *src)
return length of line == sting compount of "line chars"
virtual void initialize(void)
initialize yourself
bool has_fullhinge_ends(void) const
const Edge * owner() const
POINTERS TO SUPERIORS.
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
virtual void checkConsistency(void) const
finalize preprocessing
void print_info_message_colour(SODenum flag, ETCLR colour, const char *format,...) const
const Problem * Pd
Pointer to owner = parent problem.
const Vertex * give_mdl_masterex(void) const
virtual void checkConsistency(void) const
Checks data consistency.
void reset_dofbc_support_all_rot_dofs(void)
FEApproximation FEApproximation_s2e(const char *val)
BCType BCType_s2e_OOFEM(const char *val)
void BC_support_all_rot_dofs(void)
const char * DOFtype_i2s_ANSYS(DOFtype dt)
bool isNonZero(double x, double tolerance)
Geometry * give_primary_geometry(void) const
int give_mask(int i) const
void print_supported_BC_to_line(FILE *stream, femFileFormat fff) const
bool SP_skip_space(const char *&src)
... space == ' ' and '' characters
virtual void checkConsistency(void) const
Checks data consistency.
virtual void initialize(void)
initialize yourself
ADPArameters give_eetype(void) const
CrossSectType give_loctype_or_type(void) const
void integrate_duplicated_one(const ElemAttribs *slv)
bool scan_xyz(FILE *stream)
const CrossSection * cs
POINTERS TO ATTRIBUTES listed in problem class cs, mat, ...
MaterialType MaterialType_s2e_OOFEM(const char *val)
HNAttribs(const Point *ow, long a, const Problem *pd=NULL, const PointAttribs *gena=NULL)
CONSTRUCTOR.
int LinearSolverType_e2i_SIFEL(LinearSolverType val)
Conversion from "enum" to "SIFEL int" identificator of "linear solver type".
const Geometry * Geom
Pointer to owner == parent geometry.
double give_enlarg(void) const
BoundaryCond * give_BC(long i) const
Lvctr * resize_ignore_vals(long newsize)
resize, ignore values
void setadd_loctype_sifif(BCType loct, int locid)
const GPA< const Edge > * give_edges(void) const
GPA - Generic Pointer Array, template class manages 1d array of pointers to objects of type T...
GPA< PointDOFsCondense > * conDOFs
void rotate(Dvctr *v) const
void complete_setup_yourself(const Node *mstr)
Derived class for management of boundary conditions and physical meanings of DOFs (Degrees Of Freedom...
long give_sifCSs(long i) const
SStype
type of stress/strain state of element; especially results depends on this variable => described at M...
virtual ~ElemAttribs()
DESTRUCTOR.
void add_areaYyYz(double w, double h)
MaterialType give_loctype(void) const
virtual void initialize(void)
initialize yourself
void print_one_row(FILE *stream, long hid) const
#define _errorr3(_1, _2, _3)
PointDOFsRANHN * doftype
RAN DOF types - contain ndofs, dof type array, master mask array.
DOFtype
DOF type == physical meaning of dof; see help.txt.
const Gelement * give_mdl_masterel(void) const
const StdoutDriver * sodriver(void) const
CrossSectType CrossSectType_i2e_SIFEL(int val, PAGroup pg)
bool give_fulldata(void) const
void set_Pd(const Problem *owner)
IntPointSet IntPointSet_s2e(const char *val)
bool mask_is_null(void) const
SStype give_sst(void) const
BCType give_loctype(void) const
const char * DOFtype_i2s_force_ANSYS(DOFtype dt)
virtual void initialize(void)
initialize yourself
virtual void checkConsistency(void) const
Checks data consistency.
virtual void initialize(void)
initialize yourself
virtual void initialize(void)
initialize yourself
bool give_virtual(void) const
void print_block_SIFEL(FILE *stream) const
print analysis block of SIFEL input file
const CrossSection * cs
POINTERS TO ATTRIBUTES listed in problem class.
DOFsPerNode give_dpn_default(void) const
DEFAULT.
void print_DofIDMask_OOFEM(FILE *stream) const
const Face * owner() const
POINTERS TO SUPERIORS.
const int * give_DOFbc_mask(void) const
const Cell * MC
type == 2 ** HN at finite element
bool SP_scan_expected_word(const char *&src, const char *expctd, bool cs)
... word and compare with expected one
Derived class for management of condensed DOFs (Degrees Of Freedom) at a node.
void initialize_general(long countMN, const Node **mns, const double *cntrb, int n, int *val)
initialize hanging node general
double give_IN_meshGen_elemSize(void) const
FiniteElementType expltype
PointDOFsBCPM * dofbc
OWNED OBJECTS.
const Element * give_Elem(long i) const
BCType give_type(void) const
bool SP_scan_array(const char *&src, int n, ArgType *a)
... array of numbers
bool SP_scan_number(const char *&src, int &dest)
... number of type int/long/double
CrossSectType give_type(void) const
bool scan_components(FILE *stream, int ncmp)
tato struktura by mela obsahovat vsechny potrebne informace pro urceni konkretni implementace konecne...
FiniteElementTypeSet * give_FETS(FiniteElementTypeSet *set) const
GLOBAL, EAL_direct only.
void add_master_to_domain(long did)
Local coordinate system defined by 2 vectors.
PAType PAType_s2e_OOFEM(const char *str)
bool print_prescribed_values(FILE *stream, femFileFormat fff) const
oofem a ansys berou podepreni jako predepsane posunuti velikosti 0.0 ale sifel zadava podepreni jako ...
PointDOFsBCPM * dofbc
OWNED OBJECTS.
double give_reduct(void) const
long give_nno(void) const
long give_size(void) const
void print_Ebc_SIFEL(FILE *stream) const
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
bool SP_scan_array_alloc(const char *&src, long &n, ArgType *&a)
void print_row_OOFEM(FILE *stream) const
print analysis row of OOFEM input file
GPA< const BoundaryCond > loads
POINTERS TO ATTRIBUTES listed in problem class.
virtual ~RANAttribs()
DESTRUCTOR.
void scan_mask_ndofs_expected(const char *&str)
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
int IPS_inputfile_value_e2i_OOFEM(IntPointSet val)
val je cislo ze vstupaku oofemu
void set_Geom(const Geometry *owner)
const Node * give_Node(long i) const
int give_global_nDOFs(void) const
virtual classID give_classid() const
Returns classID - class identification.
int CellGeometry_e2i_JKTK(CellGeometry cg)
virtual void initialize(void)
initialize yourself
DOFsPerNode dpn
FINITE ELEMENT TYPE SET // viz alias.h.
FElemAttribs(const Element *ow, long p, ElAttLevel eal, const Problem *pd=NULL)
CONSTRUCTOR.
FiniteElementType give_expltype(void) const
ElemAttribs * give_ElAt_with_prop(long prop) const
void initialize_the_first_BC(void)
virtual ~HNAttribs()
DESTRUCTOR.
virtual void checkConsistency(void) const
Checks data consistency.
void scan_ndofs_expected(const char *&str)
virtual DOFsPerNode give_DOFsPerNode_default(void) const =0
Returns edge/face/volume of same dimension as receiver (Beam returns edge, etc.)
SStype give_sst_default(void) const
ElemAttribs * give_ElAt_of_domain(void) const
const CrossSection * give_cs(void) const
virtual SStype give_SSType_default(void) const =0
give default type of stress state
void set_mat_of_type(MaterialType type, int id)
double give_elemCount(void) const
double give_required_error(void) const
const FElement * f_owner() const
POINTERS TO SUPERIORS.
long give_lid_id(long dom) const
vraci lid of node, pro non-Parallel vraci id
void scan_att_ndofs_expected(const char *&str)
classID
Type introduced to distinguish between classes.
void set_cs_of_type(CrossSectType type, int id)
PoinT * copy(const PoinT *p)
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
bool SP_cutcomment(char *src)
cut of comment == end of line starting by '#'
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
bool SP_scan_Xvctr(const char *&src, ArgType *dest)
bool SP_scan_Dvctr (const char *&src, Dvctr *dest);
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
const Node * give_node(long i) const
virtual classID give_classid() const
Returns classID - class identification.
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
Material * give_Mat(long i) const
assignment of attributes to element
const PoinT * give_coords(void) const
IntPointSet give_IPset(void) const
void HN_initialize_slave_node(void)
hanging node
PAGroup PAGroup_t2g(PAType val)
virtual ~FElemAttribs()
DESTRUCTOR.
int StiffMatrixType_e2i_SIFEL(StiffMatrixType val)
Conversion from "enum" to "SIFEL int" identificator of "stiffness matrix type".
void add_masters_to_domain(long did)
const Element * owner() const
POINTERS TO SUPERIORS.
int give_nDOFs(void) const
void set_dpn(DOFsPerNode val)
const GeometryComponent * GC
Pointer to owner == parent geometry component.
ElemAttribs * give_ElAt_with_geom(CellGeometry eg) const
int ECN_convert_i2e(int id, int compdim, int ord, CellGeometry cg, femFileFormat fff)
INTERNAL to EXTERNAL conversion.
void set_fullhinge_at(int point)
MIDAS input native ff - pro specialni potreby.
bool FP_skip_comment(FILE *stream)
*** *** *** *** FILE PROCESSING *** *** *** *** general rules for file processing: ...
virtual void print_row(FILE *stream, femFileFormat fff, long did) const
print row to solver input file
virtual void initialize(void)
initialize yourself
FiniteElementType expltype