Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Is Visual Basic powerful enough for learning FEA ? 1

Status
Not open for further replies.

VictorPerez

Civil/Environmental
Dec 7, 2002
17

Hi colleagues. I would like to know your opinions about this question. I am a civil engineer and i am interested in FEA for analysis of shells, among other things. All answers appreciated. Thanks,

Victor
 
Replies continue below

Recommended for you

I's relatively easy to develop your own Visual Basic software for FEA, the difficult part is the graphics and creating the model with the minimal of effort. Unless you have a lot of spare time on your hands then it's better to get some free software, or buy it.

corus
 
One of the open source FEA projects is written in Java. I wouldn't want to use it for a large model, but it certainly emphasises that even a slow interpreted language is fast enough on today's PCs.

Cheers

Greg Locock
 
Victor,

I too am a civil engineer with the intention of using VB for FEA analysis. In fact I've just finished my first 'program' in VBA (not quite VB, but very similar) for elastic torsion of open section members – not very difficult I know, but a fair starting point. I find that pure VB is a bit of a pain in the neck when it comes to user interface, too much work to pretty it up... VBA for Excel provides a nice flexible familiar environment.

As it happens, I too plan on going on to shell elements, however I do not have enough technical knowledge yet, and am studying the material. I think though I will only likely remain in the area of 1000 elements or so – matrices get pretty big pretty fast. I think much larger than that and I will have to start using fancy numerical techniques which I do not know yet...

DRW75
 
To keep a check on the number of elements, consider using the p-version FE. This accuracy of this method relies less on the number of elements and more on the mathematical routine to solve.

Regards,
Qshake
[pipe]
Eng-Tips Forums:Real Solutions for Real Problems Really Quick.
 
DRW75,
Tell me why you'll only be able to work with a limited number of elements (1000 as you said). I am about to start learning programming and up to now i do not know which language to choose (visual basic,matlab,c++..). Please give me some advice, thanks,
Victor
 
Victor

All serious (i.e. Abaqus, Ansys, Lusas, Nastran ..... etcetera) FEA software is written in Fortran despite the fact that Fortran probably isn't taught anywhere any more and the mere mention of the name brings sneers and derision from C++ , C# and VB programmers. It does however lend it self very naturally to mathematical based programming and is really very simple to use. Salford software have a free download of their Fortran77 and Fortran95 compilers at


They have a good graphics library plugin (but you will probably have to pay for that)
 
Victor

If you interest is learning FEA i would recommend mathlab, it has a lot of the required numbercrunching "built in". If you are prepared and set on doing your own matrix solvers etc any language can do that. Looking att speed Fortran and C++ are generally speaking muck faster and much stronger.

Your choice would, in my humble opinion, be very much connected to what exactly you want to study.

I once heard a professor say that building it in matlab takes a week and it executes in a day. In Fortran building it takes a month and executing it takes a minute. That is putting it to the extreme but it gives an indication of the effort.

By the way, as far as I know some of the serious software is written in Fortran (that is what I was taught in grad school) but the "real" numbercrunching is, as far as I know, written in assembler. Assembler is the way to go for "real" speed. However, it's not very userfriendly.

Regards

Thomas
 
Victor,

I only have knowledge of VB, VBA, (several other permutations of basic programming language), and some knowledge of fortran77, and was introduced to matlab. I would have liked to learn C++ and others, but never had the opportunity, and all I can really speak of is basic and fortran.

The reason why I mentioned 1000 elements was due to the fact that the matrices that result from analysis can get very large very fast based one the number of elements/nodes. You could go with larger numbers than these, but bear in mind going from 1000x1000 to 10,000x10,000 is a big step

VBA for excel provides a nice familiar environment (if you've used excel before) to 'construct' things. You don't have to go to as much effort as you do with some programs for the user interface, and the excel environment itself can be the interface. Of course, if you are crunching major numbers 10000-100000+, the excel environment may be an extra computing overhead that could effect performance of calculations substantially. How many shell elements do you plan on analyzing in general? If you are taking about large numbers, you will likely need Fortran or some other language to do the postprocessing (number crunching), but you can still use Excel VBA as a preprocessor (input).

(Hopefully I haven't misused any FEA terms – and if I have, my apologies to the FEA gurus out there)

DRW75
 
Victor,

As well, if you are looking at analyzing huge systems, then you probably should consider a commercial package like ANSYS or whatever. That is their business, and if you have major numbers to work with, those kinds of packages are geared for that. They tout being able to do 1,000,000+ DOF problems, and if this is the range you are working in, best to stick with what's available. They have techniques and tricks to reduce the number of calculations required, such that you would likely need a ph.d in math to help optimize your code.

Having said that, I could use commercial packages, but I would prefer to use my own 'software' since I know exactly how it works. I am leery of the black box solution where all the answers just appear after a few keystrokes. I don't particularly like to bet my career on a black box.

DRW75
 
1000 elements isn't a big job. What you're forgetting is that the equations are generally symmetric and banded and hence need less space, and less computation. There are also sparse banded solvers that can improve the computations. Wave front solutions are another method, though I'm not familiar with that one. All of these methods are available and described in books.

corus
 
Corus,

Absolutely agree that 1000 is pretty basic as far as FEA goes. For my purposes, creating my own software to analyze the problem however, seems to generate a pretty good size matrix. I can't speak from experience of creating software that handles large numbers, so I can't say for sure that 1000+ is large for a 'home-grown' package. Have you or anyone created their own software (in VB, C, FORTRAN, or whatever) with large numbers of elements (10 000+ say)? If so, where does it seem to start to have mathematical computational difficulties (long process times, not numerical problems).

I am, for the purposes of this discussion, not considering symmetry and/or banded matrices since it would be in the best interest of any FEA user to make use of such mathematical phenomena regardless.

DRW75
 
DRW75, Most problems I've written FE programs for are 2D and have at most 2000 elements. This is by choice, however. The run-time is about 20 seconds, but that is using the fact that the matrices are banded and uses such algorithms for solving the problem.

You don't need a PhD to use these algorithms as they are available in text books just as gaussian elimination is available for handling the full matrix. If you dont trust the results then check them against other 'free' FE codes, or simply by hand calculations.

The advantage of the major software producers is that they can handle complex geometry easier. The preparation of the model geometry can be the biggest part of the problem so that is where they have the advantage. If you're just using assessing simple geometry then home grown software can be a cheaper alternative. The only problem is that companies prefer results to come from reputable software. Although many of these major software companies produce code that has bugs in them, they are the preferred option if you're producing results for an outside company. In any case, whatever the source of your FE model you should check the results regardless.

corus
 
Thank-you on the Fortran front. Not a dead language especially when it comes to 0.000000000000etc37416 x .......... on a banded matrix, double precision for sure. Fortran 77 still using my Microsoft compiler on a 486. Just spits out piles of numbers. Like it that way.
 
corus,

Fair enough, you probably don't need a PhD to code some of these algorithms (I was perhaps a bit too hasty), but I think you should have a good understanding of the math and assumptions behind them I suppose, which will require a certain amount of research and investigation.

What was you FE analysis completed in? 20 seconds is pretty good for 2000 elements. What type of analysis was it?

DRW75
 
DRW75, the answer is a thermal analysis. This is obviously quicker to compute as only one degree of freedom exists per node. I believe that the computation varies with the square of the unknowns, so a problem with 2 dofs (such as a 2D plane stress/strain problem) would take 4 times as long. Obviously the time also depends on your computing power.

I'm not so certain that you need a good understanding of the maths and assumptions behind the algorithms for matrix solvers before you can use them just as I don't need to know how my tv works in order to watch it. You may be worried more about iterative solvers and when convergence has been obtained however, but for direct solvers they work in all cases. One check that is made in direct solvers is checking for zero diagonals. This indicates that either the stiffness matrix of an element is zero or the boundary conditions haven't been described properly. This is usually described in solvers as a zero 'pivot' and prevents division by zero when solving. Only a poor software developer would omit such a check.

For the development of the general FE code you would need an understanding of the principles behind the code, as I have seen some instances where the software was wrong in theory. As I said before you should check the code anyway using a wide variety of problems to check it's validity, bearing in mind that FE is only an approximate solution and does have its limitations.

corus
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor