CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
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, double *energyini, double *energy, ITG *kscale, ITG *iponoel, ITG *inoel, ITG *nener, char *orname, ITG *network, ITG *ipobody, double *xbody, ITG *ibody)
 
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 ITGnener1
 
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 ITGkscale1
 
static ITGiponoel1
 
static ITGinoel1
 
static ITGnetwork1
 
static ITGipobody1
 
static ITGibody1
 
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
 
static double * xbody1
 

Function Documentation

◆ results()

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

◆ resultsmechmt()

void* resultsmechmt ( ITG i)
376  {
377 
378  ITG indexfn,indexqa,indexnal,nea,neb,nedelta;
379 
380  indexfn=*i*mt1**nk1;
381  indexqa=*i*4;
382  indexnal=*i;
383 
384 // ceil -> floor
385 
386  nedelta=(ITG)floor(*ne1/(double)num_cpus);
387  nea=*i*nedelta+1;
388  neb=(*i+1)*nedelta;
389 // next line! -> all parallel sections
390  if((*i==num_cpus-1)&&(neb<*ne1)) neb=*ne1;
391 
395  iprestr1,eme1,iperturb1,&fn1[indexfn],iout1,&qa1[indexqa],vold1,
396  nmethod1,
401  &ikin1,&nal[indexnal],ne01,thicke1,emeini1,
403 
404  return NULL;
405 }
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
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 * kscale1
Definition: results.c:31
void FORTRAN(actideacti,(char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, char *objectset, ITG *ipkon, ITG *ibject, ITG *ne))
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 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
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, nener, ikin, nal, ne0, thicke, emeini, pslavsurf, pmastsurf, mortar, clearini, nea, neb, ielprop, prop, kscale)
Definition: resultsmech.f:29
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 ITG * nener1
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
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

◆ resultsthermmt()

void* resultsthermmt ( ITG i)
409  {
410 
411  ITG indexfn,indexqa,indexnal,nea,neb,nedelta;
412 
413  indexfn=*i*mt1**nk1;
414  indexqa=*i*4;
415  indexnal=*i;
416 
417  nedelta=(ITG)floor(*ne1/(double)num_cpus);
418  nea=*i*nedelta+1;
419  neb=(*i+1)*nedelta;
420  if((*i==num_cpus-1)&&(neb<*ne1)) neb=*ne1;
421 
429  &calcul_fn1,&calcul_qa1,&nal[indexnal],&nea,&neb,ithermal1,
433 
434  return NULL;
435 }
static ITG * inoel1
Definition: results.c:31
static double * xbody1
Definition: results.c:36
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
static double * springarea1
Definition: results.c:36
static ITG * network1
Definition: results.c:31
static ITG * nmpc1
Definition: results.c:31
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, iponoel, inoel, network, ipobody, xbody, ibody)
Definition: resultstherm.f:30
static ITG * ipompc1
Definition: results.c:31
static char * matname1
Definition: results.c:25
static ITG calcul_qa1
Definition: results.c:27
void FORTRAN(actideacti,(char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, char *objectset, ITG *ipkon, ITG *ibject, ITG *ne))
static ITG * mortar1
Definition: results.c:31
static ITG * nelemload1
Definition: results.c:31
static double * qfx1
Definition: results.c:36
static ITG * ipobody1
Definition: results.c:31
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 ITG * iponoel1
Definition: results.c:31
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 ITG * ibody1
Definition: results.c:31
static double * plkcon1
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 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

◆ alcon1

double * alcon1
static

◆ alzero1

double * alzero1
static

◆ calcul_cauchy1

ITG calcul_cauchy1
static

◆ calcul_fn1

ITG calcul_fn1
static

◆ calcul_qa1

ITG calcul_qa1
static

◆ clearini1

double * clearini1
static

◆ co1

double* co1
static

◆ cocon1

double * cocon1
static

◆ coefmpc1

double * coefmpc1
static

◆ dtime1

double * dtime1
static

◆ eei1

double * eei1
static

◆ elcon1

double * elcon1
static

◆ eme1

double * eme1
static

