Introduction#
Programming examples#
The following sections show code pieces which are actually from the
Z-mat and Z-set source code. We present these programming examples as
they are in order to form a base for simple copy-paste starting for
user-programming. All class names have been changed with an added
_DEMO
suffix in order that their generated symbols will not be
overrriden by the symbols in the standard Z-set libraries. The keyworks
are however the same, and these models will override what exists in the
standard distribution.
These source files can be added to the $Z7PATH/User-project
project
directory (if they are not already there, use the material
subdirectory for Z-mat extensions, and the finite_element
subdirectory for Z-set add-ons) and the “user project” recompiled to
make the plug-ins. To update the makefile adding new files, either run
Zsetup
on unix or double click the proj.zpr
file on windows.
In unix then simply type Zmake
, or on windows open up the
zfem_user.dsw
Visual Studio project file to build.
Example compilation#
The following is a typical output when compiling the user project. The
plug-in object files libZmat_ut_Linux.so
and libZfem_ut_Linux.so
are copied into the $Z7PATH/PUBLIC/lib-$Z7MACHINE
directory where
they are automatically serarched for when running Zrun
or Zmat
.
/home/tmpcalcul/M8.2/User-project
foerch.vache[305]% Zsetup
=========================================
ZeBuLoN 8.2.1 automatic configuration
Zsetup version 8/18/96
* use the file: library_files to select
debug files and personal libraries
=========================================
....
Making new o_Linux directory
Making new og_Linux directory
foerch.vache[306]% Zmake
/home/tmpcalcul/M8.2/bin/Zmake: cd: z*: No such file or directory
Doing a 'make -f makefile.mak' in directory z*
make: makefile.mak: No such file or directory
make: *** No rule to make target `makefile.mak'. Stop.
=======================================================
ZeBuLoN C++ 8.2.1 Mode optimize
Making executable
-------------------------------------------------------
Objects in directory : o_Linux
Objects in directory : o_Linux
=======================================================
*** file compilation is listed here ***
g++ -c -Wall -O6 -fPIC -I/usr/Motif/include -I/usr/X11R6/include
-I/usr/local/include -DLinux -D_REENTRANT -D__ZverMaj=8 -D__ZverMin=2
-I/home/tmpcalcul/M8.2/include -Imaterial -o o_Linux/User_flow_law.o
material/User_flow_law.c
echo o_Linux/Crystal_kinematic_recovery.o o_Linux/DruckerKinematic.o
o_Linux/Empty.o o_Linux/Partially_saturated_soil.o o_Linux/Plastic.o
o_Linux/Time_hardening_flow.o o_Linux/User_flow_law.o > files; Zlink
-inst -o libZmat_ut_Linux.so -ZL Zmat_base Linker compiler : g++
In link_gcc
Linking with dynamic blas
mv libZmat_ut_Linux.so /home/tmpcalcul/M8.2/PUBLIC/lib-Linux
g++ -c -Wall -O6 -fPIC -I/usr/Motif/include -I/usr/X11R6/include
-I/usr/local/include -DLinux -D_REENTRANT -D__ZverMaj=8 -D__ZverMin=2
-I/home/tmpcalcul/M8.2/include -Ifinite_element -o o_Linux/Empty_calcul.o
finite_element/Empty_calcul.c
echo o_Linux/Empty_calcul.o > files; Zlink -inst -o libZfem_ut_Linux.so
-ZL Zmat_base -ZL Zfem_base
Linker compiler : g++
In link_gcc
Linking with dynamic blas
mv libZfem_ut_Linux.so /home/tmpcalcul/M8.2/PUBLIC/lib-Linux
foerch.vache[307]%