Dear Frank
I have installed different repositories of OpenSees Libraries on Ubuntu 32bit and 64bit architecture. I have different results when I run the code on 32bit and 64bit machine.
I perform static nonlinear analysis of grillages. I have checked the steps line by line on each platform and unitl I run Analyze(1) the input is the same, but the result of the analyses are different. I compared the result of the 32bit Model with a similar model in SAP2000 and the values are similar, so I presume that something happens on the 64bit platform. The repository that I have been using on 32bit is +/- 5591 (Nov 2013). this version compiles and run on 64bit machines too but gives different results.
I have also downloaded the recent version 5956 and installed it. the C++ program compiles but when I run it I get the following sysmalloc error:
EP_OPS.exe: malloc.c sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
[g-Aspire-V5-123:25447] *** Process received signal ***
[g-Aspire-V5-123:25447] Signal: Aborted (6)
[g-Aspire-V5-123:25447] Signal code: (-6)
EP_OPS.exe: malloc.c sysmalloc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 *(sizeof(size_t))) - 1)) & ~((2 *(sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long) old_end & pagemask) == 0)' failed.
[g-Aspire-V5-123:25446] *** Process received signal ***
[g-Aspire-V5-123:25446] Signal: Aborted (6)
[g-Aspire-V5-123:25446] Signal code: (-6)
^Cmpirun: killing job...
with the repository 5956 that error is generated when the program reaches the line where ArcLength Integrator is created (INTEG_2 code lines are below)
AnalysisModel *An_Model = new AnalysisModel();
CTestNormDispIncr *CTEST_2 = new CTestNormDispIncr(1e-6,STEP,0);
EquiSolnAlgo *SOL_ALG = new NewtonRaphson();
StaticIntegrator *INTEG_1 = new LoadControl(1.0,1,0.1,2.0);
StaticIntegrator *INTEG_2 = new ArcLength(1.0);
ConstraintHandler *HANDL = new PlainHandler();
RCM *An_RCM = new RCM();
DOF_Numberer *NUMB = new DOF_Numberer(*An_RCM);
BandGenLinSolver *SOLVER = new BandGenLinLapackSolver();
LinearSOE *L_SOE = new BandGenLinSOE(*SOLVER);
//
StaticAnalysis theAnalysis(*BR_Domain,
*HANDL,
*NUMB,
*An_Model,
*SOL_ALG,
*L_SOE,
*INTEG_1,
(CTEST_2));
Hope you can guide me to fix the issue.
Thank you for your time.
Regards.
Different Results OpenSees 32bit and 64bit C++
Moderators: silvia, selimgunay, Moderators
Re: Different Results OpenSees 32bit and 64bit C++
send me the script if you can.
Re: Different Results OpenSees 32bit and 64bit C++
Thank you Frank,
I have solved the issue with release 5921 on 32bit and 64bit. Basically on 32bit machine the ArcLength integrator "StaticIntegrator *INTEG_2 = new ArcLength(1.0)" performs the analysis beyond the elastic limit of the structure with the default value of the parameter alpha=1.0, while on the 64bit machine does not, and the analysis stops.
By changing alpha=0.1 "StaticIntegrator *INTEG_2 = new ArcLength(1.0,0.1)";
both 32bit and 64bit give the same result. Seems that the 64bit is more sensitive with the step increment.
About the sysmalloc error on the 5956 repository the issue remain.
Thank you for your help.
I have solved the issue with release 5921 on 32bit and 64bit. Basically on 32bit machine the ArcLength integrator "StaticIntegrator *INTEG_2 = new ArcLength(1.0)" performs the analysis beyond the elastic limit of the structure with the default value of the parameter alpha=1.0, while on the 64bit machine does not, and the analysis stops.
By changing alpha=0.1 "StaticIntegrator *INTEG_2 = new ArcLength(1.0,0.1)";
both 32bit and 64bit give the same result. Seems that the 64bit is more sensitive with the step increment.
About the sysmalloc error on the 5956 repository the issue remain.
Thank you for your help.