Pyclaw实用程序模块

pyclaw.util公司

Pyclaw实用程序方法

抓包.pyclaw.util。帧计数器

简单帧计数器

简单的帧计数器,用于跟踪当前帧编号。这个可以也可用于通过使用多个立即计数器。

初始化为0

获取计数器()

获取当前帧编号

增量()

计数器递增一

复位计数器()

将计数器重置为0

集合计数器(新帧编号)

将计数器设置为new_frame_num

例外 抓包.pyclaw.util。验证错误
抓包.pyclaw.util。添加父文档(起源)

为类添加父文档

抓包。抓包。直到。check_diff(预期,测试,**关键字参数)

检查预期值和测试值之间的差异,如果正常,则返回“无”

此函数需要关键字参数“absol”或“reltol”。

抓包。抓包。直到。编译库(源列表(_L),模块名称,接口函数=[],本地路径(_P)='./',库路径(_P)='./',f2py标记='',常设费用=,FFLAGS公司=,重新编译=False(错误),清洁的=False(错误))

编译fortran源代码并将其封装到python中的可调用模块中。

此函数使用f2py创建从python到fortran的接口source_list中的源。source_list可以是名称列表在这种情况下,compile_library将在local_path,然后在library_path中。如果给定路径,则文件将检查它是否存在,如果不存在,它将查找上面的文件解决顺序。如果未找到任何源文件,则IOException为提高。

列表interface_functions允许用户指定哪个fortranpython实际上可以使用函数。接口功能包括假定文件中包含其名称,即claw1位于“claw1.f95”或“claw2.f”。

fortran的接口可能与原始函数不同调用fortran,以便用户确保自动检查为fortran模块创建了文档字符串,以便正确使用。

如果源文件没有更改,则不会重新编译它们。

一组值得注意的选项用于启用OpenMP,它需要通常的fortran标志,但也必须编译OpenMP库,这是使用标记-lgomp完成。然后对compile_library的调用将是:

compile_library(src,module_name,f2py_flags='-lgomp',FFLAGS='-fopenmp')

要实现完全优化,请使用:

FFLAGS='-O3-fopenmp-funroll-loops-finline-functions-fdefault-real-8'

输入:
  • 源列表(_L)-(字符串列表)源文件列表,如果是只有源文件的名称,即“bc1.f”,然后将搜索它们对于,如果显式路径为给定,即“/bc1.f',则函数将使用该源(如果可以的话)找到它。

  • 模块名称-(string)结果模块的名称

  • 接口函数-(字符串列表)函数名列表如果为空,则提供对python可以访问的所有函数的访问权限。默认为[]。

  • 本地路径(_P)-(string)源解析的基本路径,默认值到“./”。

  • 库路径(_P)-(string)源解析的库路径,默认为“./”。

  • f2py标记-要传递的(字符串)f2py标志

  • 常设费用-(string)重写环境变量FC并将其用于编译,注意这并不能替换f2py使用的编译器,仅对象文件编译(没有接口)

  • FFLAGS公司-(string)重写环境变量FFLAGS并传递将它们发送到fortran编译器

  • 重新编译-(bool)强制重新编译库,默认为False(错误)

  • 清洁的-(bool)强制干净构建所有源文件

抓包.pyclaw.util。构造函数句柄(路径,函数_名称=)

从路径处的文件构造一个函数句柄。

此函数将尝试从python构造函数句柄文件位于路径。

输入:
  • 路径-(string)包含函数的文件的路径

  • 函数_名称-(string)文件中定义的函数的名称句柄将指向的。默认为与文件同名没有扩展名。

输出:
  • (func)构造函数的函数句柄,如果它具有失败。

抓包。抓包。直到。转换器端口双浮点()

将fortran格式的double转换为float

将fortran格式的double转换为python浮点。

number:是双精度的字符串表示。数量应为格式为“1.0d0”

抓包.pyclaw.util。发电机变型(应用,验证器,内核语言=(“Fortran”,),禁用设置=False(错误),**关键字参数)

给定验证器的测试应用程序可运行变体的生成器

给定一个应用程序,一个用于验证其输出的脚本,以及一个要尝试的内核语言列表,生成通过获取可用内核语言和(小爪子/小爪子)。对于许多应用程序,这将产生4种变体:两种主要内核语言(“Fortran”和“Python”)与两种并行模式(petclaw和pyclaw)。

有关如何实现验证器功能的更多信息,有关说明,请参见util.testapp,有关示例,请参阅util.checkdiff。

所有无法识别的关键字参数都会传递给应用程序。

抓包.pyclaw.util。读取数据行(输入文件,num_entries=1,data_type=<类 “浮动”>)

从输入文件中读取单行数据

从输入文件中读取一行并返回一个值数组

inputfile:指向打开文件对象的文件指针num_entries:应读取的条目数,默认值仅为1type:要读入的值的类型,它们必须是同一类型

此函数将返回单个值或值数组取决于num_entries是否>1

抓包.pyclaw.util。运行app_from_main(应用,设置图=)

从pyclaw/examples/运行应用程序,自动解析命令行关键字arguments(key=value)作为应用程序的参数,位置为传递给PETSc的参数(如果已启用)。

也许我们应该采用PETSc方法,建立PyClaw数据库可以在中查询特定对象的选项PyClaw运行时,而不是通过应用程序预先加载所有内容主要…

抓包.pyclaw.util。运行序列化(乐趣)

将函数修饰为仅串行运行,即使并行调用也是如此。

在并行通信器中,第一个进程将运行,而其余进程将运行挡住障碍物。在串行运行中,将直接调用该函数。

目前假设全球通信器是PETSc。COMM_WORLD,但很容易广义的。

抓包.pyclaw.util。测试应用程序(应用,验证器,关键字参数)

根据验证器方法测试给定应用程序的输出。

此函数执行以下两个函数调用:

输出 = 应用(**关键字参数)
检查值(_V) = 验证器(输出)

如果输出正确,验证器方法应返回None,否则返回None它应该返回三个项的索引序列:

0 - 预期 价值
1 - 测试 价值
2 - 一串 描述 这个 容忍 类型 (防抱死制动系统/相对)  价值.

此信息用于在检测到错误时提供描述性帮助。有关验证器方法的示例,请参阅util.check_diff