AE9/AP9/SPM | 介绍与安装
前言¶
AE9/AP9/SPM
是由美国空军研究实验室(Air Force Research Laboratory)开发的,用于模拟近地空间辐射的模型。AE9/AP9/SPM
分别用于模拟高能电子,高能质子和等离子体模型,给定卫星轨道根数或星历表,该模型将返回指定量的通量,注量或剂量,并为这些量选择适合的统计数据。AE9/AP9/SPM
提供了两种安装模式:命令行版本和GUI版本。在国际合作者加入该项目之后,该模型被重命名为近地国际辐射环境(IRENE)。
下载¶
AE9/AP9/SPM
的项目地址位于VDL,该网站需要使用美国IP才可进行访问。我们选择使用Public AE9AP9 Account
进行下载,而不使用VDL Account
,因为后者需要年满18周岁的美国政府雇员,承包商或学术人员才能够申请注册。
在填写Public AE9AP9 Account
注册信息时,注意邮箱不能使用国内邮箱或者hotmail、yahoo,Zip Code填写为00000即可。注册完成之后,密码将会通过注册邮箱发送给你,由于不可知的原因你很有可能无法收到邮件,你可以向ae9ap9@vdl.afrl.af.mil
发送邮件进行询问,在得到回复之后选择重置密码即可。
AE9/AP9/SPM
默认只提供Windows版本,源代码或者Linux版本需要发邮件索求之后自行编译。
第三方依赖¶
只有编译源代码才需要安装依赖,否则直接使用即可!
CMake¶
CMake
版本不低于2.6,推荐选择下载Binary distributions,源代码需要编译才能使用。
Visual Studio 2012¶
下载旧版本的Visual Studio 2012
或者2008。
A Windows-based FORTRAN compiler is also needed for a full source code compilation, but unfortunately, is not freely available. However, by default, the build process links to an included pre-compiled library of these FORTRAN-based routines.
Python (Recommended)¶
推荐下载Miniconda
,并且更改源:
1 | pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ |
Qt and Qwt (optional)¶
QTW是QT的一个第三方库,两者都可以直接下载安装。
HDF5 1.8.8¶
HDF的全程是Hierarchical Data Format
,可以存储不同类型的图像和数码数据的文件格式,文件后缀名为.hdf
,下载二进制版本安装即可。
Boost 1.58.0¶
Boost是为C++标准库提供扩展的程序库,下载解压后目录如图所示,依照参考资料5安装即可。
解压¶
下载得到的是一个压缩文件,解压后目录结构为:
1 | Ae9Ap9 |
编译¶
只有编译源代码才需要安装依赖,否则直接使用即可!
- Taking note of the include and library paths for the third-party dependencies installed in the previous step, using a plain text editor, update these in the three build script configuration files:
- Ae9Ap9/source/SpWx_Ae9Ap9/Common/internal_utils.cmake
The configuration file contains several platform-specific sections of commands that set these paths.
1
2
3
4
5Scroll down in the file to where these lines are showing:
##############################################################
# config_include_lib_paths
From here, all settings that may require modification are preceded with this line:
# <<== END-USER MODIFIABLE ==>>For Windows, use forward slashes (
/
) in path references.Note theset
of the EXT_LIBS_ROOT variable, and its subsequent reference $(EXT_LIBS_ROOT), for ease of use in multiple places. For Windows, it is suggested to set EXT_LIBS_ROOT toC:/Program Files
.- Ae9Ap9/source/Ae9Ap9Mpi/internal_utils.cmake
This file is updated in the same way as the previous file, if the GUI application is desired. - Ae9Ap9/source/Ae9Ap9GuiMpi/trunk/Ae9Ap9Gui.pro
The Ae9Ap9Gui source tree utilizesqmake
(part of the Qt development environment) for the build process, and thus uses a slightly different file and syntax for defining the include and library paths. Important: on Linux systems, verify that the correctqmake
version is being used; update thepath
environment variable as necessary.
The Qt include and library paths will be automatically set properly with the installation of the Qt software. This file must only explicitly set paths for the Qwt include and library paths, as shown below. Note the platform-specific sections are also present here.
1
2
3
4
5
6
7
8
9
10
11
12win32 {
INCLUDEPATH += c:\Qt\qwt-5.2.1\src
LIBS += "c:\Qt\qwt-5.2.1\lib\libqwt5.a"
}
win64 {
INCLUDEPATH += c:\Qt64\qwt-5.2.1\src
LIBS += "c:\Qt64\qwt-5.2.1\lib\libqwt5.a"
}
unix {
INCLUDEPATH += /nas/ExternalLibs/Qt/qwt-5.2/src
LIBS += /nas/ExternalLibs/Qt/qwt-5.2/lib/libqwt.so
} - Ae9Ap9/source/SpWx_Ae9Ap9/Common/internal_utils.cmake
- Automated Build
The preferred method of building a source distribution of IRENE (AE9/AP9/SPM) on a supported platform is to utilize the python script called buildAe9Ap9.py, located in the Ae9Ap9/source directory of the distribution. This script will build the model library and the command-line and gui driver applications, then place them in a platform-specific subdirectory under Ae9Ap9/bin in the distribution.
During the build process, the script will generate a log file called buildAe9Ap9.log in the Ae9Ap9/source directory; this can be used to identify any build errors encountered. At a command prompt in theAe9Ap9/source
directory, invoke the python build script, specifying the operating system name and, if needed, the mode (defaults torelease
): python buildAe9Ap9.py --os=<platform_name> [ --mode=] [ --nompi ] [ --nogui ] where <platform_name> can be linux , win32 or win64, and can be release or debug.
By default, both the single- and multi-threaded versions of the programs are built, unless the optional argument--nompi
(required for win32 builds) is specified. The GUI application is also built by default; to skip this, specify the optional argument--nogui
. For RedHat EL or CentOS 5.x installations only, the --gcc=gcc44 option should also be included.
debug
mode increases program execution time by a factor of 10 to 20.
安装测试¶
CLI¶
根据所用平台,在PowerShell中进入对应的二进制文件所在的目录(例如Ae9Ap9\bin\win64
),输入命令:
1 | .\CmdLineAe9Ap9.exe -i ..\..\samples\Ap9ShortInput.txt |
生成的输出文件位于Ae9Ap9\samples
文件夹下,可以根据文件生成时间判断。我们可以通过验证生成的文件数量以及相应的文件内容是否与位于Ae9Ap9\samples\expectedOutput
目录中以Ap9ShortOutput
为前缀的文件是否相同来判断是否工作正常。
GUI¶
在同一命令行中,可以运行Ae9Ap9Gui.exe
来启动GUI程序
其他¶
在Ae9Ap9\bin\win64
目录下还有很多其他文件,其中只有CmdLineAe9Ap9.exe
、Ae9Ap9Gui.exe
、TotalDose.exe
、IntegralPlasma.exe
、ConvertToXlsx.py
需要用到,其他的都是辅助程序。
参数 | 说明 |
---|---|
-h | 帮助,列出所有参数说明 |
-v | 输出版本信息 |
-i | 指定模型输入文件 |
-n | 指定要使用的处理器数量(默认为1) 使用多线程时包括一个主处理器,会覆盖输入文件中的NumProc参数 |
在运行时不要更改输入输入文件,因为应用程序可能会多次访问该文件
下载地址¶
Name | Version | URL |
---|---|---|
AE9/AP9/SPM | 1.50.1 | https://www.vdl.afrl.af.mil/programs/ae9ap9/downloads.php |
CMake | ≥2.6 | https://cmake.org/download/ |
Visual Studio | 2008 or 2012 | https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/ |
Miniconda | https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ | |
Qt | 4.6.2 | https://download.qt.io/archive/qt/4.6/ |
QtW | 5.2.1 | https://sourceforge.net/projects/qwt/files/qwt/5.2.1/ |
HDF5 | 1.8.8 | https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.8/ |
Boost | 1.58.0 | https://sourceforge.net/projects/boost/files/boost/1.58.0/ |