◆ emeini1

double * emeini1
static

◆ ener1

double * ener1
static

◆ enerini1

double * enerini1
static

◆ fn1

double * fn1 =NULL
static

◆ ibody1

ITG * ibody1
static

◆ icmd1

ITG * icmd1
static

◆ ielas1

ITG * ielas1
static

◆ ielmat1

ITG * ielmat1
static

◆ ielorien1

ITG * ielorien1
static

◆ ielprop1

ITG * ielprop1
static

◆ iinc1

ITG * iinc1
static

◆ ikin1

ITG ikin1
static

◆ ikmpc1

ITG * ikmpc1
static

◆ ilmpc1

ITG * ilmpc1
static

◆ inoel1

ITG * inoel1
static

◆ iout1

ITG * iout1
static

◆ iperturb1

ITG * iperturb1
static

◆ ipkon1

ITG * ipkon1
static

◆ ipobody1

ITG * ipobody1
static

◆ ipompc1

ITG * ipompc1
static

◆ iponoel1

ITG * iponoel1
static

◆ iprestr1

ITG * iprestr1
static

◆ istep1

ITG * istep1
static

◆ ithermal1

ITG * ithermal1
static

◆ kon1

ITG* kon1
static

◆ kscale1

ITG * kscale1
static

◆ lakon1

char* lakon1
static

◆ matname1

char * matname1
static

◆ mi1

ITG * mi1
static

◆ mortar1

ITG * mortar1
static

◆ mt1

ITG mt1
static

◆ nal

ITG * nal =NULL
static

◆ nalcon1

ITG * nalcon1
static

◆ ncmat1_

ITG * ncmat1_
static

◆ ncocon1

ITG * ncocon1
static

◆ ne01

ITG * ne01
static

◆ ne1

ITG * ne1
static

◆ nelcon1

ITG * nelcon1
static

◆ nelemload1

ITG * nelemload1
static

◆ nener1

ITG * nener1
static

◆ network1

ITG * network1
static

◆ nk1

ITG * nk1
static

◆ nload1

ITG * nload1
static

◆ nmethod1

ITG * nmethod1
static

◆ nmpc1

ITG * nmpc1
static

◆ nodempc1

ITG * nodempc1
static

◆ norien1

ITG * norien1
static

◆ nplicon1

ITG * nplicon1
static

◆ nplkcon1

ITG * nplkcon1
static

◆ npmat1_

ITG * npmat1_
static

◆ nrhcon1

ITG * nrhcon1
static

◆ nshcon1

ITG * nshcon1
static

◆ nstate1_

ITG * nstate1_
static

◆ ntmat1_

ITG * ntmat1_
static

◆ num_cpus

ITG num_cpus
static

◆ orab1

double * orab1
static

◆ plicon1

double * plicon1
static

◆ plkcon1

double * plkcon1
static

◆ pmastsurf1

double * pmastsurf1
static

◆ prestr1

double * prestr1
static

◆ prop1

double * prop1
static

◆ pslavsurf1

double * pslavsurf1
static

◆ qa1

double * qa1 =NULL
static

◆ qfx1

double * qfx1
static

◆ reltime1

double * reltime1
static

◆ rhcon1

double * rhcon1
static

◆ shcon1

double * shcon1
static

◆ sideload1

char * sideload1
static

◆ springarea1

double * springarea1
static

◆ stiini1

double * stiini1
static

◆ stx1

double * stx1
static

◆ t01

double * t01
static

◆ t11

double * t11
static

◆ thicke1

double * thicke1
static

◆ time1

double * time1
static

◆ ttime1

double * ttime1
static

◆ v1

double * v1
static

◆ veold1

double * veold1
static

◆ vini1

double * vini1
static

◆ vold1

double * vold1
static

◆ xbody1

double * xbody1
static

◆ xload1

double * xload1
static

◆ xloadold1

double * xloadold1
static

◆ xstate1

double * xstate1
static

◆ xstateini1

double * xstateini1
static

◆ xstiff1

double * xstiff1
static
Hosted by OpenAircraft.com, (Michigan UAV, LLC)