CalculiX  2.8
A Free Software Three-Dimensional Structural Finite Element Program
 All Classes Files Functions Variables Macros
results.c File Reference
#include <unistd.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <pthread.h>
#include "CalculiX.h"
Include dependency graph for results.c:

Go to the source code of this file.

Functions

void results (double *co, ITG *nk, ITG *kon, ITG *ipkon, char *lakon, ITG *ne, double *v, double *stn, ITG *inum, double *stx, double *elcon, ITG *nelcon, double *rhcon, ITG *nrhcon, double *alcon, ITG *nalcon, double *alzero, ITG *ielmat, ITG *ielorien, ITG *norien, double *orab, ITG *ntmat_, double *t0, double *t1, ITG *ithermal, double *prestr, ITG *iprestr, char *filab, double *eme, double *emn, double *een, ITG *iperturb, double *f, double *fn, ITG *nactdof, ITG *iout, double *qa, double *vold, double *b, ITG *nodeboun, ITG *ndirboun, double *xboun, ITG *nboun, ITG *ipompc, ITG *nodempc, double *coefmpc, char *labmpc, ITG *nmpc, ITG *nmethod, double *cam, ITG *neq, double *veold, double *accold, double *bet, double *gam, double *dtime, double *time, double *ttime, double *plicon, ITG *nplicon, double *plkcon, ITG *nplkcon, double *xstateini, double *xstiff, double *xstate, ITG *npmat_, double *epn, char *matname, ITG *mi, ITG *ielas, ITG *icmd, ITG *ncmat_, ITG *nstate_, double *stiini, double *vini, ITG *ikboun, ITG *ilboun, double *ener, double *enern, double *emeini, double *xstaten, double *eei, double *enerini, double *cocon, ITG *ncocon, char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, ITG *nprint, char *prlab, char *prset, double *qfx, double *qfn, double *trab, ITG *inotr, ITG *ntrans, double *fmpc, ITG *nelemload, ITG *nload, ITG *ikmpc, ITG *ilmpc, ITG *istep, ITG *iinc, double *springarea, double *reltime, ITG *ne0, double *xforc, ITG *nforc, double *thicke, double *shcon, ITG *nshcon, char *sideload, double *xload, double *xloadold, ITG *icfd, ITG *inomat, double *pslavsurf, double *pmastsurf, ITG *mortar, ITG *islavact, double *cdn, ITG *islavnode, ITG *nslavnode, ITG *ntie, double *clearini, ITG *islavsurf, ITG *ielprop, double *prop)
 
void * resultsmechmt (ITG *i)
 
void * resultsthermmt (ITG *i)
 

Variables

static char * lakon1
 
static char * matname1
 
static char * sideload1
 
static ITGkon1
 
static ITGipkon1
 
static ITGne1
 
static ITGnelcon1
 
static ITGnrhcon1
 
static ITGnalcon1
 
static ITGielmat1
 
static ITGielorien1
 
static ITGnorien1
 
static ITGntmat1_
 
static ITGithermal1
 
static ITGiprestr1
 
static ITGiperturb1
 
static ITGiout1
 
static ITGnmethod1
 
static ITGnplicon1
 
static ITGnplkcon1
 
static ITGnpmat1_
 
static ITGmi1
 
static ITGielas1
 
static ITGicmd1
 
static ITGncmat1_
 
static ITGnstate1_
 
static ITGistep1
 
static ITGiinc1
 
static ITG calcul_fn1
 
static ITG calcul_qa1
 
static ITG calcul_cauchy1
 
static ITG iener1
 
static ITG ikin1
 
static ITGnal =NULL
 
static ITGipompc1
 
static ITGnodempc1
 
static ITGnmpc1
 
static ITGncocon1
 
static ITGikmpc1
 
static ITGilmpc1
 
static ITG num_cpus
 
static ITG mt1
 
static ITGnk1
 
static ITGne01
 
static ITGnshcon1
 
static ITGnelemload1
 
static ITGnload1
 
static ITGmortar1
 
static ITGielprop1
 
static double * co1
 
static double * v1
 
static double * stx1
 
static double * elcon1
 
static double * rhcon1
 
static double * alcon1
 
static double * alzero1
 
static double * orab1
 
static double * t01
 
static double * t11
 
static double * prestr1
 
static double * eme1
 
static double * fn1 =NULL
 
static double * qa1 =NULL
 
static double * vold1
 
static double * veold1
 
static double * dtime1
 
static double * time1
 
static double * ttime1
 
static double * plicon1
 
static double * plkcon1
 
static double * xstateini1
 
static double * xstiff1
 
static double * xstate1
 
static double * stiini1
 
static double * vini1
 
static double * ener1
 
static double * eei1
 
static double * enerini1
 
static double * springarea1
 
static double * reltime1
 
static double * coefmpc1
 
static double * cocon1
 
static double * qfx1
 
static double * thicke1
 
static double * emeini1
 
static double * shcon1
 
static double * xload1
 
static double * prop1
 
static double * xloadold1
 
static double * pslavsurf1
 
static double * pmastsurf1
 
static double * clearini1
 

Function Documentation

void results ( double *  co,
ITG nk,
ITG kon,
ITG ipkon,
char *  lakon,
ITG ne,
double *  v,
double *  stn,
ITG inum,
double *  stx,
double *  elcon,
ITG nelcon,
double *  rhcon,
ITG nrhcon,
double *  alcon,
ITG nalcon,
double *  alzero,
ITG ielmat,
ITG ielorien,
ITG norien,
double *  orab,
ITG ntmat_,
double *  t0,
double *  t1,
ITG ithermal,
double *  prestr,
ITG iprestr,
char *  filab,
double *  eme,
double *  emn,
double *  een,
ITG iperturb,
double *  f,
double *  fn,
ITG nactdof,
ITG iout,
double *  qa,
double *  vold,
double *  b,
ITG nodeboun,
ITG ndirboun,
double *  xboun,
ITG nboun,
ITG ipompc,
ITG nodempc,
double *  coefmpc,
char *  labmpc,
ITG nmpc,
ITG nmethod,
double *  cam,
ITG neq,
double *  veold,
double *  accold,
double *  bet,
double *  gam,
double *  dtime,
double *  time,
double *  ttime,
double *  plicon,
ITG nplicon,
double *  plkcon,
ITG nplkcon,
double *  xstateini,
double *  xstiff,
double *  xstate,
ITG npmat_,
double *  epn,
char *  matname,
ITG mi,
ITG ielas,
ITG icmd,
ITG ncmat_,
ITG nstate_,
double *  stiini,
double *  vini,
ITG ikboun,
ITG ilboun,
double *  ener,
double *  enern,
double *  emeini,
double *  xstaten,
double *  eei,
double *  enerini,
double *  cocon,
ITG ncocon,
char *  set,
ITG nset,
ITG istartset,
ITG iendset,
ITG ialset,
ITG nprint,
char *  prlab,
char *  prset,
double *  qfx,
double *  qfn,
double *  trab,
ITG inotr,
ITG ntrans,
double *  fmpc,
ITG nelemload,
ITG nload,
ITG ikmpc,
ITG ilmpc,
ITG istep,
ITG iinc,
double *  springarea,
double *  reltime,
ITG ne0,
double *  xforc,
ITG nforc,
double *  thicke,
double *  shcon,
ITG nshcon,
char *  sideload,
double *  xload,
double *  xloadold,
ITG icfd,
ITG inomat,
double *  pslavsurf,
double *  pmastsurf,
ITG mortar,
ITG islavact,
double *  cdn,
ITG islavnode,
ITG nslavnode,
ITG ntie,
double *  clearini,
ITG islavsurf,
ITG ielprop,
double *  prop 
)

Definition at line 42 of file results.c.

