Calculix- dynamic explicit solver

Dear Calculix users,

Nice to meet you all and join the Calculix big family.
I am a new rookie :slight_smile: so I shall have lots of questions.

Our team want to use the explicit dynamic solver in the Calculix.
So is there anyone can provide us some general idea about this solver? Is it fast compared with abques ? can it be paralleled with GPU? or any typical example ?

Or at least, how should we get started with Calculix ? on windows or linux, any recommended documents? :thinking:

We just start our project. We really want to do something with Calculix so any suggestion will be appreciated.

Thanks !

Fabien

1 Like

Hello,

for windows you can install CalculiX from bconverged and update Calculix from homepage.
there you find also a short basic tutorial

http://www.bconverged.com/download.php#calculix

http://www.bconverged.com/content/calculix/doc/GettingStarted.pdf

another possibilty is to use caelinux without installation:

https://www.caelinux.com/CMS3/

or you use different versions like CalculiX Launcher or prepomax and so on.

http://www.caelinux.org/wiki/index.php/Doc:Calculix

wbr

Thanks Wbr,I just start Bconverged :slight_smile:

Please take care, that you have to update your version:

http://www.dhondt.de/calculix_2.17.1_4win.zip

and for more example please check:

enjoy

Welcome to the CCX community :slight_smile:

I used CCX explicit in my Masters thesis, so I may be able to share some thoughts.

The explicit solver CCX uses an explicit form of the alpha algorithm (http://doi.wiley.com/10.1002/eqe.4290180505). You can find more details of the algorithm implementation in the book of Dr. Guido Dhondt, the main developer of CalculiX. (https://onlinelibrary.wiley.com/doi/book/10.1002/0470021217)

I have no experience with the explicit solver from ABAQUS, but from what I have heard from other users its fast, but not in the league of ABAQUS… yet :slight_smile: The GPU applications of CCX are limited currently to the solution of linear systems. Since explicit solutions do not use this (since the mass matrix is diagonalized), CCX explicit cannot benefit from it so far. Let’s hope this changes in the future.

In my experience with CCX, is less hassle to use it in Linux, since the original code is developed in Linux. Compiling it with the Intel software (which now is free by the way!!) provides some speed up against GCC.

I would suggest you to use the most recent versions since in the last couple of years there were some changes to the explicit solution algorithm. In Windows its a good idea to use the binary of v2.17, as mentioned by @dichtstoff.

2 Likes

Hello,I started to launch my first Calculix modeling :slight_smile:
I will try to update the version thank you so much !

Hello Carlo,

Thanks for you kind reply.

It’s so good that you have the experience about the explicit solver. This gives me lots of confidence haha. I have found the book, which should be very helpful.

I should have lots of questions for you later.

Can I have your E-mail?

Sincerely,
Fabien

2 Likes

Hello everyone,

I also want to have a look at the explicit solver.

Does someone know in which file is wrote the explicit scheme in the calculix source code ?

I tried to check the nonlingeo.c and the Calculix.h but i didn’t find the “loops” of the scheme to update the displacement and velocity…

Thanks !

Hi irphe,

check my post above. The implemented algorithm is almost equation by equation followed by the paper of Miranda which I referred.

The increment loop is at nonlineo(), where accelerations are solved. The substitutions for velocity and displacements are done at iniparll.c . It is not very straight forward to follow though…

Therefore comes my suggestion to check the algorithm in the paper. That will give you a good understanding of what the code is doing from the algorithm point of view.

Kind regards

2 Likes

Hi carlomontec,

Thanks for your last reply.

Since I checked the paper of Miranda which give me a better understanding of the algorithm. Now I would like to follow its Calculix implementation.

As you told me, the substitutions for velocity and displacements are done at iniparll.c
Nevertheless, when I check nonlingeo.c and I search for iniparll.c , this function is called nowhere. Also in all the Calculix files, iniparll.c is only called in resultsini.f which is also not call in nonlingeo.c and apparently only useful befrore the loop over the increment.

Do you know the “path” between nonlingeo.c and the newmark scheme in iniparll.c ?

I saw in the documentation the explanation of nonlingeo.c but there is no so much detail on the explicit procedure, for my understanding it mainly describe the Implicit procedure.

Thanks for your help !
Kind regards

Hi irphe,
check this call graphs (red indicates is not complete)

resultsini() is called by results()

and results() is called by nonlingeo()

Screenshot from 2021-11-03 18-49-02

Hope that helps
Carlo

Thanks carlomontec, this helps me a lot !

Last thing, can you tell me where did you find these very useful sketchs, they are not in the “official” documentation apparently ?

Kind regards

Hi,

I created them using the software Doxygen and the original source code. I think some Uni had it also online for an older version.

BR

1 Like