2008-03-02 Borek Patzak * New installation and compilation procedure implemented. Now uses "targets", representing set of specific settings to produce target executable. Targets allow to set up specific compilers, compiler options, include different external libraries, etc. Arbitrary number of targets can be configured and built. In order to compile solver (oofem), its parallel version (poofem) and graphics post-processor (oofeg) you have to set up three different targets. The project directory structure has been altered. The new installation instructions as well as directory structure are described in README file. * Implemented generic dynamic load balancing framework for parallel jobs. Most of the time has been devoted to development of framework general structure and corresponding fundamental algorithms. Despite this, this framework is ready to use for nonlinear static computations. Active development is scheduled for upcoming versions in this direction. * Corrected implementation of orthotropic material, now uses major Poisson's ratios (submitted by Douglas Beaton). Improved and enhanced corresponding documentation entry. * Added implementation of 2D and 3D level set algorithm for tracking evolving interfaces. * Added b-bar lspace element (lspacebb) for incompressible problems * Added InputRecord giveField method allowing to read FloatMatrix values directly. * Added set of new macros allowing to declare enum types and automatically generate function returning string representation of enum value. Implementation is inspired by X-Macros technique, as described in Wikipedia entry on C preprocessor (http://en.wikipedia.org/wiki/C_preprocessor) Some frequently used enums converted to new style and new string to enum conversions are used in many error reporting sections throughout the modified sources. Also vtk export module uses this technique to tag exported fields using their real names instead of integer numbers. * Fixed PETSc error in linear static when negative code numbers encountered. Used VecSetOption call to ignore negative indices. * Scaling of dof manager loading in assembly operations implemented in general service at Engng model level. Individual implementations at particular engng models consequently removed. * Fixed major bug causing invalid assembly of symmetric DSS sparse matrices (SMT_DSS_sym_LDL and SMT_DSS_sym_LL). The unsymmetric variant SMT_DSS_unsym_LU has been assembled correctly. * Fixed - char pointers in error and warning reporting methods made const to remove compiler warnings of new gcc (4.2.2), related to conversions from string to char* * Consolidated LinSystSolverType, particularly removed ST_CG and ST_GMRES values, which are replaced by a single ST_IML value. The values of this type should be related not to specific solvers, but more likely to specific packages that provide linear solver interface (and can offer several types of solvers under single interface) and which are represented by a class derived from SparseLinearSystemNM. The selection of particular solver from package should be done using keywords, related to particular package. The side effect is that the values of "lstype" parameter have changed. * Fixed problem in vtk export module preventing to export temperature field. New UnknownType value introduced for temperature itself, while FluxVector value scheduled for mass concentrations. * Changed prototype for VecScatterBegin() and VecScatterEnd(), needed to compy with PETSc 2.3.3. Added MatSetFromOptions call to allow runtime petsc config * Solution of quadratic equation in cubic modified to more careful floating-point implementation * Save&Restore context services migrated to use DataStream representation instead of plain FILE * Many minor enhancement and bug-fixes. 2006-11-02 Borek Patzak * OOFEM 1.7 released * Added new solution algorithm for incompressible flow using SUPG/PSPG stabilization and corresponding elements. * Added support for incompressible analysis of two immiscible fluids on a fixed domain in 2D, based on VOF approach. This also allows to analyze problems with free-surface flow. * Added new Direct Sparse Solver (contributed by R. Vondracek). Use --enable-dss when running configure. * Improved truss2d implementation (contributed by P. Grassl) that allows this element to be defined all planes, not only in xz plane * Added constitutive model for Bingham fluid * Fixed bug in domain.C preventing to have more initial than boundary conditions * Updated to new PETSC (petsc-2.3.2) and mpich2 (1.0.4p1) releases * Fixed non-linear static load assembly for shared nodes in parallel mode specified on all partitions. (this is supposed to be easier for domain decomposition tools) * Simplified makefile syntax (thanks to L. Svoboda) * Many minor enhancement and bug-fixes. 2005-10-24 Borek Patzak * OOFEM 1.6 released * Released adaptive framework. This includes new classes representing general error estimator, remeshing criteria and mesh generator interface. The adaptive linear and nonlinear static analyses are now available (see oofemInput manual for details). True adaptivity with primary and internal variables transfer is supported. The Zienkiewicz-Zhu error estimator and error indicator are provided for linear and nonlinear problems. Actually supported only by selected elements and material models. Adaptivity requires external mesh generator. * Implemented dynamic relaxation to serial/parallel nonlinear explicit dynamic, allowing to solve static tests (with proportional loading). This uses "optimum" load history that minimizes the inertia and damping forces. * Added new FM module (Fluid dynamic) * Added CBS algorithm for incompressible transient flow analysis including the constitutive model for Newtonian fluid, and linear 2d element with equal order velocity and pressure interpolation. * Introduced new keywords in domain components record! This includes ndofman, nelem, nmat, ncrosssect, nbc, nltf to identify number of domain components. See oofemInputManual for details. * Released implementation of MDM model (Anisotropic damage model). * Added exchange of reaction contributions for shared dofs. Works for pnldeidynamic, nlinear and linear statics. * Fixed contex fopen call (added "b" flag) to correctly open binary context file on non posix platforms * Added new IMLPrecondTypes : IML_ILU_CompRowPrec, IML_ILU_CompColPrec. Deleted old one IML_ILUPrec. * Removed plaintextdatareader.* (also from cvs) -> replaced by oofemtxtdatareader.* * Removed plaintextinputrecord.* (also form cvs) -> replaced by oofemtxtinputrecord.* * Implementation of generalized inputreader and datareder services; input reader is now abstract class declaring only basic services. Fields in particular record are identified by both InputFieldType value and corresponding string value, both are passed as arguments. Particular implementation of inputrecord can use the one or another to determine the requested value, and at the same time, the passed string is used to report possible error(s) in human readable form. String values are used in parsing oofem input files, while InputFieldType values can be used to retrieve values from binary files, databases, etc. * Updated to new petsc-2.3.0. * Updated to mpich-1.2.6 * Element Class: all dof managers: nodes, sides, and internal dofs are now stored in single dofManArray, new attribute numberOfDofMans introduced, which replace old numberOfNodes and NumberOfSides. The new method returning numberOfNodes is introduced. The method returning particular node (giveNode, but made virtual) is preserved to allow loop only over nodes. This allows to introduce additional dof managers and dofs at element level (internal nodes, etc.) that are not condensed. * oofeg: the plot of beam quantities (forces/moments/strains) decoupled from stress/strain plot, oofeg accepts the (-l) option allowing to set verbose level, added visualization to libeam3d2 elements (using markers). * UnknownType replaced by EquationType {ET_MomentumEq, ET_ConservationEq} * Added test length of maxa columns in skyline (if set to initial value, there is no stiffness for this equation) * Fixed error in generalized eigen value solver based on subspace iteration * Added new generalized eigen value solver based on inverse iteration algorithm * Added short docs for linear stability * Fixed test for end-of-file while reading raw line in oofemtxtdatareader.C * Added captions in output file allowing to better distinguish dofman, element, and other sections * Added donotfixload flag in nlinearstatic that will not fix load level after metastep termination * Automatic time step control in CBS * CBS equation can now be scaled (dimensionless support) * Removed win32 support 2004-04-14 Borek Patzak * OOFEM 1.5 released * Linear and nonlinear static analyses can be run in parallel (requires PETSC support). * Implemented serial and parallel interface to PETSC library (requires version 2.2 or higher; available at http://www-unix.mcs.anl.gov/petsc/petsc-2/). Added new configure option "--enable-petsc" to compile PETSC support. * Enhanced documentation (oofemInput, material library manual). * Implemented reading of records in arbitrary order (entity number now relevant). * New message and error reporting - supports different log levels, filtering, multiple log objects, counter for errors and warnings, macros for easy and consistent error and warning reporting). Added "-l" program option allowing to set verbosity level. * Added symmetry nonlocal barrier, allowing to enforce symmetry constraint on averaging field. * Added new multisurface model for masonry. * Added new multisurface plasticity driver (MPlasticMaterial2). * Added new program parameter "-c" with same meaning as -context (-context becomes obsolete). * Added stress/strain transformation procedures into stress/strain vectors. * Added line search algorithms to nonlinear solvers. * oofem and poofem input manuals migrated together. * Fixed problem in NRsolver, where for direct displacement control, stiffness is modified and if elastic matrix is used it should be reassembled for new metastep. * Fixed problem in NRsolver, where BC constraints were enforced multiple times (for any solution step) leading to loss of precision (too huge numbers on diagonal). * Splitted communicator class into separate buffer and communicator classes (allow sharing of buffers between several communicators). * Fixed the Sloan renumbering procedure to work with standalone nodes and separate sub-domains. * Many minor enhancement and bug-fixes. 2003-04-04 Borek Patzak * OOFEM 1.4 released * Significantly improved parsing of input files. Non-relevant tokens are detected and reported. * Added support of serial version of SPOOLES sparse direct solver (http://www.netlib.org/linalg/spooles/). * Removed obsolete macros IMPLEMENT_DYNAMIC and DECLARE_DYNAMIC. The standard dynamic_cast and static_cast operators should be used instead. * Added support for unsymmetric stifness element matrices at structural element level. * Implemented stress and strain vectors. The keep their stress-strain mode (like plane stress or plane strain) and provide many useful services. Their purpose is to facilitate implementation of constitutive laws. * Implemented interpolation classes. The idea is to simplify the element implementation by providing common interpolation classes with corresponding services (evaluation of shape functions, derivatives, jacobians, transformation of global coordinates to local ones and vice versa, etc). The implementation of isoparametric interpolations is provided. * Upgrade of Elixir library to actual version required. * Fixed problem in parallel explicit dynamics - the element load for shared dof managers is now properly transferred to adjacent subdomains. * Merged similar types CharTypeMode and UnknownTypeMode into ValueModeType. * Implemented abstraction of fields. Field represent the spatial distribution of certain variable. Fields are able to evaluate its value at any point of interest at given time. * Added new module for solving transport problems (tm directory). Current capabilities include stationary and transient analysis of heat and coupled heat&mass transfer problems for axisymmetric, two, and three dimensional cases. * Added tests for tm module. Test splitted into separate directories corresponding to particular modules. * Added general staggered problem, which allows to group basic problems together and to transfer and share the solution fields between basic subproblems. It allows, for example, to simultaneously solve heat transfer analysis and mechanical analysis, where temperature field generated by heat transfer anaslysis is used in mechanical analysis as teperature loading. Moreover, a general implementation allows to use different discretizations for basic subproblems. * IML sources excluded from basic distribution. They should be downloaded separately. Added configure option to include IML support during compilation. 2001-12-09 Borek Patzak * OOFEM 1.3 released. * Redesigned the input data parsing. Significantly improved the checking of input syntax. Missing compulsory keywords and syntax errors are now consistently reported. The new implementation (by using abstraction for input record) possibly allows the transparent handling of different input sources in the future. * Improved several features of postporcessor (oofeg). Deleting layer graphics optimized, fixed graphics flickering for several render modes when removing/drawing objects. * Implemented new efficient algorithm with significantly less memory requirements for internal structure allocation of coordinate based sparse matrices. * Direct displacement control now implemented by class NRSolver. The direct displacement control and direct load control are now supported. The non-linear problem can be now solved under direct load control, direct displacement control, indirect control, or their combination. * Added support for data export in vtk format (vtkexportmodule). Implemented as export module. The scalars, vectors, and symmetric 3x3 tensors are fully supported, general tensors are exported component-wise as scalars. * Changed the concept of Engng model -> Nummet mapping. The derived classes from NumericalMethod should declare the interface for specific problem type (like solution of linear system). The interface now consist in declaring virtual abstract function solve, with parameters corresponding to class of problems under consideration. The solve method should return value of NM_Status type. (Other parameters can be provided via instanciateYourself service, which receives the init record of Engng method). The data are specified using parameters passed to solve method (so called mapping). * Directory structure modified. The library directory renamed to oofemlib, sm directory now treated as real module - a corresponding library is created. The new main directory created containing global "main" functions and some other global functions. This new structure better comply with modular design of oofem and allows simple addition of new modules in the future. * Fixed problem if there is no numerical method associated with e-model (nldeidynamic). * Fixed edge load transformation for traplanestress and trplanestrain elements. * Fixed error in evaluation of reaction forces with element load contribution in non-linear problems with non-proportional loading. * Mdm material model functionality extended to plane strain. Mdm model now accept latest format of input parameters. * Added math error handler via matherr function * Several changes to compile even more smoothly on different platforms. Fixed missing Elixir declaration of EVFastRedraw function. Added initialization of len variable in readQuotedString in strreader.C causing problems on some compilers. No news for earlier releases.