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

📄 units.c

📁 有限元分析源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
              dp2 = DefaultUnits("kg");           }           else {              dp1 = DefaultUnits("sec");              dp2 = DefaultUnits("lb");           }           if(ABS(d->time_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->time_expnt), NO );           if(ABS(d->mass_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->mass_expnt), NO );           if(d->time_expnt > 0) {               if(d->mass_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->mass_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->time_expnt, NO );               dd2 = UnitsPower( dp2, d->mass_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.5] Check weather the units are Time and Temperature related   */        else if(d->length_expnt == 0 && d->time_expnt != 0 &&                 d->mass_expnt   == 0 && d->temp_expnt != 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("sec");              dp2 = DefaultUnits("deg_C");           }           else {              dp1 = DefaultUnits("sec");              dp2 = DefaultUnits("deg_F");           }           if(ABS(d->time_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->time_expnt), NO );           if(ABS(d->temp_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->temp_expnt), NO );           if(d->time_expnt > 0) {               if(d->temp_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->temp_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->time_expnt, NO );               dd2 = UnitsPower( dp2, d->temp_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [f.6] Check weather the units are Mass and Temperature related   */        else if(d->length_expnt == 0 && d->time_expnt == 0 &&                 d->mass_expnt   != 0 && d->temp_expnt != 0 ) {           if(d->units_type == SI) {              dp1 = DefaultUnits("kg");              dp2 = DefaultUnits("deg_C");           }           else {              dp1 = DefaultUnits("lb");              dp2 = DefaultUnits("deg_F");           }           if(ABS(d->mass_expnt) == 1) {              d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d1,dp1);           }           else              d1 = UnitsPower( dp1, ABS(d->mass_expnt), NO );           if(ABS(d->temp_expnt) == 1) {              d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));              UnitsCopy(d2,dp2);           }           else              d2 = UnitsPower( dp2, ABS(d->temp_expnt), NO );           if(d->mass_expnt > 0) {               if(d->temp_expnt > 0)                  UnitsMultRep(d, d1, d2);	                else                  UnitsDivRep(d, d1, d2, NO);	            }           else if(d->temp_expnt > 0) {               UnitsDivRep(d, d2, d1, NO);	            }           else {               dd1 = UnitsPower( dp1, d->mass_expnt, NO );               dd2 = UnitsPower( dp2, d->temp_expnt, NO );               UnitsMultRep(d, dd1, dd2);	                free((char *) dd1->units_name);               free((char *) dd1);               free((char *) dd2->units_name);               free((char *) dd2);           }           free((char *) d1->units_name);           free((char *) d1);           free((char *) d2->units_name);           free((char *) d2);           free((char *) dp1->units_name);           free((char *) dp1);           free((char *) dp2->units_name);           free((char *) dp2);#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [g] Check weather the units are three units related   */  /* [g.a] Check weather the units are PRESSURE units      */        else if(d->length_expnt == -1 && d->time_expnt == -2 &&                 d->mass_expnt   ==  1 && d->temp_expnt ==  0 ) {           if(d->units_type == SI){              if(strcmp(d->units_name, "Pa") != 0) {                 dp = DefaultUnits("Pa");                 UnitsCopy(d,dp);                 free((char *) dp->units_name);                 free((char *) dp);	      }           }           else{              if(strcmp(d->units_name, "psi") != 0) {                 dp = DefaultUnits("psi");                  UnitsCopy(d,dp);                 free((char *) dp->units_name);                 free((char *) dp);	      }           }#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [g.b] Check weather the units are POWER units          */        else if(d->length_expnt == 2 && d->time_expnt == -3 &&                 d->mass_expnt   == 1 && d->temp_expnt ==  0 ) {           if(strcmp(d->units_name, "Watt") != 0) {              dp = DefaultUnits("Watt");              UnitsCopy(d,dp);              free((char *) dp->units_name);              free((char *) dp);	   }#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [g.c] Check weather the units are FORCE related units          */        else if(d->length_expnt != 0 && d->time_expnt != 0 &&                 d->mass_expnt   != 0 && d->temp_expnt == 0 ) {           dlength = d->length_expnt - d->mass_expnt;           if( d->time_expnt/-2.0 == d->mass_expnt ) {               if(d->units_type == SI){                  dp1 = DefaultUnits("N");                  dp2 = DefaultUnits("m");               }               else {                  dp1 = DefaultUnits("lbf");                   dp2 = DefaultUnits("in");               }               if(ABS(d->mass_expnt) == 1) {                  d1 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));                  UnitsCopy(d1,dp1);               }               else                  d1 = UnitsPower( dp1, ABS(d->mass_expnt), NO );               if(dlength == 0) {                  d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));                  ZeroUnits(d2);                  d2->units_type = dp2->units_type;               }               else if(ABS(dlength) == 1) {                  d2 = (DIMENSIONS *) MyCalloc(1,sizeof(DIMENSIONS));                  UnitsCopy(d2,dp2);               }               else                  d2 = UnitsPower( dp2, ABS(dlength), NO );               if(d->mass_expnt > 0) {                  if(dlength > 0)                     UnitsMultRep(d, d1, d2);                  else if(dlength == 0)                     UnitsCopy(d,d1);                  else                     UnitsDivRep(d, d1, d2, NO);               }               else if(dlength >= 0) {                  UnitsDivRep(d, d2, d1, NO);               }               else {                  dd1 = UnitsPower( dp1, d->mass_expnt, NO );                  dd2 = UnitsPower( dp2, dlength, NO );                  UnitsMultRep(d, dd1, dd2);	                   free((char *) dd1->units_name);                  free((char *) dd1);                  free((char *) dd2->units_name);                  free((char *) dd2);               }              free((char *)d1->units_name);              free((char *)d1);              free((char *)d2->units_name);              free((char *)d2);              free((char *)dp1->units_name);              free((char *)dp1);              free((char *)dp2->units_name);              free((char *)dp2);           }           else {              if(d->units_type == SI) {                 dp1 = DefaultUnits("m");                 dp2 = DefaultUnits("kg");                 dp3 = DefaultUnits("sec");              }              else {                 dp1 = DefaultUnits("in");                 dp2 = DefaultUnits("lb");                 dp3 = DefaultUnits("sec");              }              if( d->length_expnt==1 ) {                  d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                  UnitsCopy(d1,dp1);              }              else                  d1 = UnitsPower(dp1,d->length_expnt, NO);              if( d->mass_expnt==1 ) {                  d2 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                  UnitsCopy(d2,dp2);              }              else                  d2 = UnitsPower(dp2,d->mass_expnt, NO);              if( d->time_expnt==1 ) {                  d3 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                  UnitsCopy(d3,dp3);              }              else                  d3 = UnitsPower(dp3,d->time_expnt, NO);              dd1 = UnitsMult(d1,d2);              UnitsMultRep(d,dd1,d3);              free((char *)d1->units_name);              free((char *)d1);              free((char *)d2->units_name);              free((char *)d2);              free((char *)d3->units_name);              free((char *)d3);              free((char *)dp1->units_name);              free((char *)dp1);              free((char *)dp2->units_name);              free((char *)dp2);              free((char *)dp3->units_name);              free((char *)dp3);              free((char *)dd1->units_name);              free((char *)dd1);           }#ifdef DEBUG     printf(" Leaving UnitsSimplify() \n");#endif           return(d);        }  /* [h] Check weather the units are some compact form */        else {           if(d->units_type == SI) {              dp1 = DefaultUnits("m");              dp2 = DefaultUnits("kg");              dp3 = DefaultUnits("sec");              dp4 = DefaultUnits("deg_C");           }           else {              dp1 = DefaultUnits("in");              dp2 = DefaultUnits("lb");              dp3 = DefaultUnits("sec");              dp4 = DefaultUnits("deg_F");           }           if( d->length_expnt!=0 ) {               if( d->length_expnt==1 ) {                   d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                   UnitsCopy(d1,dp1);               }               else                   d1 = UnitsPower(dp1,d->length_expnt, NO);           }           else {               d1 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));               ZeroUnits(d1);               d1->units_type = SI_US;           }           if( d->mass_expnt!=0 ) {               if( d->mass_expnt==1 ) {                   d2 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                   UnitsCopy(d2,dp2);               }               else                   d2 = UnitsPower(dp2,d->mass_expnt, NO);           }           else {               d2 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));               ZeroUnits(d2);               d2->units_type = SI_US;           }           if( d->time_expnt!=0 ) {               if( d->time_expnt==1 ) {                   d3 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                   UnitsCopy(d3,dp3);               }               else                   d3 = UnitsPower(dp3,d->time_expnt, NO);           }           else {               d3 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));               ZeroUnits(d3);               d3->units_type = SI_US;           }           if( d->temp_expnt!=0 ) {               if( d->temp_expnt==1 ) {                   d4 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));                   UnitsCopy(d4,dp4);               }               else                   d4 = UnitsPower(dp4,d->temp_expnt, NO);           }           else {               d4 = (DIMENSIONS *)MyCalloc(1,sizeof(DIMENSIONS));               ZeroUnits(d4);               d4->units_type = SI_US;           }           dd1 = UnitsMult(d1,d2);           dd2 = UnitsMult(d3,d4);           UnitsMultRep(d,dd1,dd2);           free((char *)d1->units_name);           free((char *)d1);           free((char *)d2->units_name);           free((char *)d2);           free((char *)d3->units_name);           free((char *)d3);           free((char *)d4->units_name);           free((char *)d4);           free((char *)dp1->units_name);

⌨️ 快捷键说明

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