[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[femlisp-user] Femlisp-0.9.10 is released

From: Nicolas Neuss
Subject: [femlisp-user] Femlisp-0.9.10 is released
Date: Sat, 13 Mar 2010 17:18:24 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Dear Femlisp users (and lurkers),

after some pause when I was occupied more with web applications, I have
returned to improving Femlisp (at least, the official version, I have
never stopped to make changes in my private copy).  Now, I think it is
time for a new version.  I have thought about calling it Femlisp-1.0,
but decided against it finally.  I intend to release a version
Femlisp-1.0 in this year, but I want at least to correct the error in
the BUGS file.

Best regards,
Nicolas Neus

>From the CHANGES file:

* From Femlisp-0.9.9 to Femlisp-0.9.10:

Several DX graphic windows are allowed in parallel.

General anisotropic refinement rules are allowed.

Different dimensional subparts are allowed for domains/meshes on which
different models can be solved, e.g. 1d-models coupled with 3d-models, etc.
Plotting works by extracting subparts of the domain of a certain dimension.

Introduced plotting of point distributions in the Gnuplot interface.

Femlisp has been ported to Clozure CL and also CLISP.  On CLISP, it is very
slow.  This could be improved by using LAPACK routines (e.g. by using
Matlisp) instead of routines written in Lisp for basic matrix-vector

The ALGEBRA module has been merged into the MATLISP module.  The ALGEBRA
package has been removed.

The ALGEBRA package was restructured.  Especially, @class{<sparse-matrix>}
is much more general now, and allowed for the introduction of just-in-time
calculated matrices which will be introduced in some later Femlisp version.

I separated the Femlisp ASDF system definition in @file{femlisp.asd} into
ASDF systems called "femlisp-basic", "femlisp-matlisp", and "femlisp".
Especially "femlisp-basic" can be used also from other applications, and
"femlisp-matlisp" might develop into a Matlisp replacement.  All system
definitions are still contained in @file{femlisp:femlisp.asd} (which should
therefore be linked also under the names femlisp-basic.asd and
femlisp-matlisp.asd in the ASDF systems directory, if those modules are
used separately).

Our institute has purchased a Lispworks license and I have ported Femlisp
to Lispworks.  Unfortunately, my Allegro license has expired and I cannot
test with Allegro any more at the moment.

Included code for interfacing to LAPACK in @arg{matlisp;lapack.lisp}.
Especially, an interface to the solution of generalized eigenvalue problems
is available in @arg{matlisp;hegz.lisp} and @arg{matlisp;ggev.lisp}.

The ordering of the matrix arguments of MEXTRACT has been changed to fit
better with the intuitive language "extract X from Y".  MEXTRACT and
MINJECT have been renamed to MEXTRACT! and MINJECT! to fit better with the
naming of other destructive Matlisp functions.

Restructuring of the module "basic" in @arg{femlisp.asd}.  

Properties of @class{property-mixin} instances can now be accessed using
@function{slot-value} and @function{with-slots}, in addition to
@function{get-property}.  Such property slots are always bound: if they are
not bound otherwise, they are bound to NIL.

Dropped @function{extend-matlisp-function} after a discussion in
comp.lang.lisp.  The functionality is now provided by @function{matlisp} in

Fixed an hideous bug in domain.lisp which lead to the wrong
characterization of the bottom of a cube domain.

There is a new approach of problem definition in @file{problem;pdef.lisp}
with the help of a macro @macro{create-problem}.  Old definitions are still
used, but may finally be replaced.  The performance impact should be traced
carefully when doing this step.  However, the new form in principle offers
even more possibilities for optimization.

The FE discretization of @class{<ellsys>} problems handles multiple
coefficients of the same type additively.  The Rothe time-stepping scheme
was simplified using this feature.

General elliptic systems: @class{<cdr-problem>},
@classs{<elasticity-problem>}, and @class{<navier-stokes-problem>} have
been changed into special cases of @class{<ellsys-problem>}.  This should
result finally in considerably less source code.  However, at the moment,
the old Navier-Stokes code is still used, and the new code is in a separate
package called @package{navier-stokes-ellsys}.

Generalized fe discretization: the vector form is now used everywhere but
in internal fe operations.

Structural improvement: the necessary local<->global matrix/vector
extraction information is computed lazily in @file{sparseif.lisp}, where it
is needed.

Performance improvement: avoiding to call @function{make-instance} with
keyword arguments in functions like @function{zeros}, @function{ones},
@function{ensure-matlisp} leads to a noticeably higher overall performance
(something like 20%), especially for CMUCL and SBCL.

I changed the color of 1d plots in DX, because yellow axes and white graphs
did not work in some situations (probably due to a bug in DX).

Depending on the parameter @var{fl.graphic::*show-dx-window*}, DX windows
do not pop up when plotting.

Removed a bug in force/delay.

PD Dr. Nicolas Neuss   KIT Karlsruhe   Tel: 0049-721-608-7634
Email: address@hidden   WWW:  <http://www.math.kit.edu/~neuss>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]