First of all thank you for the really fast answer.
Roy Stogner schrieb:
On Wed, 14 Feb 2007, Ingo Schmidt wrote:
That's what I thougt first, too. But It would be a pity not to avail
the given libmesh structure and implementing such algorithms anew.
I'm looking for someone with experience
applying libmesh to nonlinear
structural dynamics, e.g. material and/or large displacements/strains
who could answer me some (essential and specific) questions?
a) Which "System" (DiffSystem(FEMSystem), NonLinImplicit,
TransientSystem) is the best choice?
>From your perspective, the best choice may be to start with a
LinearImplicitSystem and let your application code add the additional
vectors and perform the particular time integration & nonlinear
strategies that you need.
Furthermore violates that strategy, in my opinion, a bit the philosophy
and ideas of libmesh and impair the whole framework (or?).
From my perspective, I'd like to have more FEMSystem users
That would not be the problem. There will be no big difference between
bugfixing in libmesh or in my own coding.
suggestions for make that interface more flexible, but I'll understand
if you don't think the additional framework features are worth
becoming a guinea pig for new library code.
I'd like to sustain the newmark time stepping scheme and modify it due
to different orders of time derivates for the displacement (second) and
pressure (first) field.
b) It seems that the FEMSystem is in
principle a really good framework,
but are the necessary changes to consider e.g. the second time
derivatives, other time stepping schemes etc. feasible without
destroying the given FEMSystem structure?
Keep in mind that "destroying the given FEMSystem structure" is still
an option - my latest major change was committed to CVS yesterday.
The warning call printed out by "untested();" in the DiffSystem
constructor isn't going to be taken out by 0.6.0, and as long as you'd
be ready to make simple changes to your code to handle any slight
future API breakage, we'd be willing to introduce some slight API
breakage on your behalf as well.
Second time derivatives could be handled in several ways depending on
your formulation - the most obvious that comes to mind would be to
introduce a new TimeSolver subclass that treats *_time_derivative()
methods as returning weighted second derivatives. I'd have to know
the details of the time stepping schemes you have in mind to tell you
how feasible they are.
Subsequently, I tinker with the idea of employing a discontinous
galerkin method. Therefore the new FEMSystem could be a perfect
framework for switching between different time stepping schemes.
The other idea was to do multiple inheritance for the newmarksystem
class (LinImplSys and NonLinImplSys) but I'm not able to estimate the
effort of implementing that (including PETSc interface programming,
etc... ) and if there will appear some general conflicts in libmesh....
Alltogether the FEMSystem seems to me the best choice. So I will go on
to dismantle example 18 to become familiar with that FEMSystem. Is
there a chance to get more information about the solved (strong and
weak form, discretised in time and space) PDE? I mean I'm not that
familiar with fluid dynamics and that Navier-Stokes stuff.
Thanks in advance.
Dipl.-Ing. Ingo Schmidt
Institute of Modelling and Computation
Hamburg University of Technology
Building L/ room: 3032