CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
results_se.c File Reference
#include <unistd.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "CalculiX.h"
Include dependency graph for results_se.c:

Go to the source code of this file.

Functions

void results_se (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, double *df, double *distmin, ITG *ndesi, ITG *nodedesi, double *sti, ITG *nkon, ITG *jqs, ITG *irows, ITG *nactdofinv, ITG *icoordinate, double *dxstiff, ITG *istartdesi, ITG *ialdesi, double *xdesi, ITG *ieigenfrequency, double *fint, ITG *ishapeenergy)
 
void * resultsmechmt_se (ITG *i)
 

Variables

static char * lakon1
 
static char * matname1
 
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_cauchy1
 
static ITG nener1
 
static ITG ikin1
 
static ITG num_cpus
 
static ITG mt1
 
static ITGnk1
 
static ITGne01
 
static ITGmortar1
 
static ITGielprop1
 
static ITG idesvar1
 
static ITGnodedesi1
 
static ITGnkon1
 
static ITGicoordinate1
 
static ITGialdesi1
 
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 * 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 * thicke1
 
static double * emeini1
 
static double * prop1
 
static double * dxstiff1
 
static double * pslavsurf1
 
static double * pmastsurf1
 
static double * clearini1
 
static double * dfn1
 
static double * fn01
 
static double * sti1
 
static double * xdesi1
 

Function Documentation

◆ results_se()

