Dynamic Step - Solution procedure options

I’m a little confused. The Dynamic Step menu contains the following different options for Solution procedure:

Looking in the ccx job-file the different options give the following different results:

*Dynamic
*Dynamic, Explicit=1
*Dynamic, Explicit=2
*Dynamic, Explicit=3

When I look into the source of ccx, I don’t recognize the explicit option should be able to carry any arguments, so it is in basic it’s just an on switch.
the internal flag “iexpl” for implicit/explicit is by default assign the value 0 and in case of the explicit option the flag is assigned the value of 2 despite for the manual describes 1.

!     default is implicit
!     
      iexpl=0
!
        elseif(textpart(i)(1:8).eq.'EXPLICIT') then
          iexpl=2

Please correct me if I should be wrong but from outside ccx I only see 2 different values for “iexpl” either it will be 0 for implicit or 2 for explicit, so please what’s the deeper meaning/secrets with all these entries in the Dynamic step menu ?

From CalculiX User’s Manual:

I haven’t checked the ccx source code but if there’s a likely issue with it, I would ask on the CalculiX forum (https://calculix.discourse.group) or GitHub repository (GitHub · Where software is built).

1 Like

@FEAnalyst , thank for the reference to the manual, but I believe it will be relevant in this forum to point out, that in according to the manual the option Explicit=0 is missing in PrePoMax since it by my knowledge the only possible option in the ccx job-file from PrePoMax are:

*Dynamic
*Dynamic, Explicit=1
*Dynamic, Explicit=2
*Dynamic, Explicit=3

*Dynamic should be equivalent to *Dynamic,Explicit=0 according to the last sentence in the referenced portion of the ccx manual:

If the parameter is lacking altogether, a zero value is assumed.

So it shouldn’t be necessary to explicitly set it to zero.

Another thing is that fluid calculations are not supported in PrePoMax so two values would suffice in practice (at least until fluids are implemented).

2 Likes

@FEAnalyst , in case we never agree on this issue, I can live with this, but I think whom it must care should check for themselves.
The ccx code has been changed between version 2.6 and 2.10 without updating the manual on this specific issue.
the ccx 2.6 code was written this way where the explicit option was capable of taking arguments:

!      iexpl==0:  structure:implicit, fluid:semi-implicit
!      iexpl==1:  structure:implicit, fluid:explicit
!      iexpl==2:  structure:explicit, fluid:semi-implicit
!      iexpl==3:  structure:explicit, fluid:explicit 
!
         elseif(textpart(i)(1:8).eq.'EXPLICIT') then
            if(textpart(i)(9:10).eq.'=1') then
               iexpl=1
            elseif(textpart(i)(9:10).eq.'=2') then
               iexpl=2
            elseif(textpart(i)(9:10).eq.'=3') then
               iexpl=3
            elseif(textpart(i)(9:10).eq.'  ') then
               iexpl=3
            else
               call inputerror(inpc,ipoinpc,iline)
            endif

but for some reason from ccx 2.10 the code was changed and written this way, where the possibilities of argument for explicit option were removed:

!      iexpl==0:  structure:implicit, fluid:incompressible
!      iexpl==2:  structure:explicit, fluid:incompressible

         elseif(textpart(i)(1:8).eq.'EXPLICIT') then
            iexpl=2

for this reason, I personal don’t see any need for all those entries under Solution procedure options. From my side this was only meant as helpfully and positive contribute.
I don’t have further contributes to this thread.

Isn’t this the explanation of the unexpected response seen on the attached post.?

If I add the Explicit=0 parameter, the algorithm should be an implicit scheme (which allows beta damping) but according to the monitor it isn’t:

*DYNAMIC,ALPHA=-0.05,EXPLICIT=0
1E-07,0.001,0,0
*ERROR in nonlingeo: in explicit dynamic calculations without massless contact the damping is only allowed to be mass proportional: the coefficient beta of the stiffness proportional term must be zero 

Regards