72  {
73 
74  ITG intpointvarm,calcul_fn,calcul_f,calcul_qa,calcul_cauchy,iener,ikin,
75  intpointvart,mt=mi[1]+1,i,j,*ithread=NULL;
76 
77  /*
78 
79  calculating integration point values (strains, stresses,
80  heat fluxes, material tangent matrices and nodal forces)
81 
82  storing the nodal and integration point results in the
83  .dat file
84 
85  iout=-2: v is assumed to be known and is used to
86  calculate strains, stresses..., no result output
87  corresponds to iout=-1 with in addition the
88  calculation of the internal energy density
89  iout=-1: v is assumed to be known and is used to
90  calculate strains, stresses..., no result output;
91  is used to take changes in SPC's and MPC's at the
92  start of a new increment or iteration into account
93  iout=0: v is calculated from the system solution
94  and strains, stresses.. are calculated, no result output
95  iout=1: v is calculated from the system solution and strains,
96  stresses.. are calculated, requested results output
97  iout=2: v is assumed to be known and is used to
98  calculate strains, stresses..., requested results output */
99 
100  /* variables for multithreading procedure */
101 
102  ITG sys_cpus;
103  char *env,*envloc,*envsys;
104 
105  num_cpus = 0;
106  sys_cpus=0;
107 
108  /* explicit user declaration prevails */
109 
110  envsys=getenv("NUMBER_OF_CPUS");
111  if(envsys){
112  sys_cpus=atoi(envsys);
113  if(sys_cpus<0) sys_cpus=0;
114  }
115 
116  /* automatic detection of available number of processors */
117 
118  if(sys_cpus==0){
119  sys_cpus = getSystemCPUs();
120  if(sys_cpus<1) sys_cpus=1;
121  }
122 
123  /* local declaration prevails, if strictly positive */
124 
125  envloc = getenv("CCX_NPROC_RESULTS");
126  if(envloc){
127  num_cpus=atoi(envloc);
128  if(num_cpus<0){
129  num_cpus=0;
130  }else if(num_cpus>sys_cpus){
131  num_cpus=sys_cpus;
132  }
133 
134  }
135 
136  /* else global declaration, if any, applies */
137 
138  env = getenv("OMP_NUM_THREADS");
139  if(num_cpus==0){
140  if (env)
141  num_cpus = atoi(env);
142  if (num_cpus < 1) {
143  num_cpus=1;
144  }else if(num_cpus>sys_cpus){
145  num_cpus=sys_cpus;
146  }
147  }
148 
149 // next line is to be inserted in a similar way for all other paralell parts
150 
151  if(*ne<num_cpus) num_cpus=*ne;
152 
153  pthread_t tid[num_cpus];
154 
155  /* 1. nodewise storage of the primary variables
156  2. determination which derived variables have to be calculated */
157 
158  FORTRAN(resultsini,(nk,v,ithermal,filab,iperturb,f,fn,
159  nactdof,iout,qa,vold,b,nodeboun,ndirboun,
160  xboun,nboun,ipompc,nodempc,coefmpc,labmpc,nmpc,nmethod,cam,neq,
161  veold,accold,bet,gam,dtime,mi,vini,nprint,prlab,
162  &intpointvarm,&calcul_fn,&calcul_f,&calcul_qa,&calcul_cauchy,&iener,
163  &ikin,&intpointvart,xforc,nforc));
164 
165  /* next statement allows for storing the displacements in each
166  iteration: for debugging purposes */
167 
168  if((strcmp1(&filab[3],"I")==0)&&(*iout==0)){
169  FORTRAN(frditeration,(co,nk,kon,ipkon,lakon,ne,v,
170  ttime,ielmat,matname,mi,istep,iinc,ithermal));
171  }
172 
173  /* calculating the stresses and material tangent at the
174  integration points; calculating the internal forces */
175 
176  if(((ithermal[0]<=1)||(ithermal[0]>=3))&&(intpointvarm==1)){
177 
178  NNEW(fn1,double,num_cpus*mt**nk);
179  NNEW(qa1,double,num_cpus*3);
180  NNEW(nal,ITG,num_cpus);
181 
182  co1=co;kon1=kon;ipkon1=ipkon;lakon1=lakon;ne1=ne;v1=v;
183  stx1=stx;elcon1=elcon;nelcon1=nelcon;rhcon1=rhcon;
184  nrhcon1=nrhcon;alcon1=alcon;nalcon1=nalcon;alzero1=alzero;
185  ielmat1=ielmat;ielorien1=ielorien,norien1=norien,orab1=orab;
186  ntmat1_=ntmat_;t01=t0;t11=t1;ithermal1=ithermal;prestr1=prestr;
187  iprestr1=iprestr;eme1=eme;iperturb1=iperturb;iout1=iout;
188  vold1=vold;nmethod1=nmethod;veold1=veold;dtime1=dtime;
189  time1=time;ttime1=ttime;plicon1=plicon;nplicon1=nplicon;
190  plkcon1=plkcon;nplkcon1=nplkcon;xstateini1=xstateini;
191  xstiff1=xstiff;xstate1=xstate;npmat1_=npmat_;matname1=matname;
192  mi1=mi;ielas1=ielas;icmd1=icmd;ncmat1_=ncmat_;nstate1_=nstate_;
193  stiini1=stiini;vini1=vini;ener1=ener;eei1=eei;enerini1=enerini;
194  istep1=istep;iinc1=iinc;springarea1=springarea;reltime1=reltime;
195  calcul_fn1=calcul_fn;calcul_qa1=calcul_qa;calcul_cauchy1=calcul_cauchy;
196  iener1=iener;ikin1=ikin;mt1=mt;nk1=nk;ne01=ne0;thicke1=thicke;
197  emeini1=emeini;pslavsurf1=pslavsurf;clearini1=clearini;
198  pmastsurf1=pmastsurf;mortar1=mortar;ielprop1=ielprop;prop1=prop;
199 
200  /* calculating the stresses */
201 
202  if(((*nmethod!=4)&&(*nmethod!=5))||(iperturb[0]>1)){
203  printf(" Using up to %" ITGFORMAT " cpu(s) for the stress calculation.\n\n", num_cpus);
204  }
205 
206  /* create threads and wait */
207 
208  NNEW(ithread,ITG,num_cpus);
209  for(i=0; i<num_cpus; i++) {
210  ithread[i]=i;
211  pthread_create(&tid[i], NULL, (void *)resultsmechmt, (void *)&ithread[i]);
212  }
213  for(i=0; i<num_cpus; i++) pthread_join(tid[i], NULL);
214 
215  for(i=0;i<mt**nk;i++){
216  fn[i]=fn1[i];
217  }
218  for(i=0;i<mt**nk;i++){
219  for(j=1;j<num_cpus;j++){
220  fn[i]+=fn1[i+j*mt**nk];
221  }
222  }
223  SFREE(fn1);SFREE(ithread);
224 
225  /* determine the internal force */
226 
227  qa[0]=qa1[0];
228  for(j=1;j<num_cpus;j++){
229  qa[0]+=qa1[j*3];
230  }
231 
232  /* determine the decrease of the time increment in case
233  the material routine diverged */
234 
235  for(j=0;j<num_cpus;j++){
236  if(qa1[2+j*3]>0.){
237  if(qa[2]<0.){
238  qa[2]=qa1[2+j*3];
239  }else{
240  if(qa1[2+j*3]<qa[2]){qa[2]=qa1[2+j*3];}
241  }
242  }
243  }
244 
245  SFREE(qa1);
246 
247  for(j=1;j<num_cpus;j++){
248  nal[0]+=nal[j];
249  }
250 
251  if(calcul_qa==1){
252  if(nal[0]>0){
253  qa[0]/=nal[0];
254  }
255  }
256  SFREE(nal);
257  }
258 
259  /* calculating the thermal flux and material tangent at the
260  integration points; calculating the internal point flux */
261 
262  if((ithermal[0]>=2)&&(intpointvart==1)){
263 
264  NNEW(fn1,double,num_cpus*mt**nk);
265  NNEW(qa1,double,num_cpus*3);
266  NNEW(nal,ITG,num_cpus);
267 
268  co1=co;kon1=kon;ipkon1=ipkon;lakon1=lakon;v1=v;
269  elcon1=elcon;nelcon1=nelcon;rhcon1=rhcon;nrhcon1=nrhcon;
270  ielmat1=ielmat;ielorien1=ielorien;norien1=norien;orab1=orab;
271  ntmat1_=ntmat_;t01=t0;iperturb1=iperturb;iout1=iout;vold1=vold;
272  ipompc1=ipompc;nodempc1=nodempc;coefmpc1=coefmpc;nmpc1=nmpc;
273  dtime1=dtime;time1=time;ttime1=ttime;plkcon1=plkcon;
274  nplkcon1=nplkcon;xstateini1=xstateini;xstiff1=xstiff;
275  xstate1=xstate;npmat1_=npmat_;matname1=matname;mi1=mi;
276  ncmat1_=ncmat_;nstate1_=nstate_;cocon1=cocon;ncocon1=ncocon;
277  qfx1=qfx;ikmpc1=ikmpc;ilmpc1=ilmpc;istep1=istep;iinc1=iinc;
278  springarea1=springarea;calcul_fn1=calcul_fn;calcul_qa1=calcul_qa;
279  mt1=mt;nk1=nk;shcon1=shcon;nshcon1=nshcon;ithermal1=ithermal;
280  nelemload1=nelemload;nload1=nload;nmethod1=nmethod;reltime1=reltime;
281  sideload1=sideload;xload1=xload;xloadold1=xloadold;
282  pslavsurf1=pslavsurf;pmastsurf1=pmastsurf;mortar1=mortar;
283  clearini1=clearini;plicon1=plicon;nplicon1=nplicon;ne1=ne;
284  ielprop1=ielprop,prop1=prop;
285 
286  /* calculating the heat flux */
287 
288  printf(" Using up to %" ITGFORMAT " cpu(s) for the heat flux calculation.\n\n", num_cpus);
289 
290  /* create threads and wait */
291 
292  NNEW(ithread,ITG,num_cpus);
293  for(i=0; i<num_cpus; i++) {
294  ithread[i]=i;
295  pthread_create(&tid[i], NULL, (void *)resultsthermmt, (void *)&ithread[i]);
296  }
297  for(i=0; i<num_cpus; i++) pthread_join(tid[i], NULL);
298 
299  for(i=0;i<*nk;i++){
300  fn[mt*i]=fn1[mt*i];
301  }
302  for(i=0;i<*nk;i++){
303  for(j=1;j<num_cpus;j++){
304  fn[mt*i]+=fn1[mt*i+j*mt**nk];
305  }
306  }
307  SFREE(fn1);SFREE(ithread);
308 
309  /* determine the internal concentrated heat flux */
310 
311  qa[1]=qa1[1];
312  for(j=1;j<num_cpus;j++){
313  qa[1]+=qa1[1+j*3];
314  }
315 
316  SFREE(qa1);
317 
318  for(j=1;j<num_cpus;j++){
319  nal[0]+=nal[j];
320  }
321 
322  if(calcul_qa==1){
323  if(nal[0]>0){
324  qa[1]/=nal[0];
325  }
326  }
327  SFREE(nal);
328  }
329 
330  /* calculating the matrix system internal force vector */
331 
332  FORTRAN(resultsforc,(nk,f,fn,nactdof,ipompc,nodempc,
333  coefmpc,labmpc,nmpc,mi,fmpc,&calcul_fn,&calcul_f));
334 
335  /* storing results in the .dat file
336  extrapolation of integration point values to the nodes
337  interpolation of 3d results for 1d/2d elements */
338 
339  FORTRAN(resultsprint,(co,nk,kon,ipkon,lakon,ne,v,stn,inum,
340  stx,ielorien,norien,orab,t1,ithermal,filab,een,iperturb,fn,
341  nactdof,iout,vold,nodeboun,ndirboun,nboun,nmethod,ttime,xstate,
342  epn,mi,
343  nstate_,ener,enern,xstaten,eei,set,nset,istartset,iendset,
344  ialset,nprint,prlab,prset,qfx,qfn,trab,inotr,ntrans,
345  nelemload,nload,&ikin,ielmat,thicke,eme,emn,rhcon,nrhcon,shcon,
346  nshcon,cocon,ncocon,ntmat_,sideload,icfd,inomat,pslavsurf,islavact,
347  cdn,mortar,islavnode,nslavnode,ntie,islavsurf,time,ielprop,prop,
348  veold));
349 
350  return;
351 
352 }
static double * prestr1
Definition: results.c:35
#define ITGFORMAT
Definition: CalculiX.h:52
subroutine resultsforc(nk, f, fn, nactdof, ipompc, nodempc, coefmpc, labmpc, nmpc, mi, fmpc, calcul_fn, calcul_f)
Definition: resultsforc.f:19
static ITG * icmd1
Definition: results.c:27
static double * t11
Definition: results.c:35
void * resultsmechmt(ITG *i)
Definition: results.c:356
static ITG * nmethod1
Definition: results.c:27
static double * xload1
Definition: results.c:36
static double * dtime1
Definition: results.c:36
static double * qa1
Definition: results.c:36
static double * xstate1
Definition: results.c:36
static double * ener1
Definition: results.c:36
static ITG * npmat1_
Definition: results.c:27
int pthread_create(pthread_t *thread_id, const pthread_attr_t *attributes, void *(*thread_function)(void *), void *arguments)
static double * xstiff1
Definition: results.c:36
static ITG * istep1
Definition: results.c:27
static ITG * ithermal1
Definition: results.c:27
static ITG num_cpus
Definition: results.c:31
void FORTRAN(addimdnodecload,(ITG *nodeforc, ITG *i, ITG *imdnode, ITG *nmdnode, double *xforc, ITG *ikmpc, ITG *ilmpc, ITG *ipompc, ITG *nodempc, ITG *nmpc, ITG *imddof, ITG *nmddof, ITG *nactdof, ITG *mi, ITG *imdmpc, ITG *nmdmpc, ITG *imdboun, ITG *nmdboun, ITG *ikboun, ITG *nboun, ITG *ilboun, ITG *ithermal))
static double * springarea1
Definition: results.c:36
static double * veold1
Definition: results.c:36
static ITG * nmpc1
Definition: results.c:31
static double * eme1
Definition: results.c:35
static ITG * iprestr1
Definition: results.c:27
static ITG * ipompc1
Definition: results.c:31
static char * matname1
Definition: results.c:25
static ITG calcul_qa1
Definition: results.c:27
static ITG * mortar1
Definition: results.c:31
static ITG * nelemload1
Definition: results.c:31
subroutine resultsini(nk, v, ithermal, filab, iperturb, f, fn, nactdof, iout, qa, vold, b, nodeboun, ndirboun, xboun, nboun, ipompc, nodempc, coefmpc, labmpc, nmpc, nmethod, cam, neq, veold, accold, bet, gam, dtime, mi, vini, nprint, prlab, intpointvarm, calcul_fn, calcul_f, calcul_qa, calcul_cauchy, iener, ikin, intpointvart, xforc, nforc)
Definition: resultsini.f:19
static double * qfx1
Definition: results.c:36
ITG strcmp1(const char *s1, const char *s2)
Definition: strcmp1.c:24
static double * time1
Definition: results.c:36
static ITG * nodempc1
Definition: results.c:31
static double * pmastsurf1
Definition: results.c:36
subroutine frditeration(co, nk, kon, ipkon, lakon, ne, v, time, ielmat, matname, mi, istep, iinc, ithermal)
Definition: frditeration.f:19
static double * rhcon1
Definition: results.c:35
static ITG * iout1
Definition: results.c:27
void * resultsthermmt(ITG *i)
Definition: results.c:389
static double * fn1
Definition: results.c:36
static ITG * ne1
Definition: results.c:27
ITG getSystemCPUs()
Definition: getSystemCPUs.c:40
subroutine resultsprint(co, nk, kon, ipkon, lakon, ne, v, stn, inum, stx, ielorien, norien, orab, t1, ithermal, filab, een, iperturb, fn, nactdof, iout, vold, nodeboun, ndirboun, nboun, nmethod, ttime, xstate, epn, mi, nstate_, ener, enern, xstaten, eei, set, nset, istartset, iendset, ialset, nprint, prlab, prset, qfx, qfn, trab, inotr, ntrans, nelemload, nload, ikin, ielmat, thicke, eme, emn, rhcon, nrhcon, shcon, nshcon, cocon, ncocon, ntmat_, sideload, icfd, inomat, pslavsurf, islavact, cdn, mortar, islavnode, nslavnode, ntie, islavsurf, time, ielprop, prop, veold)
Definition: resultsprint.f:19
static double * prop1
Definition: results.c:36
static ITG ikin1
Definition: results.c:27
static double * t01
Definition: results.c:35
static double * shcon1
Definition: results.c:36
static ITG calcul_fn1
Definition: results.c:27
static double * cocon1
Definition: results.c:36
static double * thicke1
Definition: results.c:36
static ITG * ielmat1
Definition: results.c:27
static double * vini1
Definition: results.c:36
static ITG * nplkcon1
Definition: results.c:27
static double * coefmpc1
Definition: results.c:36
static double * co1
Definition: results.c:35
#define SFREE(a)
Definition: CalculiX.h:41
static ITG * nalcon1
Definition: results.c:27
static ITG * ipkon1
Definition: results.c:27
static char * sideload1
Definition: results.c:25
static ITG iener1
Definition: results.c:27
static ITG mt1
Definition: results.c:31
static double * alzero1
Definition: results.c:35
static ITG * norien1
Definition: results.c:27
static double * vold1
Definition: results.c:36
static ITG * ne01
Definition: results.c:31
static double * reltime1
Definition: results.c:36
static double * stx1
Definition: results.c:35
static double * elcon1
Definition: results.c:35
static ITG * ielas1
Definition: results.c:27
static double * xloadold1
Definition: results.c:36
static ITG * nrhcon1
Definition: results.c:27
static double * orab1
Definition: results.c:35
static double * xstateini1
Definition: results.c:36
static ITG * nplicon1
Definition: results.c:27
static ITG * nk1
Definition: results.c:31
static ITG * mi1
Definition: results.c:27
static ITG calcul_cauchy1
Definition: results.c:27
static ITG * iinc1
Definition: results.c:27
static double * plkcon1
Definition: results.c:36
static double * emeini1
Definition: results.c:36
static ITG * nshcon1
Definition: results.c:31
static ITG * ikmpc1
Definition: results.c:31
static ITG * ielorien1
Definition: results.c:27
static double * stiini1
Definition: results.c:36
int pthread_join(pthread_t thread, void **status_ptr)
static char * lakon1
Definition: results.c:25
static ITG * ncmat1_
Definition: results.c:27
static ITG * nal
Definition: results.c:31
static double * alcon1
Definition: results.c:35
static double * clearini1
Definition: results.c:36
static ITG * ntmat1_
Definition: results.c:27
static double * plicon1
Definition: results.c:36
static ITG * ilmpc1
Definition: results.c:31
static ITG * ncocon1
Definition: results.c:31
#define ITG
Definition: CalculiX.h:51
static double * eei1
Definition: results.c:36
static double * enerini1
Definition: results.c:36
static ITG * nstate1_
Definition: results.c:27
static double * ttime1
Definition: results.c:36
#define NNEW(a, b, c)
Definition: CalculiX.h:39
static ITG * kon1
Definition: results.c:27
static double * v1
Definition: results.c:35
static ITG * nelcon1
Definition: results.c:27
static double * pslavsurf1
Definition: results.c:36
static ITG * nload1
Definition: results.c:31
static ITG * iperturb1
Definition: results.c:27
static ITG * ielprop1
Definition: results.c:31
void* resultsmechmt ( ITG i)

Definition at line 356 of file results.c.

356  {
357 
358  ITG indexfn,indexqa,indexnal,nea,neb,nedelta;
359 
360  indexfn=*i*mt1**nk1;
361  indexqa=*i*3;
362  indexnal=*i;
363 
364 // ceil -> floor
365 
366  nedelta=(ITG)floor(*ne1/(double)num_cpus);
367  nea=*i*nedelta+1;
368  neb=(*i+1)*nedelta;
369 // next line! -> all parallel sections
370  if((*i==num_cpus-1)&&(neb<*ne1)) neb=*ne1;
371 
375  iprestr1,eme1,iperturb1,&fn1[indexfn],iout1,&qa1[indexqa],vold1,
376  nmethod1,
381  &ikin1,&nal[indexnal],ne01,thicke1,emeini1,
383 
384  return NULL;
385 }
static double * prestr1
Definition: results.c:35
static ITG * icmd1
Definition: results.c:27
static double * t11
Definition: results.c:35
static ITG * nmethod1
Definition: results.c:27
static double * dtime1
Definition: results.c:36
static double * qa1
Definition: results.c:36
static double * xstate1
Definition: results.c:36
static double * ener1
Definition: results.c:36
static ITG * npmat1_
Definition: results.c:27
static double * xstiff1
Definition: results.c:36
static ITG * istep1
Definition: results.c:27
static ITG * ithermal1
Definition: results.c:27
static ITG num_cpus
Definition: results.c:31
void FORTRAN(addimdnodecload,(ITG *nodeforc, ITG *i, ITG *imdnode, ITG *nmdnode, double *xforc, ITG *ikmpc, ITG *ilmpc, ITG *ipompc, ITG *nodempc, ITG *nmpc, ITG *imddof, ITG *nmddof, ITG *nactdof, ITG *mi, ITG *imdmpc, ITG *nmdmpc, ITG *imdboun, ITG *nmdboun, ITG *ikboun, ITG *nboun, ITG *ilboun, ITG *ithermal))
static double * springarea1
Definition: results.c:36
static double * veold1
Definition: results.c:36
static double * eme1
Definition: results.c:35
static ITG * iprestr1
Definition: results.c:27
static char * matname1
Definition: results.c:25
static ITG calcul_qa1
Definition: results.c:27
static ITG * mortar1
Definition: results.c:31
static double * time1
Definition: results.c:36
static double * pmastsurf1
Definition: results.c:36
static double * rhcon1
Definition: results.c:35
static ITG * iout1
Definition: results.c:27
static double * fn1
Definition: results.c:36
static ITG * ne1
Definition: results.c:27
static double * prop1
Definition: results.c:36
static ITG ikin1
Definition: results.c:27
static double * t01
Definition: results.c:35
static ITG calcul_fn1
Definition: results.c:27
static double * thicke1
Definition: results.c:36
static ITG * ielmat1
Definition: results.c:27
static double * vini1
Definition: results.c:36
static ITG * nplkcon1
Definition: results.c:27
static double * co1
Definition: results.c:35
static ITG * nalcon1
Definition: results.c:27
static ITG * ipkon1
Definition: results.c:27
static ITG iener1
Definition: results.c:27
static ITG mt1
Definition: results.c:31
static double * alzero1
Definition: results.c:35
static ITG * norien1
Definition: results.c:27
static double * vold1
Definition: results.c:36
static ITG * ne01
Definition: results.c:31
static double * reltime1
Definition: results.c:36
static double * stx1
Definition: results.c:35
static double * elcon1
Definition: results.c:35
static ITG * ielas1
Definition: results.c:27
static ITG * nrhcon1
Definition: results.c:27
static double * orab1
Definition: results.c:35
static double * xstateini1
Definition: results.c:36
static ITG * nplicon1
Definition: results.c:27
static ITG * nk1
Definition: results.c:31
static ITG * mi1
Definition: results.c:27
static ITG calcul_cauchy1
Definition: results.c:27
static ITG * iinc1
Definition: results.c:27
static double * plkcon1
Definition: results.c:36
static double * emeini1
Definition: results.c:36
static ITG * ielorien1
Definition: results.c:27
static double * stiini1
Definition: results.c:36
static char * lakon1
Definition: results.c:25
static ITG * ncmat1_
Definition: results.c:27
static ITG * nal
Definition: results.c:31
static double * alcon1
Definition: results.c:35
static double * clearini1
Definition: results.c:36
static ITG * ntmat1_
Definition: results.c:27
static double * plicon1
Definition: results.c:36
#define ITG
Definition: CalculiX.h:51
static double * eei1
Definition: results.c:36
static double * enerini1
Definition: results.c:36
static ITG * nstate1_
Definition: results.c:27
static double * ttime1
Definition: results.c:36
subroutine resultsmech(co, kon, ipkon, lakon, ne, v, stx, elcon, nelcon, rhcon, nrhcon, alcon, nalcon, alzero, ielmat, ielorien, norien, orab, ntmat_, t0, t1, ithermal, prestr, iprestr, eme, iperturb, fn, iout, qa, vold, nmethod, veold, dtime, time, ttime, plicon, nplicon, plkcon, nplkcon, xstateini, xstiff, xstate, npmat_, matname, mi, ielas, icmd, ncmat_, nstate_, stiini, vini, ener, eei, enerini, istep, iinc, springarea, reltime, calcul_fn, calcul_qa, calcul_cauchy, iener, ikin, nal, ne0, thicke, emeini, pslavsurf, pmastsurf, mortar, clearini, nea, neb, ielprop, prop)
Definition: resultsmech.f:19
static ITG * kon1
Definition: results.c:27
static double * v1
Definition: results.c:35
static ITG * nelcon1
Definition: results.c:27
static double * pslavsurf1
Definition: results.c:36
static ITG * iperturb1
Definition: results.c:27
static ITG * ielprop1
Definition: results.c:31
void* resultsthermmt ( ITG i)

Definition at line 389 of file results.c.

389  {
390 
391  ITG indexfn,indexqa,indexnal,nea,neb,nedelta;
392 
393  indexfn=*i*mt1**nk1;
394  indexqa=*i*3;
395  indexnal=*i;
396 
397  nedelta=(ITG)floor(*ne1/(double)num_cpus);
398  nea=*i*nedelta+1;
399  neb=(*i+1)*nedelta;
400  if((*i==num_cpus-1)&&(neb<*ne1)) neb=*ne1;
401 
409  &calcul_fn1,&calcul_qa1,&nal[indexnal],&nea,&neb,ithermal1,
412  prop1));
413 
414  return NULL;
415 }
static ITG * nmethod1
Definition: results.c:27
static double * xload1
Definition: results.c:36
static double * dtime1
Definition: results.c:36
static double * qa1
Definition: results.c:36
static double * xstate1
Definition: results.c:36
static ITG * npmat1_
Definition: results.c:27
static double * xstiff1
Definition: results.c:36
static ITG * istep1
Definition: results.c:27
static ITG * ithermal1
Definition: results.c:27
static ITG num_cpus
Definition: results.c:31
void FORTRAN(addimdnodecload,(ITG *nodeforc, ITG *i, ITG *imdnode, ITG *nmdnode, double *xforc, ITG *ikmpc, ITG *ilmpc, ITG *ipompc, ITG *nodempc, ITG *nmpc, ITG *imddof, ITG *nmddof, ITG *nactdof, ITG *mi, ITG *imdmpc, ITG *nmdmpc, ITG *imdboun, ITG *nmdboun, ITG *ikboun, ITG *nboun, ITG *ilboun, ITG *ithermal))
static double * springarea1
Definition: results.c:36
static ITG * nmpc1
Definition: results.c:31
static ITG * ipompc1
Definition: results.c:31
static char * matname1
Definition: results.c:25
static ITG calcul_qa1
Definition: results.c:27
static ITG * mortar1
Definition: results.c:31
static ITG * nelemload1
Definition: results.c:31
static double * qfx1
Definition: results.c:36
static double * time1
Definition: results.c:36
static ITG * nodempc1
Definition: results.c:31
static double * pmastsurf1
Definition: results.c:36
static double * rhcon1
Definition: results.c:35
static ITG * iout1
Definition: results.c:27
static double * fn1
Definition: results.c:36
static ITG * ne1
Definition: results.c:27
static double * prop1
Definition: results.c:36
static double * t01
Definition: results.c:35
static double * shcon1
Definition: results.c:36
static ITG calcul_fn1
Definition: results.c:27
static double * cocon1
Definition: results.c:36
static ITG * ielmat1
Definition: results.c:27
static ITG * nplkcon1
Definition: results.c:27
static double * coefmpc1
Definition: results.c:36
static double * co1
Definition: results.c:35
static ITG * ipkon1
Definition: results.c:27
static char * sideload1
Definition: results.c:25
static ITG mt1
Definition: results.c:31
static ITG * norien1
Definition: results.c:27
static double * vold1
Definition: results.c:36
static double * reltime1
Definition: results.c:36
static double * elcon1
Definition: results.c:35
static double * xloadold1
Definition: results.c:36
static ITG * nrhcon1
Definition: results.c:27
static double * orab1
Definition: results.c:35
static double * xstateini1
Definition: results.c:36
static ITG * nplicon1
Definition: results.c:27
static ITG * nk1
Definition: results.c:31
static ITG * mi1
Definition: results.c:27
static ITG * iinc1
Definition: results.c:27
static double * plkcon1
Definition: results.c:36
subroutine resultstherm(co, kon, ipkon, lakon, v, elcon, nelcon, rhcon, nrhcon, ielmat, ielorien, norien, orab, ntmat_, t0, iperturb, fn, shcon, nshcon, iout, qa, vold, ipompc, nodempc, coefmpc, nmpc, dtime, time, ttime, plkcon, nplkcon, xstateini, xstiff, xstate, npmat_, matname, mi, ncmat_, nstate_, cocon, ncocon, qfx, ikmpc, ilmpc, istep, iinc, springarea, calcul_fn, calcul_qa, nal, nea, neb, ithermal, nelemload, nload, nmethod, reltime, sideload, xload, xloadold, pslavsurf, pmastsurf, mortar, clearini, plicon, nplicon, ielprop, prop)
Definition: resultstherm.f:19
static ITG * nshcon1
Definition: results.c:31
static ITG * ikmpc1
Definition: results.c:31
static ITG * ielorien1
Definition: results.c:27
static char * lakon1
Definition: results.c:25
static ITG * ncmat1_
Definition: results.c:27
static ITG * nal
Definition: results.c:31
static double * clearini1
Definition: results.c:36
static ITG * ntmat1_
Definition: results.c:27
static double * plicon1
Definition: results.c:36
static ITG * ilmpc1
Definition: results.c:31
static ITG * ncocon1
Definition: results.c:31
#define ITG
Definition: CalculiX.h:51
static ITG * nstate1_
Definition: results.c:27
static double * ttime1
Definition: results.c:36
static ITG * kon1
Definition: results.c:27
static double * v1
Definition: results.c:35
static ITG * nelcon1
Definition: results.c:27
static double * pslavsurf1
Definition: results.c:36
static ITG * nload1
Definition: results.c:31
static ITG * iperturb1
Definition: results.c:27
static ITG * ielprop1
Definition: results.c:31

Variable Documentation

double * alcon1
static

Definition at line 35 of file results.c.

double * alzero1
static

Definition at line 35 of file results.c.

ITG calcul_cauchy1
static

Definition at line 27 of file results.c.

ITG calcul_fn1
static

Definition at line 27 of file results.c.

ITG calcul_qa1
static

Definition at line 27 of file results.c.

double * clearini1
static

Definition at line 36 of file results.c.

double* co1
static

Definition at line 35 of file results.c.

double * cocon1
static

Definition at line 36 of file results.c.

double * coefmpc1
static

Definition at line 36 of file results.c.

double * dtime1
static

Definition at line 36 of file results.c.

double * eei1
static

Definition at line 36 of file results.c.

double * elcon1
static

Definition at line 35 of file results.c.

double * eme1
static

Definition at line 35 of file results.c.

double * emeini1
static

Definition at line 36 of file results.c.

double * ener1
static

Definition at line 36 of file results.c.

double * enerini1
static

Definition at line 36 of file results.c.

double * fn1 =NULL
static

Definition at line 36 of file results.c.

ITG * icmd1
static

Definition at line 27 of file results.c.

ITG * ielas1
static

Definition at line 27 of file results.c.

ITG * ielmat1
static

Definition at line 27 of file results.c.

ITG * ielorien1
static

Definition at line 27 of file results.c.

ITG * ielprop1
static

Definition at line 31 of file results.c.

ITG iener1
static

Definition at line 27 of file results.c.

ITG * iinc1
static

Definition at line 27 of file results.c.

ITG ikin1
static

Definition at line 27 of file results.c.

ITG * ikmpc1
static

Definition at line 31 of file results.c.

ITG * ilmpc1
static

Definition at line 31 of file results.c.

ITG * iout1
static

Definition at line 27 of file results.c.

ITG * iperturb1
static

Definition at line 27 of file results.c.

ITG * ipkon1
static

Definition at line 27 of file results.c.

ITG * ipompc1
static

Definition at line 31 of file results.c.

ITG * iprestr1
static

Definition at line 27 of file results.c.

ITG * istep1
static

Definition at line 27 of file results.c.

ITG * ithermal1
static

Definition at line 27 of file results.c.

ITG* kon1
static

Definition at line 27 of file results.c.

char* lakon1
static

Definition at line 25 of file results.c.

char * matname1
static

Definition at line 25 of file results.c.

ITG * mi1
static

Definition at line 27 of file results.c.

ITG * mortar1
static

Definition at line 31 of file results.c.

ITG mt1
static

Definition at line 31 of file results.c.

ITG * nal =NULL
static

Definition at line 31 of file results.c.

ITG * nalcon1
static

Definition at line 27 of file results.c.

ITG * ncmat1_
static

Definition at line 27 of file results.c.

ITG * ncocon1
static

Definition at line 31 of file results.c.

ITG * ne01
static

Definition at line 31 of file results.c.

ITG * ne1
static

Definition at line 27 of file results.c.

ITG * nelcon1
static

Definition at line 27 of file results.c.

ITG * nelemload1
static

Definition at line 31 of file results.c.

ITG * nk1
static

Definition at line 31 of file results.c.

ITG * nload1
static

Definition at line 31 of file results.c.

ITG * nmethod1
static

Definition at line 27 of file results.c.

ITG * nmpc1
static

Definition at line 31 of file results.c.

ITG * nodempc1
static

Definition at line 31 of file results.c.

ITG * norien1
static

Definition at line 27 of file results.c.

ITG * nplicon1
static

Definition at line 27 of file results.c.

ITG * nplkcon1
static

Definition at line 27 of file results.c.

ITG * npmat1_
static

Definition at line 27 of file results.c.

ITG * nrhcon1
static

Definition at line 27 of file results.c.

ITG * nshcon1
static

Definition at line 31 of file results.c.

ITG * nstate1_
static

Definition at line 27 of file results.c.

ITG * ntmat1_
static

Definition at line 27 of file results.c.

ITG num_cpus
static

Definition at line 31 of file results.c.

double * orab1
static

Definition at line 35 of file results.c.

double * plicon1
static

Definition at line 36 of file results.c.

double * plkcon1
static

Definition at line 36 of file results.c.

double * pmastsurf1
static

Definition at line 36 of file results.c.

double * prestr1
static

Definition at line 35 of file results.c.

double * prop1
static

Definition at line 36 of file results.c.

double * pslavsurf1
static

Definition at line 36 of file results.c.

double * qa1 =NULL
static

Definition at line 36 of file results.c.

double * qfx1
static

Definition at line 36 of file results.c.

double * reltime1
static

Definition at line 36 of file results.c.

double * rhcon1
static

Definition at line 35 of file results.c.

double * shcon1
static

Definition at line 36 of file results.c.

char * sideload1
static

Definition at line 25 of file results.c.

double * springarea1
static

Definition at line 36 of file results.c.

double * stiini1
static

Definition at line 36 of file results.c.

double * stx1
static

Definition at line 35 of file results.c.

double * t01
static

Definition at line 35 of file results.c.

double * t11
static

Definition at line 35 of file results.c.

double * thicke1
static

Definition at line 36 of file results.c.

double * time1
static

Definition at line 36 of file results.c.

double * ttime1
static

Definition at line 36 of file results.c.

double * v1
static

Definition at line 35 of file results.c.

double * veold1
static

Definition at line 36 of file results.c.

double * vini1
static

Definition at line 36 of file results.c.

double * vold1
static

Definition at line 36 of file results.c.

double * xload1
static

Definition at line 36 of file results.c.

double * xloadold1
static

Definition at line 36 of file results.c.

double * xstate1
static

Definition at line 36 of file results.c.

double * xstateini1
static

Definition at line 36 of file results.c.

double * xstiff1
static

Definition at line 36 of file results.c.

Hosted by OpenAircraft.com, (Michigan UAV, LLC)