⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 post.c

📁 OpenFVM-v1.1 open source cfd code
💻 C
📖 第 1 页 / 共 5 页
字号:
      for (j = 0; j < elements[element].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[elements[element].node[j]].z);	}      if (iphix == 0)	vx = V_GetCmp (&xu, element + 1);      if (iphix == 1)	vx = V_GetCmp (&xv, element + 1);      if (iphix == 2)	vx = V_GetCmp (&xw, element + 1);      if (iphix == 3)	vx = V_GetCmp (&xp, element + 1);      if (iphix == 4)	vx = V_GetCmp (&xT, element + 1);      if (iphix == 5)	vx = V_GetCmp (&xs, element + 1);      if (iphiy == 0)	vy = V_GetCmp (&xu, element + 1);      if (iphiy == 1)	vy = V_GetCmp (&xv, element + 1);      if (iphiy == 2)	vy = V_GetCmp (&xw, element + 1);      if (iphiy == 3)	vy = V_GetCmp (&xp, element + 1);      if (iphiy == 4)	vy = V_GetCmp (&xT, element + 1);      if (iphiy == 5)	vy = V_GetCmp (&xs, element + 1);      if (iphiz == 0)	vz = V_GetCmp (&xu, element + 1);      if (iphiz == 1)	vz = V_GetCmp (&xv, element + 1);      if (iphiz == 2)	vz = V_GetCmp (&xw, element + 1);      if (iphiz == 3)	vz = V_GetCmp (&xp, element + 1);      if (iphiz == 4)	vz = V_GetCmp (&xT, element + 1);      if (iphiz == 5)	vz = V_GetCmp (&xs, element + 1);      for (j = 0; j < elements[element].nbnodes; j++)	{	  fprintf (fp, " %E %E %E", vx, vy, vz);	}      fprintf (fp, "\n");    }}voidPrintAsciiScalarFace (FILE * fp, double *sf){  int i, j;  int face;  double sd;  for (i = 0; i < nbfaces; i++)    {      face = i;      if (faces[face].type != TRIANGLE)	continue;      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].x);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].y);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].z);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  sd = sf[face];	  fprintf (fp, " %E", sd);	}      fprintf (fp, "\n");    }  for (i = 0; i < nbfaces; i++)    {      face = i;      if (faces[face].type != QUADRANGLE)	continue;      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].x);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].y);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  fprintf (fp, " %E", nodes[faces[face].node[j]].z);	}      for (j = 0; j < faces[face].nbnodes; j++)	{	  sd = sf[face];	  fprintf (fp, " %E", sd);	}      fprintf (fp, "\n");    }}voidPrintBinaryScalarNode (FILE * fp, double *sn){  int i, j;  int element;  double *tetras;  double *hexas;  double *prisms;  int nt, nh, np;  tetras = calloc (4 * nbtetras * 4, sizeof (double));  hexas = calloc (4 * nbhexas * 8, sizeof (double));  prisms = calloc (4 * nbprisms * 6, sizeof (double));  nt = 0;  nh = 0;  np = 0;  for (i = 0; i < nbelements; i++)    {      element = i;      if (elements[element].type == TETRAHEDRON)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].x;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].y;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].z;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = sn[elements[element].node[j]];	      nt++;	    }	}      if (elements[element].type == HEXAHEDRON)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].x;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].y;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].z;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = sn[elements[element].node[j]];	      nh++;	    }	}      if (elements[element].type == PRISM)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].x;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].y;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].z;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = sn[elements[element].node[j]];	      np++;	    }	}    }  fwrite (tetras, sizeof (double), nt, fp);  fwrite (hexas, sizeof (double), nh, fp);  fwrite (prisms, sizeof (double), np, fp);  free (tetras);  free (hexas);  free (prisms);}voidPrintBinaryScalarFace (FILE * fp, double *sf){  int i, j;  int face;  double *tris;  double *quads;  int nt, nq;  tris = calloc (4 * nbtris * 3, sizeof (double));  quads = calloc (4 * nbquads * 4, sizeof (double));  nt = 0;  nq = 0;  for (i = 0; i < nbfaces; i++)    {      face = i;      if (faces[face].type == TRIANGLE)	{	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      tris[nt] = nodes[faces[face].node[j]].x;	      nt++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      tris[nt] = nodes[faces[face].node[j]].y;	      nt++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      tris[nt] = nodes[faces[face].node[j]].z;	      nt++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      tris[nt] = sf[face];	      nt++;	    }	}      if (faces[face].type == QUADRANGLE)	{	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      quads[nq] = nodes[faces[face].node[j]].x;	      nq++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      quads[nq] = nodes[faces[face].node[j]].y;	      nq++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      quads[nq] = nodes[faces[face].node[j]].z;	      nq++;	    }	  for (j = 0; j < faces[face].nbnodes; j++)	    {	      quads[nq] = sf[face];	      nq++;	    }	}    }  fwrite (tris, sizeof (double), nt, fp);  fwrite (quads, sizeof (double), nq, fp);  free (tris);  free (quads);}voidPrintBinaryScalarElement (FILE * fp, double *se){  int i, j;  int element;  double *tetras;  double *hexas;  double *prisms;  int nt, nh, np;  tetras = calloc (4 * nbtetras * 4, sizeof (double));  hexas = calloc (4 * nbhexas * 8, sizeof (double));  prisms = calloc (4 * nbprisms * 6, sizeof (double));  nt = 0;  nh = 0;  np = 0;  for (i = 0; i < nbelements; i++)    {      element = i;      if (elements[element].type == TETRAHEDRON)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].x;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].y;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].z;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = se[element];	      nt++;	    }	}      if (elements[element].type == HEXAHEDRON)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].x;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].y;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = nodes[elements[element].node[j]].z;	      nh++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      hexas[nh] = se[element];	      nh++;	    }	}      if (elements[element].type == PRISM)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].x;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].y;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = nodes[elements[element].node[j]].z;	      np++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      prisms[np] = se[element];	      np++;	    }	}    }  fwrite (tetras, sizeof (double), nt, fp);  fwrite (hexas, sizeof (double), nh, fp);  fwrite (prisms, sizeof (double), np, fp);  free (tetras);  free (hexas);  free (prisms);}voidPrintBinaryVectorElement (FILE * fp, int iphix, int iphiy, int iphiz){  int i, j;  int element;  double vx, vy, vz;  double *tetras;  double *hexas;  double *prisms;  int nt, nh, np;  vx = 0.0;  vy = 0.0;  vz = 0.0;    tetras = calloc (6 * nbtetras * 4, sizeof (double));  hexas = calloc (6 * nbhexas * 8, sizeof (double));  prisms = calloc (6 * nbprisms * 6, sizeof (double));  nt = 0;  nh = 0;  np = 0;  for (i = 0; i < nbelements; i++)    {      element = i;      if (elements[element].type == TETRAHEDRON)	{	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].x;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].y;	      nt++;	    }	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = nodes[elements[element].node[j]].z;	      nt++;	    }	  if (iphix == 0)	    vx = V_GetCmp (&xu, element + 1);	  if (iphix == 1)	    vx = V_GetCmp (&xv, element + 1);	  if (iphix == 2)	    vx = V_GetCmp (&xw, element + 1);	  if (iphix == 3)	    vx = V_GetCmp (&xp, element + 1);	  if (iphix == 4)	    vx = V_GetCmp (&xT, element + 1);	  if (iphix == 5)	    vx = V_GetCmp (&xs, element + 1);	  if (iphiy == 0)	    vy = V_GetCmp (&xu, element + 1);	  if (iphiy == 1)	    vy = V_GetCmp (&xv, element + 1);	  if (iphiy == 2)	    vy = V_GetCmp (&xw, element + 1);	  if (iphiy == 3)	    vy = V_GetCmp (&xp, element + 1);	  if (iphiy == 4)	    vy = V_GetCmp (&xT, element + 1);	  if (iphiy == 5)	    vy = V_GetCmp (&xs, element + 1);	  if (iphiz == 0)	    vz = V_GetCmp (&xu, element + 1);	  if (iphiz == 1)	    vz = V_GetCmp (&xv, element + 1);	  if (iphiz == 2)	    vz = V_GetCmp (&xw, element + 1);	  if (iphiz == 3)	    vz = V_GetCmp (&xp, element + 1);	  if (iphiz == 4)	    vz = V_GetCmp (&xT, element + 1);	  if (iphiz == 5)	    vz = V_GetCmp (&xs, element + 1);	  for (j = 0; j < elements[element].nbnodes; j++)	    {	      tetras[nt] = vx;	      nt++;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -