build of fc from git-master works fine so far, but I have really trouble to get the "soft" dependencies to work.
I found calculix packages with an executable, that fails with runtime error (missing some dynamic lib), other packages of calculix have source, that don't compiles ...
At least I got spooles built, not sure, whether built of arpack was right (I had to change commandline-option of f77).
I tried to change makefile of calculix to use debians libarpack - but build fails ...
I found an outdated thread about calculix build here, seems quite outdated, as it did noch work on my system - but may be a pebcak
At fc level i tried to use gmsh macro - but it only starts consuming 100% cpu for quite a big while, than cpu gets released, but nothing happens at fc.
So I don't know, where to start, as I don't have any error message.
When i clone netgen repo and start cmake, result is:
Code: Select all
Enabled functionality:
OCC: ............... OFF
JPEGlib: ........... OFF
FFMPEG: ............ OFF
GUI: ............... ON
MPI: ............... OFF
PYTHON: ............ ON
Furthermore it would be nice, to have an ON for jpeglib and ffmpeg too. Both packages are installed, so I don't know, why there's an OFF ...
I don't know cmake - where should i tweak the configuration?
Could anybody please help me get all things around fc to run, to start using fem-wb?
FC-Info:
OS: Debian GNU/Linux 8.1 (jessie)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.5196 (Git)
Build type: Unknown
Branch: master
Hash: cc281d482e71fe911289f873f3610cd1f0a559a8
Python version: 2.7.9
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
In case someone has the same problems, I collect my steps here:
fem-wb needs calculix.
I happened to find a nice description about building Calculix
Calculix does not have an install job, so ccx_2.8p2 needs to be copied to /usr/bin manually (as mentioned in README.INSTALL).
A softlink relaxes the call
Code: Select all
ln -s /usr/bin/ccx_2.8p2 /usr/bin/ccx
Debian has a package for squeeze and for sid, but not for jessie
netgen uses cmake too, so add -D USE_OCC=ON -D OCE_DIR=/usr/local/lib/oce-0.17 to cmake commandline.
When netgen build succeeded, fc needs some tweaks too:
cmake needs this additional parameters:
Code: Select all
-D BUILD_FEM_NETGEN=ON -D FREECAD_USE_EXTERNAL_PIVY=ON -D CMAKE_INSTALL_DATADIR=share/freecad -D CMAKE_INSTALL_DOCDIR=share/doc/freecad -D CMAKE_CXX_FLAGS=-std=c++11
Code: Select all
# Try to find nglib/netgen
# Once done this will define
#
# NGLIB_INCLUDE_DIR - where the nglib include directory can be found
# NGLIB_LIBRARIES - Link this to use nglib
# NETGEN_INCLUDE_DIRS - where the netgen include directories can be found
#
# See also: http://git.salome-platform.org/gitweb/?p=NETGENPLUGIN_SRC.git;a=summary
if(NOT NETGENDATA)
SET(NETGENDATA /usr/local/src/netgen-mesher)
endif()
if(NOT NETGEN_LS)
SET(NETGEN_LS /usr/local/src/netgen-mesher/libsrc)
endif()
# nglib
FIND_PATH(NGLIB_INCLUDE_DIR nglib.h ${NETGENDATA}/nglib)
FIND_LIBRARY(NGLIB_LIBRARIES nglib /opt/netgen/lib)
# netgen headers
SET(NETGEN_INCLUDE_DIRS ${NETGEN_LS}/include)
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS})
add_definitions(-DNETGEN_V5 -DNO_PARALLEL_THREADS -DOCCGEOMETRY)
FIND_PATH(NETGEN_DIR_csg csg.hpp PATHS ${NETGEN_LS}/csg)
FIND_PATH(NETGEN_DIR_gen array.hpp PATHS ${NETGEN_LS}/general)
FIND_PATH(NETGEN_DIR_geom2d geom2dmesh.hpp PATHS ${NETGEN_LS}/geom2d)
FIND_PATH(NETGEN_DIR_gprim gprim.hpp PATHS ${NETGEN_LS}/gprim)
FIND_PATH(NETGEN_DIR_la linalg.hpp PATHS ${NETGEN_LS}/linalg)
FIND_PATH(NETGEN_DIR_mesh meshing.hpp PATHS ${NETGEN_LS}/meshing)
FIND_PATH(NETGEN_DIR_occ occgeom.hpp PATHS ${NETGEN_LS}/occ)
FIND_PATH(NETGEN_DIR_stlgeom stlgeom.hpp PATHS ${NETGEN_LS}/stlgeom)
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_csg})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_gen})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_geom2d})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_gprim})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_la})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_mesh})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_occ})
SET(NETGEN_INCLUDE_DIRS ${NETGEN_INCLUDE_DIRS} ${NETGEN_DIR_stlgeom})