跳转到主要内容

用于GEMSEO的Java接口。

项目描述

包含两个Java-GEMSEO接口

安装

设置 JAVA_HOME:Java JDK根安装目录的路径。

使用以下方式安装

pip install .

在运行时,您应配置

  • 在Linux上,LD_LIBRARY_PATH:添加JEP Python包的路径,

  • 在MacOS上,DYLD_LIBRARY_PATH:添加JEP Python包的路径,

  • 在Windows上,PATH:添加JEP Python包的路径,

  • CLASSPATH:将安装jep时提供的jep包添加到java类路径中,

有关更多信息,请参阅JEP (https://github.com/ninia/jep/wiki/Getting-Started) 文档。

Java MDODiscipline

Java抽象MDODiscipline定义在包com.irt.saintexupery.discipline中。

Sellar问题的示例:com.irt.saintexupery.problems.sellar

分析导数(《gemseo.discipline.MDODiscipline._compute_jacobian》)尚不支持。

JEP特定问题

对于JEP接口,您应当使用JepMDODisciplineAdapter包装器包装MDODiscipline

import com.irt.saintexupery.discipline.JepMDODisciplineAdapter;
import com.irt.saintexupery.problems.sellar.Sellar1;
MDODiscipline sellar1 = new JepMDODisciplineAdapter(new Sellar1());

示例

请查看examples/java_examples和examples/python_examples。

常见问题

“在主线程“main”中抛出异常java.lang.UnsatisfiedLinkError: no jep in java.library.path:” 请将Jep添加到classpath。

如果Jep仍然未检测到,请检查编译的“jep.dll”是否作为本地库正确包含。

关于Java-Python桥梁技术的想法

许多库提供了Java-Python进程间通信和序列化。然而,许多库都有局限性,例如Jython不支持Python的所有编译扩展,因为它是在Java中重实现的Python解释器。其他库使用套接字,如py4j,这可以处理性能和安全问题。

JNIUS和JEP都基于CPython的C API和Java JNI(Java本地接口)。这避免了内存复制,从而减少了精度和性能损失,这对于数值计算至关重要。

JNIUS允许从Python调用Java代码,JEP允许从Java调用Python,并重新进入Java代码。然而,这两种技术不能混合使用,JEP不能调用JNIUS代码。

这就是为什么这里提出了这两种解决方案。

作者

  • 弗朗索瓦·加拉德

  • 帕斯卡尔·莱·梅泰

  • 安托万·德沙姆

许可证

LGPL v3.0

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

gemseo-java-1.0.0.post0.tar.gz (44.0 kB 查看散列)

上传时间

构建分布

gemseo_java-1.0.0.post0-py3-none-any.whl (9.6 kB 查看散列)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面