Menu

Tree [25dbc5] master /
 History

HTTPS access


File Date Author Commit
 ATP 2018-12-20 Alfred Steffens Jr Alfred Steffens Jr [7495f2] HMD v4.4.36.beta -- Fortran Wrapper Prototypes...
 LTP 2017-08-12 Alfred Steffens Jr Alfred Steffens Jr [d8baa6] Check-in to v4.3.13 - Parser mods, Evaluate_S...
 doc 2016-04-02 Alfred Steffens Jr Alfred Steffens Jr [bbbb96] Check in to v4.1.21 Command-line help and Dif...
 examples 2018-12-29 Alfred Steffens Jr Alfred Steffens Jr [ed5f92] HMD v4.4.38.beta -- Bug fixes: Func Redef, Flus...
 help 2018-12-29 Alfred Steffens Jr Alfred Steffens Jr [ed5f92] HMD v4.4.38.beta -- Bug fixes: Func Redef, Flus...
 include 2018-12-20 Alfred Steffens Jr Alfred Steffens Jr [7495f2] HMD v4.4.36.beta -- Fortran Wrapper Prototypes...
 lisp 2017-02-01 Alfred Steffens Jr Alfred Steffens Jr [5062ae] Check-in to v4.3.10 Bug fix in Lisp interface
 scripts 2016-04-08 Alfred Steffens Jr Alfred Steffens Jr [eda477] Check in to v4.2.0 Difference Table and HmdTk
 src 2021-06-03 Alfred Steffens Jr Alfred Steffens Jr [25dbc5] v4.4.40 -- Bug Fixes
 tcl 2018-12-24 Alfred Steffens Jr Alfred Steffens Jr [8c182a] HMD v4.4.37 -- Tcl Interpreter Bug Fixes, BLT T...
 AUTHORS 2018-12-24 Alfred Steffens Jr Alfred Steffens Jr [8c182a] HMD v4.4.37 -- Tcl Interpreter Bug Fixes, BLT T...
 COPYING 2014-08-24 Alfred Steffens Jr Alfred Steffens Jr [463513] Initial Project Version -- HMD 4.0.0
 ChangeLog 2021-06-03 Alfred Steffens Jr Alfred Steffens Jr [25dbc5] v4.4.40 -- Bug Fixes
 HOWTO 2017-03-18 Alfred Steffens Jr Alfred Steffens Jr [643eac] Check-in to v4.3.11 Fix to Lisp stdout to Tk...
 INSTALL 2021-06-03 Alfred Steffens Jr Alfred Steffens Jr [25dbc5] v4.4.40 -- Bug Fixes
 Makefile.am 2018-04-08 Alfred Steffens Jr Alfred Steffens Jr [c388aa] HMD v4.4.18 -- First coding for MACRO capabilit...
 NEWS 2018-10-13 Alfred Steffens Jr Alfred Steffens Jr [ab7e68] HMD v4.4.35 -- Polynomial Roots, Progress in GU...
 README 2018-12-29 Alfred Steffens Jr Alfred Steffens Jr [ed5f92] HMD v4.4.38.beta -- Bug fixes: Func Redef, Flus...
 THANKS 2014-08-24 Alfred Steffens Jr Alfred Steffens Jr [463513] Initial Project Version -- HMD 4.0.0
 autobuild.sh 2014-08-24 Alfred Steffens Jr Alfred Steffens Jr [463513] Initial Project Version -- HMD 4.0.0
 compile 2021-06-03 Alfred Steffens Jr Alfred Steffens Jr [25dbc5] v4.4.40 -- Bug Fixes
 configure.in 2021-06-03 Alfred Steffens Jr Alfred Steffens Jr [25dbc5] v4.4.40 -- Bug Fixes
 hmd_logo.jpg 2014-08-24 Alfred Steffens Jr Alfred Steffens Jr [463513] Initial Project Version -- HMD 4.0.0
 license.txt 2018-04-08 Alfred Steffens Jr Alfred Steffens Jr [c388aa] HMD v4.4.18 -- First coding for MACRO capabilit...

Read Me

--------------------------------------------------------------------------
    README file for HMD for Computer Modeling
--------------------------------------------------------------------------

Last updated 3-19-2017, version 4.3.11


Contents
---------

1.	Required Packages

2.	Building HMD

3.  Installing HMD

4.	Getting Stated

5.	Capability

6.	Known bugs



--------------------------------------------------------------------------
--------------------------------------------------------------------------
Introduction
--------------------------------------------------------------------------
--------------------------------------------------------------------------

This source distribution was created with the GNU autotoolset.  Building
and installing this software is performed with the standard GNU "tarball"
procedure of

	./configure
	make
	make install

Note that there are some required arguments that must be passed to ./configure
(see below).  The default installation path (resulting from "make install")
is /usr/local.  It is recommended that you keep the source distribution on
your hard drive after the installation, although it is not required.  If
you keep the source distribution you will have the examples, and you will
be able to uninstall the software at any time using "make uninstall".  A
good place for the distribution might be /usr/local/src.  When the source
tarball is unpacked the subdirectory hmd-x.x.x is automatically created,
where x.x.x is the version number.


--------------------------------------------------------------------------
--------------------------------------------------------------------------
1.	Required Packages
--------------------------------------------------------------------------
--------------------------------------------------------------------------


*	GNU ReadLine
	Provides command line text editing in interactive mode

    The build package looks for GNU Readline installed on your computer.
    If it is found, then the interactive command-line capability will
    be built into your program.  If GNU Readline is not installed on
    your computer, then you can still use HMD to execute .hmd scripts,
    but there will be no interactive prompt--in other words, typing
    "hmd -i" will cause hmd to exit immediately.  If you want the
    interactive prompt you must download and install GNU Readline, then
    rebuild the HMD package.  This package will almost always be already
    be installed on your Linux distribution.

*	LAPACK
	Reguired for the matrix algebra
	(LAPACK is now included in the package--you do not need to worry
    about downloading and installing)

*   Tcl/Tk (optional)
    If you want to run the graphical user interface (hmd -j) you need
    to have Tcl/Tk installed on your computer.  If so, the ./configure
    script will find it, and the Tcl/Tk interface will be compiled into
    the program.  The program executes some Tcl scripts which will be
    located in the share path, usually /usr/local/share/hmd/tcl.

    Any serious Linux/Unix distribution should have Tcl/Tk already
    installed.

*   BLT (optional)
    You should not have to worry about this unless something goes wrong.
    The BLT library is a subset of the Tcl/Tk functionality.  A compiled
    BLT library is provide and distributed into the share path, which
    will usually be /usr/local/share/hmd, hence the libraries will be
    found inside /usr/local/share/hmd/tcl/blt.  This approach is yet
    experimental (12-24-2016).  If the BLT libraries do not run because
    of an incompatibility with the version of Tcl/Tk you have on your
    machine you will need to install and compile your own BLT package
    and copy the libraries into the share path stated above.

    Dec 2018: the BLT 2.5 source tree is distributed in the HMD source
    tree under HMD_SOURCE/tcl/blt/blt2.5.  You need to build this package
    before running the HMD versions of ./configure, make, make install.
    See the file README_hmd under HMD_SOURCE/tcl/blt/blt2.5.

*   TkTable (optional)
    You should not have to worry about this unless something goes wrong.
    The TkTable library is a subset of the Tcl/Tk functionality.  A compiled
    TkTable library is provide and distributed into the share path, which
    will usually be /usr/local/share/hmd, hence the libraries will be
    found inside /usr/local/share/hmd/tcl/tktable.  This approach is yet
    experimental (12-24-2016).  If the TkTable libraries do not run because
    of an incompatibility with the version of Tcl/Tk you have on your
    machine you will need to install and compile your own BLT package
    and copy the libraries into the share path stated above.

    Dec 2018: the TkTable 2.11 source tree is distributed in the HMD source
    tree under HMD_SOURCE/tcl/tktable/tktable2.11.  You need to build this
    package before running the HMD versions of ./configure, make, make install.
    See the file README_hmd under HMD_SOURCE/tcl/tktable/tktable2.11.

*   ECL Embedded Common Lisp (optional)
    If you use the graphical user interface the Lisp interpreter window
    will be available.  ECL is not a standard Linux/Unix package.
    You must have already installed ECL on your computer.  When you build
    HMD, and ECL is alread installed, the HMD configure script will find
    ECL and build the Lisp interface into the program.  But you will not
    be able to use it unless you have Tcl/Tk and the program is started
    with  "hmd -j -k".

    The HMD interface to ECL assumes that you built ECL without unicode.  To
    see whether you have a conflict enter a simple floating point number
    assignment into the Lisp interpreter console, say (setq x 1312.45) and
    observe the console echo.  If there is only one digit displayed, or if
    the echo looks trashed then you compiled your ECL distribution with
    unicode on.  You could rebuild ECL with
         ./configure --enable-unicode=no --with-unicode-names=no
    Or, if you feel you cannot live without unicode, edit the HMD source file
    called eval_lisp_ecl.c.  Put #define ECL_BUILD_WITH_UNICODE near the top
    of the file.


GNU READLINE
------------

HMD requires the READLINE package for the interactive console prompt.  This
package should be installed on most Linux distributions, but I don't know
for sure which distributions have it.  I know for sure that Slackware comes
with READLINE already installed.  If your distribution doesn't have it, then
you need to download it from the GNU site and build/install it on your
machine.



LAPACK -- package for linear algebra
------------------------------------
As of version 3.1.0  (7/30/2005) the LAPACK source files are included in the
HMD source distribution, so you don't need to download and install this package
separately anymore (but information about how this would be done is retained
at the bottom of this file for reference).



GMSH
----

HMD is a model solver.  So where are the neat wire-frame 3D images I
wanted to see using a computer modeling tool?  HMD uses another program
for this.  It's called GMSH.  It is available from www.geuz.org/gmsh
and can be downloaded for free.  GMSH is used as a standalone program,
not a library, so you don't have to worry about building it.  Just
download it and install it.

You create a mesh file with GMSH.  This file will have a file extension
.msh.  This file is what HMD needs to complete its finite element model.
The GMSH mesh file name is specified as an HMD script command.




--------------------------------------------------------------------------
--------------------------------------------------------------------------
2.	Building HMD
--------------------------------------------------------------------------
--------------------------------------------------------------------------

First, navigate under the HMD Mathematics source tree to the blt/blt2.5
directory and build BLT.  See the file README_hmd under
HMD_SOURCE/tcl/blt/blt2.5.

Then, navigate under the HMD Mathematics source tree to the
tktable/tktable2.11 directory and build TkTable.  See the file README_hmd
under HMD_SOURCE/tcl/tktable/tktable2.11

After you have verified that the GNU Readline and Termcap libraries are
installed, you can build and install the HMD package.  I recommend copying
the source distribution tarball file into /usr/local/src.  Unpacking the
distribution file will automatically create a subdirectory for HMD and put the
project files there.

Unpack the "tar ball" with the following commands:

			gzip -d hmd-x.x.x.tar.gz
			tar xvf hmd-x.x.x.tar

	or just

			tar zxvf hmd-x.x.x.tar.gz

For the newer BZIP2'd distributions (.bz2 extension), use

			bzip2 -d hmd-x.x.x.tar.bz2
			tar xvf hmd-x.x.x.tar


Note that the "x.x.x" in hmd-x.x.x.tar.gz means the version number.  Note that
it doesn't matter whether the file extension is .tar.gz or .tgz.

Change directory to the hmd-x.x.x directory.  Build the project with
the following commands:

			./configure

Now run

			make

This will build hmd, intp, and other utility programs all at once.


--------------------------------------------------------------------------
--------------------------------------------------------------------------
3.	Installing HMD
--------------------------------------------------------------------------
--------------------------------------------------------------------------

You don't have to do a formal "install" step to run HMD if you don't want
to.  The formal install step, which uses the standard GNU software installation
scripts, will copy the HMD executable programs into your /usr/local/bin
directory (where all users on you system can use HMD).

If you want to install the package into the standard GNU file locations (should
be /usr/local/bin), then type the following command:

			make install


Otherwise, you can just cp the HMD executable file, hmd*, to whatever directory
you want and use it there.

After you have installed HMD (ONLY AFTER YOU INSTALL), you can run

			make clean

to remove all the temporary files.


--------------------------------------------------------------------------
--------------------------------------------------------------------------
4.	Uninstalling HMD
--------------------------------------------------------------------------
--------------------------------------------------------------------------

When it's time to uninstall HMD you can use

			make uninstall

Make sure that you keep the uninstall scripts from the package directory so
that you can uninstall later.  The safest way to do this is just leave the
source code in /usr/local/src (where I assume you built HMD) and after install-
ation is complete run

			make clean

to get rid of the temporary files in the source directory.  Then, when you want
to uninstall HMD, change directory to the source directory and run "make
uninstall".





--------------------------------------------------------------------------
--------------------------------------------------------------------------
5.	Getting Started
--------------------------------------------------------------------------
--------------------------------------------------------------------------

If you ran "make install", then the HMD programs will be in /usr/local/bin
which should already be in your PATH.  You may then run HMD from any directory.
If you didn't run "make install", then you will need to cp the executables
into the directory where you are working.

Type

	hmd -V

and the program should run, displaying the version number.



Running a model
---------------

Hmd reads and executes script files.  For example, if we want to run the
script file called "fe1.hmd" we would type the following command at the
command line:

	hmd -f fe1.hmd



Try it with example #1
-----------------------

To try example #1, change directory to a "work" directory.  Copy the following
files from the HMD examples directory (in the source package) to your work
directory:

	fe1.hmd
	fe1.msh

Note that I already created the mesh file, fe1.msh, for you.  You could have
created it your self by running GMSH with the input file fe1.geo to produce
fe1.msh.

Notice that you need at least two files:  the HMD command script and the mesh
file.  Now execute the program:

	hmd -f fe1.hmd

That's all it needs.  You should get an output file called "fe1.dat", which is
an ascii text file that will have 5 columns in the following order:

1.  The node number corresponding to the data value.

2.	The data value.

3.	The x coordinate for that node.

4.	The y coordinate for that node.

5.	The z coordinate for that node.


There will also be an output file called "fe1.inp".  This is a file ready to be
read into the GMV graphical viewer.


Interactive Mode
-----------------

You can run HMD interactively (like using Scilab or Matlab) with a variable
workspace by starting HMD with the following command:

	hmd -i

From interactive mode, you can run an HMD script by typing

source <hmd_script_file_name>

where, of course, <hmd_script_file_name> must be replaced by the name of your
HMD script file.

How do you exit from interactive mode?  Type exit.

The graphical user interface can be used if Tcl/Tk is on your machine.
The GUI is invoked when you start the program with

    hmd -j

Possible errors that would occur trying to use the "-j" option:

    tclGUI_Main returned -7

The Tcl/Tk script for displaying the GUI cannot find the share path.  This
should not occur for a normal Linux install.  We look for the share path
either in /usr/local/share/hmd or /usr/share/hmd.  But if you are trying to
run from a non-standard location you need to manually set the share path on
the command line or with the .hmd_config file in the current directory.  The
HMD share folder will contain a subdirectory called tcl.  This will be a
subdirectory in the source tree that is automatically copied to the share
path for a normal installation.  If you did not perform a normal installation
then whereever to have the HMD share files, say /home/hmd, you can use a
command line option

    -s /home/hmd

or create a file called .hmd_config in the location where you're invoking
HMD, and put the share location in it, like

    hmdsharepath = /home/hmd

See the section called FILES.

This would be a problem also for Windows users who want to run HMD from a
different folder than the installation folder.  But in this case the file
would be called hmd_config.cfg.

The missing share path prblem could also cause a BLT not loaded error or
a TkTable not loaded error.


----------------------------------------------------------------------------
--------------------------------------------------------------------------
5.	CAPABILITY
----------------------------------------------------------------------------
--------------------------------------------------------------------------
5/14/2003
A. Steffens Jr.
----------------------------------------------------------------------------
----------------------------------------------------------------------------



In terms of the maximum size of model you can build with HMD.
Maximum number of nodes on a PC with 512 Mb RAM:


Model Type			standard		packed			band-packed
-------------------------------------------------------------------------

Poisson				?				?				16850

Eigenmodes			5120			12282
-------------------------------------------------------------------------



----------------------------------------------------------------------------
--------------------------------------------------------------------------
6.	(Known) Bugs:
----------------------------------------------------------------------------
--------------------------------------------------------------------------

The SPARSPAK routine 1WD fails trying the create a band matrix with a mesh
created on a toroidal geometry.


----------------------------------------------------------------------------
--------------------------------------------------------------------------
7.  LAPACK -- package for linear algebra
----------------------------------------------------------------------------
--------------------------------------------------------------------------

This is a well-known linear algebra package freely available at 
		http://www.netlib.org/lapack

It was written an debugged by mathematicians
		E. Anderson
		Z. Bai
		C. Bischof
		S. Blackford
		J. Demmel
		J Dongarra
		J. DuCroz
		A. Greenbaum
		S. Hammarling
		A. McKenny
		D. Sorensen

LAPACK is used in Matlab, as well as other matrix algebra software
programs such as Scilab and ALGAE.


----------------------------------------------------------------------------
----------------------------------------------------------------------------
8.  FILES
----------------------------------------------------------------------------
----------------------------------------------------------------------------

Files generated and/or used by the HMD program for configuration or other
purposes.

.hmd_config

    Contains configuration that apply only to the local session.
    1.  An alternative to the default "hmdsharepath" path.  The default is

                /usr/local/share/hmd

        This can be overriden by the environment variable, HMDSHAREPATH,
        which could then be overriden by the command line option, -s.
        They can all be overriden by a setting in the local .hmd_config
        for the hmdsharepath.  Example,

                hmdsharepath /home/share/hmd

    2.  An alternative  path to the help file.  This is a text file containing
        all the help descriptions.  The default path is

                $HMDSHAREPATH/help/hmd_help.txt

        which, for the default path, resolves to

                 /usr/local/share/hmd/help/hmd_help.txt

        This can be overriden in the local .hmd_config file.  Example,

                help_path /home/myproj/myhelp.txt

.hmdtk

    The .hmdtk file is a local session file for sessions using the Tcl/Tk
    GUI (a session started with the -j option).

.histinterp

    The command line history for the HMD command workspace when using the
    Tcl/Tk GUI (a session started with the -j option).

.hmd_history

    The command line history for the HMD command workspace when using the
    text console (a session started with the -i option).

.histlisp

    The command line history for the ECL common lisp command workspace when
    using the Tcl/Tk GUI (a session started with the -j and -k option).

.eclout

    A named pipe file in the local directory used for internal communication
    between the ECL embedded stdout stream and the Tcl/Tk widget that hosts
    the Lisp interpreter.


----------------------------------------------------------------------------
----------------------------------------------------------------------------


Alfred Steffens Jr.
apsteffe@netwood.net

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.