📄 mechprint.cpp
字号:
sig = "w"; break; case 2: sig = "phi"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function write_gid_elemscalar, file %s, line %d\n", __FILE__, __LINE__); } break; case planestress: case planestrain: switch (dir) { case 0: sig = "eps_e_x"; break; case 1: sig = "eps_e_y"; break; case 2: sig = "eps_e_xy"; break; case 3: sig = "eps_e_z"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function write_gid_elemscalar, file %s, line %d\n", __FILE__, __LINE__); } break; case axisymm: switch (dir) { case 0: sig = "eps_e_r"; break; case 1: sig = "eps_e_z"; break; case 2: sig = "eps_e_phi"; break; case 3: sig = "eps_e_rz"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function write_gid_elemscalar, file %s, line %d\n", __FILE__, __LINE__); } break; case spacestress: switch (dir) { case 0: sig = "eps_e_x"; break; case 1: sig = "eps_e_y"; break; case 2: sig = "eps_e_z"; break; case 3: sig = "eps_e_yz"; break; case 4: sig = "eps_e_xz"; break; case 5: sig = "eps_e_xy"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function write_gid_elemscalar, file %s, line %d\n", __FILE__, __LINE__); } break; default: fprintf(stderr, "\n\n Error - unknown stress/strain state is required"); fprintf(stderr, "\n in function write_gid_elemscalar, file %s, line %d\n", __FILE__, __LINE__); } } switch (te) { case bar2d : case bar3d : case beam2d : case beam3d : case subsoilbeam : sprintf(gpname, "Lin_1D"); break; case barq2d : sprintf(gpname, "Quad_1D"); break; default : sprintf(gpname, "%d", te); } if (scal == other) fprintf(out, "\nResult \"other_e_%ld\" \"%ld\" %s Scalar OnGaussPoints \"%s\"\n", dir+1, lcid, desclcid, gpname); else fprintf(out, "\nResult \"%s\" \"%ld\" %s Scalar OnGaussPoints \"%s\"\n", sig, lcid, desclcid, gpname); fprintf(out, "Values\n"); print_header = 0; } switch (scal) { case stress : fprintf(out, "%7ld", i+Outdm->ide1); for (j = 0; j < tnip; j++) { ipp = Mt->elements[i].ipp[0][0]+j; ncompstr = Mm->ip[ipp].ncompstr; if (j == 0) fprintf(out, " % e\n", Mm->ip[ipp].stress[ncompstr*lcid+dir]); else fprintf(out, "%7c % e\n", ' ', Mm->ip[ipp].stress[ncompstr*lcid+dir]); } fprintf(out, "\n"); break; case strain : fprintf(out, "%7ld", i+Outdm->ide1); for (j = 0; j < tnip; j++) { ipp = Mt->elements[i].ipp[0][0]+j; ncompstr = Mm->ip[ipp].ncompstr; if (j == 0){ fprintf(out, " % e\n", Mm->ip[ipp].strain[ncompstr*lcid+dir]); //fprintf (Out,"\n ipp %ld ncompstr %ld lcid %ld dir %ld [] %ld",ipp,ncompstr,lcid,dir,ncompstr*lcid+dir); } else fprintf(out, "%7c % e\n", ' ', Mm->ip[ipp].strain[ncompstr*lcid+dir]); } fprintf(out, "\n"); break; case other : fprintf(out, "%7ld", i+Outdm->ide1); for (j = 0; j < tnip; j++) { ipp = Mt->elements[i].ipp[0][0]+j; ncompother = Mm->ip[ipp].ncompeqother; if (j == 0) fprintf(out, " % e\n", Mm->ip[ipp].eqother[ncompother*lcid+dir]); else fprintf(out, "%7c % e\n", ' ', Mm->ip[ipp].eqother[ncompother*lcid+dir]); } fprintf(out, "\n"); break; default : fprintf(stderr, "\n\n Error - unknown value type in function write_gid_elemscalar()\n"); fprintf(stderr, " in file %s, line %d\n", __FILE__, __LINE__); } } if (print_header == 0) fprintf(out, "End Values\n");}void export_femcad(FILE *out){ write_nodes(out); write_elements(out);}void write_nodes(FILE *out){ long i; fprintf(out, "\nNODES\n"); for (i=0; i < Gtm->nn; i++) fprintf(out, "%ld %e %e %e\n", i, Gtm->gnodes[i].x, Gtm->gnodes[i].y, Gtm->gnodes[i].z);}void write_elements(FILE *out){ long i,j; fprintf(out, "\nELEMENTS\n"); for (i = 0; i < Mt->ne; i++) { if (Gtm->leso[i]==0) continue; switch (Mt->elements[i].te) { case bar2d : case bar3d : case beam2d : case beam3d : case subsoilbeam :/* fprintf(out, "%ld %d", i, ISOLinear1D); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]);*/ break; case barq2d :/* fprintf(out, "%ld %d", i, ISOQuadratic1D); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]);*/ break; case spring_1 : case spring_2 : case spring_3 : case spring_4 : case spring_5 : case spring_6 : break; case cctel : case dktel: case dstel: case subsoilplatetr: case planeelementlt : case planeelementrotlt : fprintf(out, "%ld %d", i, TriangleLinear); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]); break; case planeelementqt : fprintf(out, "%ld %d", i, TriangleQuadratic); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]); break; case planeelementlq : case planeelementrotlq : case q4plateel: case subsoilplateq: fprintf(out, "%ld %d", i, ISOLinear2D); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]); break; case planeelementqq : fprintf(out, "%ld %d", i, ISOQuadratic2D); for (j = 0; j < Gtm->gelements[i].nne; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[j]); break; case linearhex : fprintf(out, "%ld %d", i, ISOLinear2D); for (j = 0; j < 4; j++) fprintf(out, " %ld", Gtm->gelements[i].nodes[4+j]); break; default : fprintf(stderr, "\n\n Error - unsupported element type is required in function\n"); fprintf(stderr, " write_elements(), file %s, line %d\n", __FILE__, __LINE__); } fprintf(out, "\n"); }}void write_nodes_prep(FILE *out, siftop *st){ long i; fprintf(out, "\nNODES\n"); for (i=0; i < st->nodes; i++) fprintf(out, "%ld %e %e %e\n", i, st->N[i].x, st->N[i].y, st->N[i].z);}void write_elements_prep(FILE *out, siftop *st){ long i,j; fprintf(out, "\nELEMENTS\n"); for (i = 0; i < st->elements; i++) { fprintf(out, "%ld %d", i, TriangleLinear); for (j = 0; j < st->E[i].size; j++) fprintf(out, " %ld", st->E[i].node[j]-1); fprintf(out, "\n"); }}void write_displ(FILE *out, long lcid, char *desclcid){ long i, j; double *r; fprintf (out,"\nVALUES"); fprintf (out,"\nVECTOR3D NODES DEFORMATION %s\n", desclcid); for (i=0; i < Mt->nn; i++) { r = new double [Gtm->gnodes[i].ndofn]; noddispl (lcid, r, i); fprintf(out, "%ld", i); for (j = 0; j < Gtm->gnodes[i].ndofn; j++) fprintf(out, " % e", r[j]); fprintf(out, " 0.0 \n"); delete [] r; }}void write_nodscalar(FILE *out, strastre scal, long lcid, long dir, char *desclcid){ char *sig = ""; long i, ncompstr, ncompother; fprintf(out, "\nVALUES\nSCALAR NODES "); if (scal == stress) { if (Mt->nodes[0].ncompstr < 6) { switch (dir) { case 0: sig = "sig_x"; break; case 1: sig = "sig_y"; break; case 2: sig = "tau_xy"; break; case 3: sig = "sig_z"; break; default : fprintf(stderr, "\n\n Error - unknown direction of stress"); fprintf(stderr, "\n in function wr_nodscalar, file %s, line %d\n", __FILE__, __LINE__); } } if (Mt->nodes[0].ncompstr == 6) { switch (dir) { case 0: sig = "sig_x"; break; case 1: sig = "sig_y"; break; case 2: sig = "sig_z"; break; case 3: sig = "tau_yz"; break; case 4: sig = "tau_xz"; break; case 5: sig = "tau_xy"; break; default : fprintf(stderr, "\n\n Error - unknown direction of stress"); fprintf(stderr, "\n in function wr_nodscalar, file %s, line %d\n", __FILE__, __LINE__); } } } if (scal == strain) { if (Mt->nodes[0].ncompstr < 6) { switch (dir) { case 0: sig = "eps_x"; break; case 1: sig = "eps_y"; break; case 2: sig = "eps_xy"; break; case 3: sig = "eps_z"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function wr_nodscalar, file %s, line %d\n", __FILE__, __LINE__); } } if (Mt->nodes[0].ncompstr == 6) { switch (dir) { case 0: sig = "eps_x"; break; case 1: sig = "eps_y"; break; case 2: sig = "eps_z"; break; case 3: sig = "eps_yz"; break; case 4: sig = "eps_xz"; break; case 5: sig = "eps_xy"; break; default : fprintf(stderr, "\n\n Error - unknown direction of strain"); fprintf(stderr, "\n in function wr_nodscalar, file %s, line %d\n", __FILE__, __LINE__); } } } switch (scal) { case stress : fprintf(out, "%s %s\n", sig, desclcid); for (i = 0; i < Mt->nn; i++) { ncompstr = Mt->nodes[i].ncompstr; fprintf(out, "%ld % e\n", i, Mt->nodes[i].stress[ncompstr*lcid+dir]); } break; case strain : fprintf(out, "%s %s\n", sig, desclcid); for (i = 0; i < Mt->nn; i++) { ncompstr = Mt->nodes[i].ncompstr; fprintf(out, "%ld % e\n", i, Mt->nodes[i].strain[ncompstr*lcid+dir]); } break; case other : fprintf(out, "other_n%ld %s\n", dir, desclcid); for (i = 0; i < Mt->nn; i++) { ncompother = Mt->nodes[i].ncompother; fprintf(out, "%ld % e\n", i, Mt->nodes[i].other[ncompother*lcid+dir]); } break; default : fprintf(stderr, "\n\n Error - unknown value type in function write_scalar()\n"); fprintf(stderr, " in file %s, line %d\n", __FILE__, __LINE__); }}void write_elemscalar(FILE *out, strastre scal, long lcid, long dir, char * desclcid){ char *sig = ""; long i, ipp,ncompstr,ncompother; fprintf(out, "\nVALUES\nSCALAR ELEMENTS "); if (scal == stress) { if (Mm->ip[0].ncompstr < 6) { switch (dir) { case 0: sig = "sig_x"; break; case 1: sig = "sig_y"; break; case 2: sig = "tau_xy"; break; case 3: sig = "sig_z"; break; default : fprintf(stderr, "\n\n Error - unknown direction of stress"); fprintf(stderr, "\n in function wr_nodscalar, file %s, line %d\n", __F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -