编译安装elmer图形用户界面ElmerGUI
ElmerGUI需要qmake。
1
sudo apt-get install qt4-qmake</pre>
收敛曲线绘图依赖qwt
1
sudo apt-get install llibqwt5-qt4-dev
安装图形界面和后处理依赖的vtk库
1
2
sudo apt-get install libvtk5-dev
sudo apt-get install libvtk5-qt4-dev
安装其他依赖环境
1
2
3
4
5
sudo apt-get install libftgl2
sudo apt-get install libtbb2
sudo apt-get install libgl2ps0
sudo apt-get install libfreeimage3
sudo apt-get install libpythonqt2.1
转到源文件目录
1
cd elmerfem/ElmerGUI
打开并编辑配置文件ElmerGUI.pri。下面是修改之后的配置文件,因为我这里没有安装OpenCASCADE,所以可选组件这里注销掉了下面这一行。
#DEFINES += EG_OCC # Use OpenCASCADE 6.3 for importing CAD files? Needs VTK.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#############修改后的配置文件,开始#####################
# ElmerGUI: configuration file
#
#==============================================================================
#------------------------------------------------------------------------------
# Optional components (undefine or comment out to exclude from compilation):
#------------------------------------------------------------------------------
DEFINES += EG_QWT # Use QWT for convergence monitor?
DEFINES += EG_VTK # Use VTK for postprocessing?
DEFINES += EG_PARAVIEW # Use ParaView for postprocessing?
DEFINES += EG_MATC # Use MATC for internal operations in postprocessing?
#DEFINES += EG_OCC # Use OpenCASCADE 6.3 for importing CAD files? Needs VTK.
DEFINES -= EG_PYTHONQT # Use PythonQt for scripting in post processor?
#------------------------------------------------------------------------------
# 64 bit system?
#------------------------------------------------------------------------------
BITS = 64
#------------------------------------------------------------------------------
# Installation directory:
#------------------------------------------------------------------------------
ELMERGUI_HOME = $$(ELMERGUI_HOME)
isEmpty(ELMERGUI_HOME) {
ELMER_HOME = $$(ELMER_HOME)
isEmpty(ELMER_HOME) {
unix: ELMER_HOME = /opt/elmer
win32: ELMER_HOME = c:/Elmer7
macx: ELMER_HOME = /usr/local
}
ELMERGUI_HOME = $${ELMER_HOME}/bin
}
#------------------------------------------------------------------------------
# Python library:
#------------------------------------------------------------------------------
unix {
PY_INCLUDEPATH = /usr/include/python2.7
PY_LIBPATH = /usr/lib
PY_LIBS = -lpython2.7
}
win32 {
PY_INCLUDEPATH = c:/PYTHON/Python-2.6.1/Include
PY_LIBPATH = c:/PYTHON/Python-2.6.1/PCbuild
PY_LIBS = -lpython26
}
macx {
}
#------------------------------------------------------------------------------
# QWT library:
#------------------------------------------------------------------------------
unix {
QWT_INCLUDEPATH = /usr/include/qwt-qt4
QWT_LIBPATH = /usr/lib
QWT_LIBS = -lqwt-qt4
}
win32 {
QWT_INCLUDEPATH = c:/Source/Qwt/include
QWT_LIBPATH = c:/Source/Qwt/lib
QWT_LIBS = -lqwt5
}
macx {
QWT_INCLUDEPATH = /usr/local/qwt-5.0.2/include
QWT_LIBPATH = /usr/local/qwt-5.0.2/lib
QWT_LIBS = -lqwt5
}
#------------------------------------------------------------------------------
# VTK library:
#------------------------------------------------------------------------------
unix {
VTK_INCLUDEPATH = /usr/include/vtk-5.8
VTK_LIBPATH = /usr/lib/vtk-5.8
VTK_LIBS = -lQVTK \
-lvtkCommon \
-lvtkDICOMParser \
-lvtkFiltering \
-lvtkGenericFiltering \
-lvtkGraphics \
-lvtkHybrid \
-lvtkIO \
-lvtkImaging \
-lvtkInfovis \
-lvtkNetCDF \
-lvtkRendering \
-lvtkViews \
-lvtkVolumeRendering \
-lvtkWidgets
}
win32 {
VTK_INCLUDEPATH = c:/Source/VTK/include/vtk-5.4
VTK_LIBPATH = c:/Source/VTK/lib/vtk-5.4
VTK_LIBS = -lQVTK \
-lvtkCommon \
-lvtkDICOMParser \
-lvtkFiltering \
-lvtkGenericFiltering \
-lvtkGraphics \
-lvtkHybrid \
-lvtkIO \
-lvtkImaging \
-lvtkInfovis \
-lvtkNetCDF \
-lvtkRendering \
-lvtkViews \
-lvtkVolumeRendering \
-lvtkWidgets \
-lvtkexoIIc \
-lvtkexpat \
-lvtkfreetype \
-lvtkftgl \
-lvtkjpeg \
-lvtklibxml2 \
-lvtkmetaio \
-lvtkpng \
-lvtksys \
-lvtktiff \
-lvtkverdict \
-lvtkzlib \
-ladvapi32
}
macx {
VTK_INCLUDEPATH = /usr/local/include/vtk-5.0
VTK_LIBPATH = /usr/lib
VTK_LIBS = -lvtkHybrid \
-lvtkWidgets \
-lQVTK
}
#------------------------------------------------------------------------------
# OpenCASCADE library:
#------------------------------------------------------------------------------
unix {
OCC_INCLUDEPATH = /usr/include/opencascade
OCC_LIBPATH = /usr/lib
OCC_LIBS = -lTKSTL \
-lTKBRep \
-lTKernel \
-lTKG2d \
-lTKG3d \
-lTKGeomAlgo \
-lTKGeomBase \
-lTKMath \
-lTKMesh \
-lTKShHealing \
-lTKSTEP \
-lTKSTEP209 \
-lTKSTEPAttr \
-lTKSTEPBase \
-lTKIGES \
-lTKTopAlgo \
-lTKXSBase
}
win32 {
OCC_INCLUDEPATH = $(CASROOT)/inc
OCC_LIBPATH = $(CASROOT)/win32/lib
OCC_LIBS = $(CASROOT)/win32/lib/TKBRep.lib \
$(CASROOT)/win32/lib/TKernel.lib \
$(CASROOT)/win32/lib/TKG2d.lib \
$(CASROOT)/win32/lib/TKG3d.lib \
$(CASROOT)/win32/lib/TKGeomAlgo.lib \
$(CASROOT)/win32/lib/TKGeomBase.lib \
$(CASROOT)/win32/lib/TKMath.lib \
$(CASROOT)/win32/lib/TKMesh.lib \
$(CASROOT)/win32/lib/TKShHealing.lib \
$(CASROOT)/win32/lib/TKSTEP.lib \
$(CASROOT)/win32/lib/TKSTEP209.lib \
$(CASROOT)/win32/lib/TKSTEPAttr.lib \
$(CASROOT)/win32/lib/TKSTEPBase.lib \
$(CASROOT)/win32/lib/TKIGES.lib \
$(CASROOT)/win32/lib/TKTopAlgo.lib \
$(CASROOT)/win32/lib/TKXSBase.lib
}
macx {
OCC_INCLUDEPATH =
OCC_LIBPATH =
OCC_LIBS =
}
#############修改后的配置文件,结束#####################
执行编译
1
2
qmake
make
执行编译之后报错,提示找不到qwt_compat.h,报错指向/ElmerGUI/Application/src/convergenceview.h
文件,打开该文件,找到如下这两行
1
2
/*include <qwt_data.h>; <-- deprecated in Qwt6, using qwt_compat.h instead*/
#include <qwt_compat.h>;
将其修改为:
1
2
#include <qwt_data.h> <-- deprecated in Qwt6, using qwt_compat.h instead
/*#include <qwt_compat.h>*/
继续执行编译
1
make
编译错误,报错指向/ElmerGUI/Application/src/convergenceview.cpp
文件,打开该文件。找到如下行:
1
2
3
4
5
6
7
8
9
double x = (double)(curve->d_data->count());
curve->d_data->append(&x, y, size);
/*curve->d_curve->setRawData(curve->d_data->x(),
curve->d_data->y(),
curve->d_data->count()); */
curve->d_curve->setRawSamples(curve->d_data->x(),
curve->d_data->y(),
curve->d_data->count());
plot->setTitle(title);
将其修改为如下所示,然后保存退出。
1
2
3
4
5
6
7
8
9
double x = (double)(curve->d_data->count());
curve->d_data->append(&x, y, size);
curve->d_curve->setRawData(curve->d_data->x(),
curve->d_data->y(),
curve->d_data->count());
/*curve->d_curve->setRawSamples(curve->d_data->x(),
curve->d_data->y(),
curve->d_data->count());*/
plot->setTitle(title);
继续执行编译
1
make
编译器报错提示:
1
/usr/bin/ld: cannot find -lvtkNetCDF
这里需要安装libvtkNetCDF库,因为此前安装了paraview所以直接建立了一个链接:
1
sudo ln /usr/lib/paraview/libvtkNetCDF.so /usr/include/vtk-5.8/
再次执行编译,终于顺利完成,长嘘一口气!!!
1
make
最后编译安装:
1
make install
创建环境变量:
1
export ELMERGUI_HOME = $ELMER_HOME/bin
This post is licensed under CC BY 4.0 by the author.