-2

我正在尝试阅读位于此链接上的用于有限元建模的 DOLFIN c++ 库的文档:

https://fenicsproject.org/olddocs/dolfin/1.3.0/python/programmers-reference/index.html

但是文档很难阅读,因此对于没有 c++ 知识的人,您将如何阅读 Expression 类的 c++ 方法 eval_cell() 的以下参数规范(https://fenicsproject.org/docs/dolfin/2017.2.0 /python/programmers-reference/cpp/function/Expression.html):

参数:

double > & values (Array<) – (Array<double>) The values at the point.
Array< double > & x (const) – (Array<double>) The coordinates of the point.
ufc::cell & cell (const) – (ufc::cell) The cell which contains the given point.
4

1 回答 1

2

在查看了评论中链接的页面 t.niese 之后,我认为这是一个自动生成的文档,带有一个非常糟糕的生成器(就像真的非常糟糕)。

所以,如果我们修复被屠宰的第一行,在这里和那里重新对齐一些大括号并修复 const 的位置,它可能会变得更清晰:

参数

  • const Array<double>& values1 – 该点的值。
  • const Array<double> &x– 点的坐标。
  • const ufc::cell &cell– 包含给定点的单元格。

意义

您正在处理一个带有三个参数的函数,第一个和第二个是 type Array<double>,这似乎是通用容器。第三个参数是 type ufc::cell,不管它是什么。所有三个参数都是通过引用传递的(参见&每个变量名之前的),而不是通过值传递。但它们不仅作为引用传递,而且实际上作为 const 引用(参见 参考资料const),这意味着该函数不能修改您提供给它的对象。

但是,我不能对每个参数的评论说太多。


1我假设第一个参数也是 const,因为它得到了括号,在const其他两个参数中注明了,但这只是猜测。

于 2019-10-01T09:21:21.923 回答