void results_se ( 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,
double *  df,
double *  distmin,
ITG ndesi,
ITG nodedesi,
double *  sti,
ITG nkon,
ITG jqs,
ITG irows,
ITG nactdofinv,
ITG icoordinate,
double *  dxstiff,
ITG istartdesi,
ITG ialdesi,
double *  xdesi,
ITG ieigenfrequency,
double *  fint,
ITG ishapeenergy 
)
79  {
80 
81  ITG intpointvarm,calcul_fn,calcul_f,calcul_qa,calcul_cauchy,nener,ikin,
82  intpointvart,mt=mi[1]+1,i,j,idesvar,iorien,idir,im,
83  nea,neb;
84 
85  double *dfn=NULL,*fn0=NULL,a[9],pgauss[3],rotvec[3],orabsav[7];
86 
87  /* calculating the sensitivity of the internal forces */
88 
89  /* variables for multithreading procedure */
90 
91  ITG sys_cpus,*ithread=NULL;
92  char *env,*envloc,*envsys;
93 
94  num_cpus = 0;
95  sys_cpus=0;
96 
97  /* explicit user declaration prevails */
98 
99  envsys=getenv("NUMBER_OF_CPUS");
100  if(envsys){
101  sys_cpus=atoi(envsys);
102  if(sys_cpus<0) sys_cpus=0;
103  }
104 
105  /* automatic detection of available number of processors */
106 
107  if(sys_cpus==0){
108  sys_cpus = getSystemCPUs();
109  if(sys_cpus<1) sys_cpus=1;
110  }
111 
112  /* local declaration prevails, if strictly positive */
113 
114  envloc = getenv("CCX_NPROC_RESULTS");
115  if(envloc){
116  num_cpus=atoi(envloc);
117  if(num_cpus<0){
118  num_cpus=0;
119  }else if(num_cpus>sys_cpus){
120  num_cpus=sys_cpus;
121  }
122 
123  }
124 
125  /* else global declaration, if any, applies */
126 
127  env = getenv("OMP_NUM_THREADS");
128  if(num_cpus==0){
129  if (env)
130  num_cpus = atoi(env);
131  if (num_cpus < 1) {
132  num_cpus=1;
133  }else if(num_cpus>sys_cpus){
134  num_cpus=sys_cpus;
135  }
136  }
137 
138 // next line is to be inserted in a similar way for all other paralell parts
139 
140  if(*ne<num_cpus) num_cpus=*ne;
141 
142  pthread_t tid[num_cpus];
143 
144  /* 1. nodewise storage of the primary variables
145  2. determination which derived variables have to be calculated */
146 
147  FORTRAN(resultsini,(nk,v,ithermal,filab,iperturb,f,fn,
148  nactdof,iout,qa,vold,b,nodeboun,ndirboun,
149  xboun,nboun,ipompc,nodempc,coefmpc,labmpc,nmpc,nmethod,cam,neq,
150  veold,accold,bet,gam,dtime,mi,vini,nprint,prlab,
151  &intpointvarm,&calcul_fn,&calcul_f,&calcul_qa,&calcul_cauchy,&nener,
152  &ikin,&intpointvart,xforc,nforc));
153 
154  NNEW(fn0,double,mt**nkon);
155  NNEW(dfn,double,mt**nk);
156 
157  if(((*nmethod!=4)&&(*nmethod!=5))||(iperturb[0]>1)){
158  printf(" Using up to %" ITGFORMAT " cpu(s) for the sensitivity of the internal forces.\n\n", num_cpus);
159  }
160 
161  /* nodal forces without perturbation */
162 
163  idesvar=0;
164 
165  /* calculating the stresses and material tangent at the
166  integration points; calculating the internal forces */
167 
168  if(((ithermal[0]<=1)||(ithermal[0]>=3))&&(intpointvarm==1)){
169 
170  NNEW(fn01,double,num_cpus*mt**nkon);
171 
172  co1=co;kon1=kon;ipkon1=ipkon;lakon1=lakon;ne1=ne;v1=v;
173  stx1=stx;elcon1=elcon;nelcon1=nelcon;rhcon1=rhcon;
174  nrhcon1=nrhcon;alcon1=alcon;nalcon1=nalcon;alzero1=alzero;
175  ielmat1=ielmat;ielorien1=ielorien;norien1=norien;orab1=orab;
176  ntmat1_=ntmat_;t01=t0;t11=t1;ithermal1=ithermal;prestr1=prestr;
177  iprestr1=iprestr;eme1=eme;iperturb1=iperturb;iout1=iout;
178  vold1=vold;nmethod1=nmethod;veold1=veold;dtime1=dtime;
179  time1=time;ttime1=ttime;plicon1=plicon;nplicon1=nplicon;
180  plkcon1=plkcon;nplkcon1=nplkcon;xstateini1=xstateini;
181  xstiff1=xstiff;xstate1=xstate;npmat1_=npmat_;matname1=matname;
182  mi1=mi;ielas1=ielas;icmd1=icmd;ncmat1_=ncmat_;nstate1_=nstate_;
183  stiini1=stiini;vini1=vini;ener1=ener;eei1=eei;enerini1=enerini;
184  istep1=istep;iinc1=iinc;springarea1=springarea;reltime1=reltime;
185  calcul_fn1=calcul_fn;calcul_cauchy1=calcul_cauchy;
186  nener1=nener;ikin1=ikin;mt1=mt;nk1=nk;ne01=ne0;thicke1=thicke;
187  emeini1=emeini;pslavsurf1=pslavsurf;clearini1=clearini;
188  pmastsurf1=pmastsurf;mortar1=mortar;ielprop1=ielprop;prop1=prop;
189  idesvar1=idesvar;nodedesi1=nodedesi;
190  sti1=sti;nkon1=nkon;icoordinate1=icoordinate;
191  dxstiff1=dxstiff;ialdesi1=ialdesi;xdesi1=xdesi;
192 
193  /* create threads and wait */
194 
195  NNEW(ithread,ITG,num_cpus);
196  for(i=0; i<num_cpus; i++) {
197  ithread[i]=i;
198  pthread_create(&tid[i], NULL, (void *)resultsmechmt_se, (void *)&ithread[i]);
199  }
200  for(i=0; i<num_cpus; i++) pthread_join(tid[i], NULL);
201 
202  /* Assembling fn0 and dfn */
203 
204  for(i=0;i<mt**nkon;i++){
205  fn0[i]=fn01[i];
206  }
207  for(i=0;i<mt**nkon;i++){
208  for(j=1;j<num_cpus;j++){
209  fn0[i]+=fn01[i+j*mt**nkon];
210  }
211  }
212 
213  SFREE(fn01);
214  SFREE(ithread);
215  }
216 
217  /* in case of nonlinear geometry calculate vector fint */
218 
219  if((iperturb[1]==1)&&(*ishapeenergy==1)){
220  FORTRAN(createfint,(ne,ipkon,lakon,kon,nactdof,mi,fn0,fint));
221  }
222 
223  /* loop over the design variables (perturbation) */
224 
225  for(idesvar=1;idesvar<=*ndesi;idesvar++){
226 
227  DMEMSET(dfn,0,mt**nk,0.);
228 
229  /* calculate a delta in the orientation
230  in case the material orientation is the design variable */
231 
232  if(*icoordinate!=1){
233  iorien=(idesvar-1)/3;
234 
235  /* save nominal orientation */
236 
237  memcpy(&orabsav[0],&orab[7*iorien],sizeof(double)*7);
238 
239  /* calculate the transformation matrix */
240 
241  FORTRAN(transformatrix,(&orab[7*iorien],pgauss,a));
242 
243  /* calculate the rotation vector from the transformation matrix */
244 
245  FORTRAN(rotationvector,(a,rotvec));
246  idir=(idesvar-1)-iorien*3;
247 
248  /* add a small variation to the rotation vector component */
249 
250  rotvec[idir]+=*distmin;
251 
252  /* determine the new transformation matrix */
253 
254  FORTRAN(rotationvectorinv,(a,rotvec));
255 
256  /* determine two new points in the x-y plane */
257 
258  for(i=0;i<6;i++){orab[7*iorien+i]=a[i];}
259  }
260 
261  /* calculating the stresses and material tangent at the
262  integration points; calculating the internal forces */
263 
264  if(((ithermal[0]<=1)||(ithermal[0]>=3))&&(intpointvarm==1)){
265  nea=istartdesi[idesvar-1];
266  neb=istartdesi[idesvar]-1;
267 
268  FORTRAN(resultsmech_se,(co,kon,ipkon,lakon,ne,v,
269  stx,elcon,nelcon,rhcon,nrhcon,alcon,nalcon,alzero,
270  ielmat,ielorien,norien,orab,ntmat1_,t0,t1,ithermal,prestr,
271  iprestr,eme,iperturb,fn,iout,vold,nmethod,
272  veold,dtime,time,ttime,plicon,nplicon,plkcon,nplkcon,
273  xstateini,xstiff,xstate,npmat1_,matname,mi,ielas,icmd,
274  ncmat1_,nstate1_,stiini,vini,ener,eei,enerini,istep,iinc,
275  springarea,reltime,&calcul_fn,&calcul_cauchy,&nener,
276  &ikin,ne0,thicke,emeini,
277  pslavsurf,pmastsurf,mortar,clearini,&nea,&neb,ielprop,prop,
278  dfn,&idesvar,nodedesi,
279  fn0,sti,icoordinate,dxstiff,ialdesi,xdesi));
280  }
281 
282  /* calculating the matrix system internal force vector
283  for nonlinear geometrical calculations */
284 
285 // if((iperturb[1]==1)&&(*ieigenfrequency!=1)){
286  if(*ieigenfrequency!=1){
287  FORTRAN(resultsforc_se,(nk,dfn,nactdofinv,ipompc,nodempc,
288  coefmpc,nmpc,mi,fmpc,&calcul_fn,&calcul_f,
289  &idesvar,df,jqs,irows,distmin));
290  }
291 
292  /* restoring the nominal orientation (in case the design variables
293  are the orientations */
294 
295  if(*icoordinate!=1){
296  if(idesvar>0){
297  memcpy(&orab[7*iorien],&orabsav[0],sizeof(double)*7);
298  }
299  }
300 
301  } /* end loop over design variables */
302 
303 
304  SFREE(fn0);SFREE(dfn);
305 
306  return;
307 
308 }
static ITG calcul_fn1
Definition: results_se.c:28
static double * reltime1
Definition: results_se.c:37
#define ITGFORMAT
Definition: CalculiX.h:52
static ITG * nkon1
Definition: results_se.c:28
static ITG * icoordinate1
Definition: results_se.c:28
static double * fn01
Definition: results_se.c:37
static ITG * ithermal1
Definition: results_se.c:28
static ITG * iperturb1
Definition: results_se.c:28
static double * enerini1
Definition: results_se.c:37
int pthread_create(pthread_t *thread_id, const pthread_attr_t *attributes, void *(*thread_function)(void *), void *arguments)
static double * rhcon1
Definition: results_se.c:36
static ITG * iinc1
Definition: results_se.c:28
static ITG * iout1
Definition: results_se.c:28
static double * orab1
Definition: results_se.c:36
static ITG * nstate1_
Definition: results_se.c:28
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
static double * alzero1
Definition: results_se.c:36
static double * veold1
Definition: results_se.c:37
static ITG * nk1
Definition: results_se.c:28
static double * t01
Definition: results_se.c:36
static ITG * istep1
Definition: results_se.c:28
static double * elcon1
Definition: results_se.c:36
static ITG mt1
Definition: results_se.c:28
static ITG * ielorien1
Definition: results_se.c:28
void * resultsmechmt_se(ITG *i)
Definition: results_se.c:312
static ITG calcul_cauchy1
Definition: results_se.c:28
static double * dxstiff1
Definition: results_se.c:37
static ITG * ntmat1_
Definition: results_se.c:28
subroutine rotationvectorinv(c, v)
Definition: rotationvectorinv.f:20
static ITG * npmat1_
Definition: results_se.c:28
static double * clearini1
Definition: results_se.c:37
void FORTRAN(actideacti,(char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, char *objectset, ITG *ipkon, ITG *ibject, ITG *ne))
static double * t11
Definition: results_se.c:36
static char * lakon1
Definition: results_se.c:26
subroutine resultsforc_se(nk, dfn, nactdofinv, ipompc, nodempc, coefmpc, nmpc, mi, fmpc, calcul_fn, calcul_f, idesvar, df, jqs, irows, distmin)
Definition: resultsforc_se.f:22
static ITG * ielas1
Definition: results_se.c:28
static double * xstateini1
Definition: results_se.c:37
static ITG * mi1
Definition: results_se.c:28
static double * thicke1
Definition: results_se.c:37
static double * co1
Definition: results_se.c:36
static double * dtime1
Definition: results_se.c:37
ITG getSystemCPUs()
Definition: getSystemCPUs.c:40
static double * xstate1
Definition: results_se.c:37
#define DMEMSET(a, b, c, d)
Definition: CalculiX.h:45
static ITG * ialdesi1
Definition: results_se.c:28
static double * stiini1
Definition: results_se.c:37
static ITG nener1
Definition: results_se.c:28
static double * pmastsurf1
Definition: results_se.c:37
static ITG * nelcon1
Definition: results_se.c:28
static double * alcon1
Definition: results_se.c:36
static double * emeini1
Definition: results_se.c:37
static double * xstiff1
Definition: results_se.c:37
static double * stx1
Definition: results_se.c:36
static ITG * nodedesi1
Definition: results_se.c:28
subroutine transformatrix(xab, p, a)
Definition: transformatrix.f:20
static double * plkcon1
Definition: results_se.c:37
static ITG ikin1
Definition: results_se.c:28
static ITG * ipkon1
Definition: results_se.c:28
static ITG num_cpus
Definition: results_se.c:28
static ITG * ncmat1_
Definition: results_se.c:28
static ITG * mortar1
Definition: results_se.c:28
static double * ttime1
Definition: results_se.c:37
#define SFREE(a)
Definition: CalculiX.h:41
static double * vini1
Definition: results_se.c:37
static ITG * iprestr1
Definition: results_se.c:28
static ITG * nmethod1
Definition: results_se.c:28
static char * matname1
Definition: results_se.c:26
static ITG idesvar1
Definition: results_se.c:28
static double * vold1
Definition: results_se.c:37
static ITG * nplkcon1
Definition: results_se.c:28
static ITG * ielprop1
Definition: results_se.c:28
static ITG * nplicon1
Definition: results_se.c:28
static double * plicon1
Definition: results_se.c:37
subroutine createfint(ne, ipkon, lakon, kon, nactdof, mi, fn0, fint)
Definition: createfint.f:21
static double * ener1
Definition: results_se.c:37
static ITG * icmd1
Definition: results_se.c:28
static double * springarea1
Definition: results_se.c:37
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 double * pslavsurf1
Definition: results_se.c:37
static double * sti1
Definition: results_se.c:37
int pthread_join(pthread_t thread, void **status_ptr)
static double * v1
Definition: results_se.c:36
static ITG * nrhcon1
Definition: results_se.c:28
static double * eei1
Definition: results_se.c:37
static ITG * norien1
Definition: results_se.c:28
static ITG * kon1
Definition: results_se.c:28
#define ITG
Definition: CalculiX.h:51
static double * eme1
Definition: results_se.c:36
static ITG * ielmat1
Definition: results_se.c:28
subroutine rotationvector(a, v)
Definition: rotationvector.f:20
static ITG * nalcon1
Definition: results_se.c:28
#define NNEW(a, b, c)
Definition: CalculiX.h:39
static double * prestr1
Definition: results_se.c:36
static double * prop1
Definition: results_se.c:37
static double * xdesi1
Definition: results_se.c:37
static ITG * ne01
Definition: results_se.c:28
subroutine resultsmech_se(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, 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_cauchy, nener, ikin, ne0, thicke, emeini, pslavsurf, pmastsurf, mortar, clearini, nea, neb, ielprop, prop, dfn, idesvar, nodedesi, fn0, sti, icoordinate, dxstiff, ialdesi, xdesi)
Definition: resultsmech_se.f:31
static double * time1
Definition: results_se.c:37
static ITG * ne1
Definition: results_se.c:28

◆ resultsmechmt_se()

void* resultsmechmt_se ( ITG i)
312  {
313 
314  ITG indexfn0,indexdfn,nea,neb,nedelta;
315 
316  if(idesvar1==0){
317  indexfn0=*i*mt1**nkon1;
318  indexdfn=0;
319  }else{
320  indexfn0=0;
321  indexdfn=*i*mt1**nk1;
322  }
323 
324 // ceil -> floor
325 
326  nedelta=(ITG)floor(*ne1/(double)num_cpus);
327  nea=*i*nedelta+1;
328  neb=(*i+1)*nedelta;
329 // next line! -> all parallel sections
330  if((*i==num_cpus-1)&&(neb<*ne1)) neb=*ne1;
331 
336  nmethod1,
343  &dfn1[indexdfn],&idesvar1,nodedesi1,
345 
346  return NULL;
347 }
static ITG calcul_fn1
Definition: results_se.c:28
static double * reltime1
Definition: results_se.c:37
static ITG * nkon1
Definition: results_se.c:28
static ITG * icoordinate1
Definition: results_se.c:28
static double * fn01
Definition: results_se.c:37
static ITG * ithermal1
Definition: results_se.c:28
static ITG * iperturb1
Definition: results_se.c:28
static double * enerini1
Definition: results_se.c:37
static double * rhcon1
Definition: results_se.c:36
static double * fn1
Definition: results_se.c:37
static ITG * iinc1
Definition: results_se.c:28
static ITG * iout1
Definition: results_se.c:28
static double * orab1
Definition: results_se.c:36
static ITG * nstate1_
Definition: results_se.c:28
static double * alzero1
Definition: results_se.c:36
static double * veold1
Definition: results_se.c:37
static ITG * nk1
Definition: results_se.c:28
static double * t01
Definition: results_se.c:36
static ITG * istep1
Definition: results_se.c:28
static double * elcon1
Definition: results_se.c:36
static ITG mt1
Definition: results_se.c:28
static ITG * ielorien1
Definition: results_se.c:28
static ITG calcul_cauchy1
Definition: results_se.c:28
static double * dxstiff1
Definition: results_se.c:37
static ITG * ntmat1_
Definition: results_se.c:28
static ITG * npmat1_
Definition: results_se.c:28
static double * clearini1
Definition: results_se.c:37
void FORTRAN(actideacti,(char *set, ITG *nset, ITG *istartset, ITG *iendset, ITG *ialset, char *objectset, ITG *ipkon, ITG *ibject, ITG *ne))
static double * t11
Definition: results_se.c:36
static char * lakon1
Definition: results_se.c:26
static ITG * ielas1
Definition: results_se.c:28
static double * xstateini1
Definition: results_se.c:37
static ITG * mi1
Definition: results_se.c:28
static double * thicke1
Definition: results_se.c:37
static double * co1
Definition: results_se.c:36
static double * dtime1
Definition: results_se.c:37
static double * xstate1
Definition: results_se.c:37
static ITG * ialdesi1
Definition: results_se.c:28
static double * stiini1
Definition: results_se.c:37
static ITG nener1
Definition: results_se.c:28
static double * pmastsurf1
Definition: results_se.c:37
static ITG * nelcon1
Definition: results_se.c:28
static double * alcon1
Definition: results_se.c:36
static double * emeini1
Definition: results_se.c:37
static double * xstiff1
Definition: results_se.c:37
static double * stx1
Definition: results_se.c:36
static ITG * nodedesi1
Definition: results_se.c:28
static double * plkcon1
Definition: results_se.c:37
static ITG ikin1
Definition: results_se.c:28
static ITG * ipkon1
Definition: results_se.c:28
static ITG num_cpus
Definition: results_se.c:28
static ITG * ncmat1_
Definition: results_se.c:28
static ITG * mortar1
Definition: results_se.c:28
static double * ttime1
Definition: results_se.c:37
static double * vini1
Definition: results_se.c:37
static ITG * iprestr1
Definition: results_se.c:28
static ITG * nmethod1
Definition: results_se.c:28
static char * matname1
Definition: results_se.c:26
static ITG idesvar1
Definition: results_se.c:28
static double * vold1
Definition: results_se.c:37
static ITG * nplkcon1
Definition: results_se.c:28
static ITG * ielprop1
Definition: results_se.c:28
static ITG * nplicon1
Definition: results_se.c:28
static double * plicon1
Definition: results_se.c:37
static double * ener1
Definition: results_se.c:37
static ITG * icmd1
Definition: results_se.c:28
static double * springarea1
Definition: results_se.c:37
static double * pslavsurf1
Definition: results_se.c:37
static double * sti1
Definition: results_se.c:37
static double * dfn1
Definition: results_se.c:37
static double * v1
Definition: results_se.c:36
static ITG * nrhcon1
Definition: results_se.c:28
static double * eei1
Definition: results_se.c:37
static ITG * norien1
Definition: results_se.c:28
static ITG * kon1
Definition: results_se.c:28
#define ITG
Definition: CalculiX.h:51
static double * eme1
Definition: results_se.c:36
static ITG * ielmat1
Definition: results_se.c:28
static ITG * nalcon1
Definition: results_se.c:28
static double * prestr1
Definition: results_se.c:36
static double * prop1
Definition: results_se.c:37
static double * xdesi1
Definition: results_se.c:37
static ITG * ne01
Definition: results_se.c:28
subroutine resultsmech_se(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, 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_cauchy, nener, ikin, ne0, thicke, emeini, pslavsurf, pmastsurf, mortar, clearini, nea, neb, ielprop, prop, dfn, idesvar, nodedesi, fn0, sti, icoordinate, dxstiff, ialdesi, xdesi)
Definition: resultsmech_se.f:31
static double * time1
Definition: results_se.c:37
static ITG * ne1
Definition: results_se.c:28

Variable Documentation

◆ alcon1

double * alcon1
static

◆ alzero1

double * alzero1
static

◆ calcul_cauchy1

ITG calcul_cauchy1
static

◆ calcul_fn1

ITG calcul_fn1
static

◆ clearini1

double * clearini1
static

◆ co1

double* co1
static

◆ dfn1

double * dfn1
static

◆ dtime1

double * dtime1
static

◆ dxstiff1

double * dxstiff1
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

◆ fn01

double * fn01
static

◆ fn1

double * fn1 =NULL
static

◆ ialdesi1

ITG * ialdesi1
static

◆ icmd1

ITG * icmd1
static

◆ icoordinate1

ITG * icoordinate1
static

◆ idesvar1

ITG idesvar1
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

◆ iout1

ITG * iout1
static

◆ iperturb1

ITG * iperturb1
static

◆ ipkon1

ITG * ipkon1
static

◆ iprestr1

ITG * iprestr1
static

◆ istep1

ITG * istep1
static

◆ ithermal1

ITG * ithermal1
static

◆ kon1

ITG* kon1
static

◆ lakon1

char* lakon1
static

◆ matname1

char * matname1
static

◆ mi1

ITG * mi1
static

◆ mortar1

ITG * mortar1
static

◆ mt1

ITG mt1
static

◆ nalcon1

ITG * nalcon1
static

◆ ncmat1_

ITG * ncmat1_
static

◆ ne01

ITG * ne01
static

◆ ne1

ITG * ne1
static

◆ nelcon1

ITG * nelcon1
static

◆ nener1

ITG nener1
static

◆ nk1

ITG * nk1
static

◆ nkon1

ITG * nkon1
static

◆ nmethod1

ITG * nmethod1
static

◆ nodedesi1

ITG * nodedesi1
static

◆ norien1

ITG * norien1
static

◆ nplicon1

ITG * nplicon1
static

◆ nplkcon1

ITG * nplkcon1
static

◆ npmat1_

ITG * npmat1_
static

◆ nrhcon1

ITG * nrhcon1
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

◆ reltime1

double * reltime1
static

◆ rhcon1

double * rhcon1
static

◆ springarea1

double * springarea1
static

◆ sti1

double * sti1
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

◆ xdesi1

double * xdesi1
static

◆ xstate1

double * xstate1
static

◆ xstateini1

double * xstateini1
static

◆ xstiff1

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