用于为科学目的构建dsl的工具。

ELLIPTIc的Python项目详细描述


https://cdn.rawgit.com/gpkc/ELLIPTIc/master/logo.png

https://img.shields.io/pypi/v/elliptic.svghttps://travis-ci.org/padmec-reservoir/ELLIPTIc.svg?branch=masterhttps://readthedocs.org/projects/elliptic/badge/?version=latesthttps://coveralls.io/repos/github/padmec-reservoir/ELLIPTIc/badge.svg?branch=masterhttps://api.codacy.com/project/badge/Grade/025660097e6a41fa9fa6fa590ef28148https://img.shields.io/badge/license-MIT-blue.svg

https://cdn.rawgit.com/gpkc/ELLIPTIc/master/pic.png

说明

椭圆,物理模拟的可扩展库,是一个用于创建可重用和可扩展的Domain Specific Languages (DSL)用于科学目的的库/框架。

椭圆的工作流程如下:

  • 创建一个椭圆dsl契约来定义dsl语法的外观。这个dsl契约定义了使用dsl时可用的操作。
  • dsl实现是基于dsl契约构建的。dsl实现告诉椭圆机如何生成相应的cython代码。
  • 在使用基于椭圆的dsls时,建立了一个树状的中间表示。
  • 这个中间表示与dsl实现一起用于生成cython代码。

DSL语法

基于椭圆的dsl使用Fluent Interface语法。这允许 为算法的优雅发展。

下面是使用基于椭圆的dsl在非结构化网格中迭代的示例:

dsl=DSL(...)# Instatiating a DSL objectwithdsl.root()asroot:all_ents=root.Entities(dim=3).Adjacencies(bridge_dim=2,to_dim=3)# Operation chaininginternal_ents=all_ents.Where(boundary=False)# Continuing an operation chainboundary_ents=all_ents.Where(boundary=True)# Operation branchingperm_ents=internal_ents.GetField(name="permeability")dirichlet=boundary_ents.GetField(name="dirichlet")neumann=boundary_ents.GetField(name="neumann")dsl.get_built_module().run()# Run the generated Cython code

还可以将中间表示导出到图像文件,以便进行可视化调试:

https://cdn.rawgit.com/gpkc/ELLIPTIc/master/tree_example.png

文档

请参考documentation page

测试

运行python setup.py test。

建造和安装

运行python setup.py build和python setup.py install。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向xsi:nil元素添加另一个属性?   Java抽象泛型方法,使用具体类型实现通配符   java使用pcap4j截断pcap文件   当我放置字母a、b和c时,java中的异常预期会下降   java设置活动对话框不可取消   接口类型变量上的Java克隆   使用Java或BouncyCastle对CSR(证书签名请求)进行安全解码/读取   java调用SavingsAccount对象上的函数并打印结果   java如何在Android应用程序上显示地图上的兴趣点(POI)并与之交互?   如果在JavaFX中的ResultSet中未找到任何内容,则显示java警报   java我将springboot和@component与@scheduled一起使用,它每12小时锁定一次   ApachePOI如何使用java删除包含字符串的word表的行   java如果对象(x,y)靠近其他对象(x,y)   从未对JMSException调用java JMS CachingConnectionFactory OneException方法   javascript使用java将HTML页面转换为MS word