I found through experience that the caution against using first order elements in FEA is well-founded. Doing a convergence test on a simple rectangular plate fixed at both ends loaded with transverse and normal pressure forces showed that maximum displacement values converged with 10-100 times more nodes using first-order elements compared to using second-order elements. Wow.
However, I could not get maximum von Mises stress to converge due to the presence of sharp corners at the fixed ends, no matter the order of the elements. This apparently is a well known quirk of FEA for so-called 're-entrant corners'.
UPDATE: It turns out there was a dissonance between my intended physical model and the one I implemented in the *BOUNDARY card. All I had to do was add rotational constraints at the boundary. This was revealed to be the problem after I tried to fix the last two layer of nodes at each end.
Although the max stress is more tame now, the stress still does not converge completely. I notice that the max stress, after a certain amount of nodes, moves to the corner from the node adjacent to the corner. I consider the point where the max stress is still not on the corner to be the actual estimated max stress. This is also around the point the maximum displacement converges.
Thus I have found a satisfactory solution for my sharp corner convergence issue.
UPDATE 2: Perhaps a better convergence criterion would be strain energy. I have yet to test this.
Showing posts with label FEA (Finite Element Analysis). Show all posts
Showing posts with label FEA (Finite Element Analysis). Show all posts
Friday, December 20, 2013
Friday, December 13, 2013
Compiling CalculiX CrunchiX (CCX) from Source
I was having errors using CCX provided as the Linux executable on the CalculiX website, so I decided to compile it from source so I can finally get it working. I followed the compilation steps detailed on the CalculiX website, in addition to the following few changes.
I compiled on Ubuntu 12.04 LTS.
In order to compile CalculiX, you also need to install SPOOLES.2.2 and ARPACK.
Installing SPOOLES.2.2 is straightforward, just follow their directions on their website.
Installing ARPACK required a bit more modification. For me, I had to make the following changes in 'ARmake.inc':
-Add '-lg2c' flag to LDFLAGS, LNFLAGS, and FFLAGS
-Changed the fortran compiler to gfortran
-Changed the MAKE directory to /usr/bin/make (original: /bin/make)
-Changed the PLAT to INTEL, rather than SUN4
And the following change to 'UTIL/second.f':
-Changed the two lines:
REAL ETIME
EXTERNAL ETIME
To:
EXTERNAL REAL ETIME
Then, I was able to compile CCX as detailed on the website.
Another note about the deck input... I was trying to use the solver on the test cases as provided on the CalculiX website and took me a little while to figure out how to get the post-processed results (colorful stress and strain fields, etc.). I thought the results were written to *.frd file by *EL PRINT (which are already in the test input files), but the Datasets to be displayed in CGX actually have to be written by *EL FILE and *NODE FILE. So, to get the stress and displacement fields I had to type the following into the deck input file:
*EL FILE
S
*NODE FILE
U
Where S denotes stress and U denotes displacement. For the rest of the keywords for other fields, you can check the CCX Manual.
I compiled on Ubuntu 12.04 LTS.
In order to compile CalculiX, you also need to install SPOOLES.2.2 and ARPACK.
Installing SPOOLES.2.2 is straightforward, just follow their directions on their website.
Installing ARPACK required a bit more modification. For me, I had to make the following changes in 'ARmake.inc':
-Add '-lg2c' flag to LDFLAGS, LNFLAGS, and FFLAGS
-Changed the fortran compiler to gfortran
-Changed the MAKE directory to /usr/bin/make (original: /bin/make)
-Changed the PLAT to INTEL, rather than SUN4
And the following change to 'UTIL/second.f':
-Changed the two lines:
REAL ETIME
EXTERNAL ETIME
To:
EXTERNAL REAL ETIME
Then, I was able to compile CCX as detailed on the website.
Another note about the deck input... I was trying to use the solver on the test cases as provided on the CalculiX website and took me a little while to figure out how to get the post-processed results (colorful stress and strain fields, etc.). I thought the results were written to *.frd file by *EL PRINT (which are already in the test input files), but the Datasets to be displayed in CGX actually have to be written by *EL FILE and *NODE FILE. So, to get the stress and displacement fields I had to type the following into the deck input file:
*EL FILE
S
*NODE FILE
U
Where S denotes stress and U denotes displacement. For the rest of the keywords for other fields, you can check the CCX Manual.
Finite Element Analysis (FEA): CalculiX
Good morning,
I wanted to share a great piece of software for Finite Element Analysis, which usually refers to structural solvers. I am using it to verify whether certain structures subjected to certain loads safely operate within displacement and yield stress criterion. I am using it for a prototype of an invention of mine, which I am excited to finally be close to building. This prototype is a result of CFD and FEA analysis. Anyway, the website for CalculiX provides all of the software and helpful installation guides and tutorials.
I also wanted to share a troubleshooting tip for the CalculiX CrunchiX (CCX). Calculix has two components: the GUI and the solver. These are named CalculiX GraphiX (CGX) and CalculiX CrunchiX (CCX). I was getting the following error when trying to use the already-compiled provided CCX executable on the CalculiX website:
ccx: error while loading shared libraries: libgfortran.so.2: cannot open shared object file: No such file or directory
I did not have libgfortran.so.2, but I did have libgfortran.so.3. I verified this by:
locate libgfortran.so.3
Using the directory location output from the above command, I linked the .so.3 to .so.2 by:
sudo ln -s /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so.2
And then my executable no longer had the aforementioned error...
HOWEVER, I kept getting other errors. I could do one of two things... Try to install the package that had libgfortran.so.2, or compile CalculiX from source. Since the package containing libgfortran.so.2 is deemed obsolete by the Ubuntu developers, I could not find and install it easily. So, I decided to compile CalculiX from source, and I successfully did so. I will create another post for details.
I wanted to share a great piece of software for Finite Element Analysis, which usually refers to structural solvers. I am using it to verify whether certain structures subjected to certain loads safely operate within displacement and yield stress criterion. I am using it for a prototype of an invention of mine, which I am excited to finally be close to building. This prototype is a result of CFD and FEA analysis. Anyway, the website for CalculiX provides all of the software and helpful installation guides and tutorials.
I also wanted to share a troubleshooting tip for the CalculiX CrunchiX (CCX). Calculix has two components: the GUI and the solver. These are named CalculiX GraphiX (CGX) and CalculiX CrunchiX (CCX). I was getting the following error when trying to use the already-compiled provided CCX executable on the CalculiX website:
ccx: error while loading shared libraries: libgfortran.so.2: cannot open shared object file: No such file or directory
I did not have libgfortran.so.2, but I did have libgfortran.so.3. I verified this by:
locate libgfortran.so.3
Using the directory location output from the above command, I linked the .so.3 to .so.2 by:
sudo ln -s /usr/lib/x86_64-linux-gnu/libgfortran.so.3 /usr/lib/libgfortran.so.2
And then my executable no longer had the aforementioned error...
HOWEVER, I kept getting other errors. I could do one of two things... Try to install the package that had libgfortran.so.2, or compile CalculiX from source. Since the package containing libgfortran.so.2 is deemed obsolete by the Ubuntu developers, I could not find and install it easily. So, I decided to compile CalculiX from source, and I successfully did so. I will create another post for details.
Subscribe to:
Posts (Atom)