问题标签 [lammps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python用CDLL加载c lib,在python路径中看不到库
我正在尝试让一些开源学术代码工作(项目主页在这里)。它是一个大型 C++ 代码库,带有一个(非常)薄的 Python 包装器,用于CDLL
加载 C++ 并调用一些可用于允许代码的原始 Python 脚本编写的 C 函数。
但是,初始导入代码会崩溃,因为它在站点包中找不到位于其旁边的 .so 文件:
在安装的文件中:
并在脚本或解释器中:
其他答案似乎已经涵盖了这一点,但这仅CDLL()
在实际调用的脚本(或运行解释器的提示的工作目录)中调用时才有效 - 即如果“相对路径”在用户空间中,而不是python库空间。
我们如何可靠地安装以导入我们自己构建的 C/C++ 库?没有污染系统库位置/usr/lib
,比如不是很pythonic,我看不到一个简单的解决方案。
(编辑:更正的函数名称,不清楚的重构无济于事!对不起!)
microsoft-dynamics - LAMMPS 错误 - 对系数的参数不正确
只有一种原子类型,我使用了:
但我不断收到错误消息:对系数的参数不正确。我也确信潜在文件的路径是正确的。我怎样才能解决这个问题?
cmake - 包和库管理和安装,以及与 cmake 的接口
我有一个具体问题,可以作为更一般问题的背景。
有一个名为 LAMMPS 的科学包,它通常用作可执行文件。但是,它支持用作“库”。为了尝试做正确的事情,我把它放在 /usr/local/lib/lammps 中。它包含一个 lammps/src/ 目录,其中包含大约 40 个源文件。使用提供的说明,我将 lammps 编译为 lammps/src/liblammps_serial.so 中的 .so 文件。
我在“~/code/ljtube/”中也有单独的代码。这使用 cmake 来尝试查找库。因此,我写了一个 FindLAMMPS.txt 以便我可以使用
在我的 CMakeLists 中。我修改了 libtool 配置文件以在 /usr/local/ 中搜索成功。我发现它在 /usr/local/lib/ 中搜索 .so 文件,在 /usr/local/include/ 中搜索 .h 文件。所以我在/usr/local/lib/ 中创建了一个.so 文件的动态链接,并将.h 文件从lammps/src/ 复制到/usr/local/include/。
CMake 现在可以找到这两个文件,但它无法链接到 lammps/src/ 中的任何其他文件。需要为我想要包含的每个 .h (group.h、fix.h、force.h、pair.h 等)创建一个单独的 FIND_PACKAGE 似乎很荒谬。将整个 .h 文件包转储到 /usr/local/include/ 目录中似乎也很荒谬。我将在本地和集群上使用此代码,并可能将其分发给其他组成员。
如何让 CMake 在 /usr/local/lib/lammps/src/ 的位置没有硬编码的情况下找到我想要找到的内容?更笼统地说,我应该如何管理像这样的大包,以使它们在我编写的代码中易于链接,即使原始开发人员没有使用最佳约定?
(作为旁注,我使用共享库是因为它似乎是正确的选择,但我并不是特别喜欢它。我应该使用静态库吗?CMake 有没有办法找到已经编译的相对于当前源目录的库,这可能是实现这一点的更好方法吗?我知道我将在多个项目中使用 LAMMPS,因此从表面上看,拥有一个本地共享副本似乎是最有意义的。)
python - 无法在 Ubuntu 13.04 中将 Python 包裹在 LAMMPS 周围
我从官方网站下载了 LAMMPS tar-ball的8-Jan13Makefile.ubuntu
版本,并从网站/教程下载了文件(http://katter-world.blogspot.hk/2010/05/install-lammps-在 ubuntu.html 上)
执行make ubuntu
后创建Obj_ubuntu/
文件夹。我相信我已经能够成功安装它,因为我已经能够运行命令。甚至是mpiexec -np 2 lmp_ubuntu
命令。
但是,我在将 Python 包裹起来时运气不佳。我已经学习了几个教程,并且尝试了不同的组合(在执行之后make clean-all
),例如:
make makeshlib
make -f Makefile.shlib ubuntu/g++/serial
(我也执行了没有-f
参数的命令,但我得到了错误
make 1 : *** 没有规则来制作目标“shlib”。停止。
我尝试过的大多数事情都有一个错误,显然在 Python 中我收到以下错误:
OSError: 无法加载 LAMMPS 动态库
c++ - 类成员函数声明前的类关键字
我正在阅读LAMMPS
(一个开源项目)中的文件,并遇到了这行语法
在一个.h
文件(Modify.h
)中的一个类声明。我的问题是:为什么要在看起来像成员函数的前面添加关键字 class?这个语法是什么意思?
c++ - 如何调试从 gdb 中的脚本获取输入的 C++ 程序
背景信息:C++ 程序(LAMMPS - 一个开源)接受一个输入脚本,其中包含所有要执行的命令。可执行文件名为“lmp_fedora”,输入脚本名为“in.hit”。程序的运行命令“./lmp_fedora < in.hit”
我的问题:我正在尝试调试 LAMMPS 中的 .cpp 文件之一。
我的尝试: 1. 我尝试了“gdb lmp_fedora < in.hit”,但它失败了。2. 还尝试使用 ps aux 查找正在运行的程序的 pid,但不确定它是哪个 id。
我的问题:如何使用 gdb 调试输入脚本(具有链接到 c++ 项目的命令)?
lammps - Lampps 的应力和应变曲线
我想尝试用 Lampps 绘制铜纳米粒子的应力和应变曲线。这是我的代码。我不知道这是否正确。有谁能够帮我?它有fix nve
放松,但在此之前有fix nvt
,这两个fix
不能在一起。
linux - LAMMPS 用于 GPU 错误 - /usr/bin/ld: 在使用 make 命令制作时找不到 -lmpi_stubs
我正在尝试在 gpu 中安装 LAMMPS。按照http://lammps.sandia.gov/doc/accelerate_gpu.html中给出的步骤后,我完成了步骤 (a) 并获得了文件 - libgpu.a 和 Makefile.lammps。
当我尝试继续第二步(在 make yes-gpu 之后进行串行)时,我收到一条错误消息 - /usr/bin/ld: cannot find -lmpi_stubs
。
python - 类型错误:不支持的操作数类型 -: 'str' 和 'int'
我想将 pmma85compositedata.initeq 转换为 lammps 可接受的数据文件,但我遇到了这个错误:
错误: