Topic: Nonlinear Explicit analysis

Dear Borek,

I need to run a simulation using the Nonlinear Explicit analysis but no matter how many times I tried, there is an error which I cannot resolve.

I would very much appreciate it if you could help me identify the source of this error.

The error message that I get is:


Assembling mass matrix
deltaT reduced to 8.981590e-10, Tmin is 2.821650e-09
_______________________________________________________
Error: (/home/morad/Programmes/oofem/trunk/src/sm/piecewis.h:103)
Class: PiecewiceClass, number: 2
accelAt: not supported
_______________________________________________________
Total 1 error(s) and 0 warning(s) reported
oofem exit code 1

I have also attached the input file that I have been using.

Kind regards
Morad

2

Re: Nonlinear Explicit analysis

Dear Morad,

I have identified the source of the problem: it happens, when printing the results. For each DOF, displacement, velocity, and accelerations are printed. For DOFs subjected to some BC, the velocity and accelerations are computed from time evolution of this BC, ie. from its load time function.
The solution is simple: open src/oofemlib/piecewis.h, locate definition of __accelAt method (its at the end) and provide a code for computing its acceleration. As the function is piecewise linear, velocity is piecewise constant and acceleration should be zero:

virtual double    __accelAt(double) { return 0.; }

then recompile oofem and try. Should work.

Borek

Re: Nonlinear Explicit analysis

Dear Borek,

Thanks a lot for you quick reply.
It certainly did solve original the problem. by the way the file was in the src/sm folder.

Now I have a new problem. first of all the time increment is reduced to the order of 1e-9 which is a bit too low for a single element with isotropic linear elastic material model. I tried changing the "dumpcoef" value as well but it didnt change anything. Is there anyway to change the Tmin value to enforce it to use larger time increments?

Another thing is that no matter how much I change the TimeFunction, the displacements in my output file are not changed at all, and consequently the stress and strain values are equal to zero until the end of simulation.
It seems to me that the values of displacements are determined based on their accelerations and since I have defined that to be equal to zero now it is not working. Is that possible do you think?
Any suggestions how I could get around this problem.

Kind regards
Morad
---------------------------------------------------------------------------------------------------------------------------------
This is the new input file

Explicit.out
Testing the simple material model implementation
#
#
NlDEIDynamic nsteps 1000  dumpcoef 10.e10 deltaT 0.1 nmodules 0
#vtk tstep_all domain_all primvars 1 1 vars 4 1 2 4 5 stype 1 0
#
#
domain 2dPlaneStress
OutputManager tstep_all dofman_all element_all
ndofman 4 nelem 1 ncrosssect 1 nmat 1 nbc 2 nic 0 nltf 2
Node 1 coords 2 0.0 0.0 bc 2 1 1 
Node 2 coords 2 3.0 0.0 bc 2 0 1 
Node 3 coords 2 0.0 3.0 bc 2 0 2 
Node 4 coords 2 3.0 3.0 bc 2 0 2 
PlaneStress2d 1 nodes 4 1 2 4 3 mat 1 NIP 4 crossSect 1
SimpleCS 1 thick 1.0 width 1.0
IsoLE 1 tAlpha 1.2e-05 d 8.e-15 E 193000.0 n 0.3
#
#
#
BoundaryCondition 1 loadTimeFunction 1 prescribedvalue 0.0
BoundaryCondition 2 loadTimeFunction 2 prescribedvalue 1
#
#
ConstantFunction 1 f(t) 1.
piecewiselinfunction 2 npoints 2 t 2 0. 1.e-08 f(t) 2 0. 1.

4

Re: Nonlinear Explicit analysis

Dear Morad,

the explicit analysis is only conditionally stable. The stable time step should bounded by the largest natural frequency of the structure (dt <=2/O_max, where O_max is the maximum frequency in the structural system). In other words, time step should be less than lowest period divided by PI. As you are using very LOW density (d=8.e-15) for your material and high stiffness, your system has very high max frequency. oofem adjust the time step to satisfy stability limit.

I have attached the working example, with modified density and adjusted loading function.

Borek