24 KiB
C 数据结构与转换接口
模块:meshkernel.c_structures。本页依据本地 MeshKernelPy 8.3.0 源码生成,包含该模块定义的类、方法、函数和常量。签名及参数默认值以源码为准;原文未提供的说明会明确标记。
CMesh2d
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 Mesh2D 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
edge_faces(POINTER(c_int)):每条边关联的网格面索引。 -
edge_nodes(POINTER(c_int)):组成每条二维网格边的节点。 -
face_edges(POINTER(c_int)):每个网格面的边索引。 -
face_nodes(POINTER(c_int)):组成每个二维网格面的节点。 -
nodes_per_face(POINTER(c_int)):组成每个二维网格面的节点。(原说明如此;实际字段表示每个面的节点数。) -
node_x(POINTER(c_double)):节点的 x 坐标。 -
node_y(POINTER(c_double)):节点的 y 坐标。 -
edge_x(POINTER(c_double)):网格边中点的 x 坐标。 -
edge_y(POINTER(c_double)):网格边中点的 y 坐标。(原文误写为 x 坐标。) -
face_x(POINTER(c_double)):网格面质心的 x 坐标。 -
face_y(POINTER(c_double)):网格面质心的 y 坐标。 -
num_nodes(c_int):网格节点数。 -
num_valid_nodes(c_int):有效一维节点数。 -
num_edges(c_int):边数。 -
num_valid_edges(c_int):有效边数。 -
num_faces(c_int):网格面数。 -
num_face_nodes(c_int):组成所有二维网格面的节点总数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
edge_faces |
POINTER(c_int) |
edge_nodes |
POINTER(c_int) |
face_edges |
POINTER(c_int) |
face_nodes |
POINTER(c_int) |
nodes_per_face |
POINTER(c_int) |
node_x |
POINTER(c_double) |
node_y |
POINTER(c_double) |
edge_x |
POINTER(c_double) |
edge_y |
POINTER(c_double) |
face_x |
POINTER(c_double) |
face_y |
POINTER(c_double) |
num_nodes |
c_int |
num_valid_nodes |
c_int |
num_edges |
c_int |
num_valid_edges |
c_int |
num_faces |
c_int |
num_face_nodes |
c_int |
方法索引
CMesh2d.from_mesh2d
from_mesh2d(mesh2d: Mesh2d) -> CMesh2d
修饰器:staticmethod。
根据给定的 Mesh2d 实例创建新的 CMesh 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
mesh2d |
Mesh2d |
必填 |
持有状态的 NumPy 数组封装对象。 |
返回值
CMesh2d:创建的 CMesh2d 实例。
CMesh2d.allocate_memory
allocate_memory(self) -> Mesh2d
根据名称以 num_ 开头的参数分配数据内存。 随后将指针指向新分配的内存。 内存由此方法返回的 Mesh2d 实例持有。
返回值
Mesh2d:持有已分配内存的对象。
CGeometryList
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 GeometryList 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
geometry_separator(c_double):坐标数组中的几何分隔值。 -
inner_outer_separator(c_double):用于分隔多边形内边界和外边界的值。 -
n_coordinates(c_int):坐标值的数量。 -
x_coordinates(POINTER(c_double)):x 坐标。 -
y_coordinates(POINTER(c_double)):y 坐标。 -
values(POINTER(c_double)):二维网格上的数值。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
geometry_separator |
c_double |
inner_outer_separator |
c_double |
n_coordinates |
c_int |
x_coordinates |
POINTER(c_double) |
y_coordinates |
POINTER(c_double) |
values |
POINTER(c_double) |
方法索引
CGeometryList.from_geometrylist
from_geometrylist(geometry_list: GeometryList) -> CGeometryList
修饰器:staticmethod。
根据给定的 GeometryList 实例创建新的 CGeometryList 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
geometry_list |
GeometryList |
必填 |
几何列表。 |
返回值
CGeometryList:为给定 GeometryList 创建的 C 数据结构。
CInterpolationParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示采样数据插值所用的参数。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
interpolation_type(c_int):默认使用采样数据平均插值。 -
method(c_int):使用的平均方法。 -
absolute_search_radius(c_double):绝对搜索半径。 -
relative_search_radius(c_double):相对搜索半径。 -
use_closest_if_none_found(c_bool):如果多边形内未找到采样点,则使用最近的点。 -
minimum_number_of_samples(c_int):某些平均方法所需的最少采样点数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
interpolation_type |
c_int |
method |
c_int |
absolute_search_radius |
c_double |
relative_search_radius |
c_double |
use_closest_if_none_found |
c_bool |
minimum_number_of_samples |
c_int |
方法索引
CInterpolationParameters.from_interpolationparameters
from_interpolationparameters(interpolation_parameters: InterpolationParameters) -> CInterpolationParameters
修饰器:staticmethod。
根据给定的 InterpolationParameters 实例创建新的 CInterpolationParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
interpolation_parameters |
InterpolationParameters |
必填 |
插值参数。 |
返回值
CInterpolationParameters:为给定 InterpolationParameters 创建的 C 数据结构。
COrthogonalizationParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 OrthogonalizationParameters 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
outer_iterations(c_int):正交化的外层迭代次数。 -
boundary_iterations(c_int):网格正交化过程中 itatp 内的边界迭代次数。 -
inner_iterations(c_int):网格正交化过程中 itbnd 内的内部迭代次数。 -
orthogonalization_to_smoothing_factor(c_double):控制网格平滑(0)与网格正交化(1)之间权重的系数。 -
orthogonalization_to_smoothing_factor_at_boundary(c_double):边界上的最小 ATPF 值。 -
areal_to_angle_smoothing_factor(c_double):在平滑器(1.0)与面积均匀化(0.0)之间调节的系数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
outer_iterations |
c_int |
boundary_iterations |
c_int |
inner_iterations |
c_int |
orthogonalization_to_smoothing_factor |
c_double |
orthogonalization_to_smoothing_factor_at_boundary |
c_double |
areal_to_angle_smoothing_factor |
c_double |
方法索引
COrthogonalizationParameters.from_orthogonalizationparameters
from_orthogonalizationparameters(orthogonalization_parameters: OrthogonalizationParameters) -> COrthogonalizationParameters
修饰器:staticmethod。
根据给定的 OrthogonalizationParameters 实例创建新的 COrthogonalizationParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
orthogonalization_parameters |
OrthogonalizationParameters |
必填 |
正交化参数。 |
返回值
COrthogonalizationParameters:为给定 OrthogonalizationParameters 创建的 C 数据结构。
CMeshRefinementParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 MeshRefinementParameters 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
max_refinement_iterations(c_int):最大加密迭代次数。 -
refine_intersected(c_int):是否处理与多边形相交的网格面(1 为是,0 为否)。 -
use_mass_center_when_refining(c_int):加密过程中划分网格面时是否使用质心(1 为是,0 为否)。 -
min_edge_size(c_double):最小网格单元尺寸。 -
refinement_type(c_int):加密判据类型。 -
connect_hanging_nodes(c_int):是否在迭代结束时连接悬挂节点。 -
account_for_samples_outside(c_int):是否考虑网格面外的采样数据。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
max_refinement_iterations |
c_int |
refine_intersected |
c_int |
use_mass_center_when_refining |
c_int |
min_edge_size |
c_double |
refinement_type |
c_int |
connect_hanging_nodes |
c_int |
account_for_samples_outside_face |
c_int |
smoothing_iterations |
c_int |
max_courant_time |
c_double |
directional_refinement |
c_int |
方法索引
CMeshRefinementParameters.from_meshrefinementparameters
from_meshrefinementparameters(mesh_refinement_parameters: MeshRefinementParameters) -> CMeshRefinementParameters
修饰器:staticmethod。
根据给定的 MeshRefinementParameters 实例创建新的 CMeshRefinementParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
mesh_refinement_parameters |
MeshRefinementParameters |
必填 |
网格加密参数。 |
返回值
CMeshRefinementParameters:为给定 MeshRefinementParameters 创建的 C 数据结构。
CMakeGridParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 MakeGridParameters 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
num_columns(c_int):x 方向的列数。 -
num_rows(c_int):y 方向的行数。(原文称为列数。) -
angle(c_double):网格角度。 -
origin_x(c_double):左下角原点的 x 坐标。 -
origin_y(c_double):左下角原点的 y 坐标。 -
block_size_x(c_double):x 方向的网格块尺寸,仅用于方形网格。 -
block_size_y(c_double):y 方向的网格块尺寸,仅用于方形网格。 -
upper_right_x(c_double):右上角的 x 坐标。 -
upper_right_y(c_double):右上角的 y 坐标。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
num_columns |
c_int |
num_rows |
c_int |
angle |
c_double |
origin_x |
c_double |
origin_y |
c_double |
block_size_x |
c_double |
block_size_y |
c_double |
upper_right_x |
c_double |
upper_right_y |
c_double |
方法索引
CMakeGridParameters.from_makegridparameters
from_makegridparameters(make_grid_parameters: MakeGridParameters) -> CMakeGridParameters
修饰器:staticmethod。
根据给定的 MeshRefinementParameters 实例创建新的 CMeshRefinementParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
make_grid_parameters |
MakeGridParameters |
必填 |
网格生成参数。 |
返回值
CMakeGridParameters:为给定 MakeGridParameters 创建的 C 数据结构。
CMesh1d
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 Mesh1D 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
edge_nodes(POINTER(c_int)):组成每条一维网格边的节点。 -
node_x(POINTER(c_double)):节点的 x 坐标。 -
node_y(POINTER(c_double)):节点的 y 坐标。 -
num_nodes(c_int):节点数。 -
num_valid_nodes(c_int):有效网格节点数。 -
num_edges(c_int):边数。 -
num_valid_edges(c_int):有效边数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
edge_nodes |
POINTER(c_int) |
node_x |
POINTER(c_double) |
node_y |
POINTER(c_double) |
num_nodes |
c_int |
num_valid_nodes |
c_int |
num_edges |
c_int |
num_valid_edges |
c_int |
方法索引
CMesh1d.from_mesh1d
from_mesh1d(mesh1d: Mesh1d) -> CMesh1d
修饰器:staticmethod。
根据给定的 Mesh1d 实例创建新的 CMesh 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
mesh1d |
Mesh1d |
必填 |
持有状态的 NumPy 数组封装对象。 |
返回值
CMesh1d:创建的 CMesh1d 实例。
CMesh1d.allocate_memory
allocate_memory(self) -> Mesh1d
根据名称以 num_ 开头的参数分配数据内存。 随后将指针指向新分配的内存。 内存由此方法返回的 Mesh1d 实例持有。
返回值
Mesh1d:持有已分配内存的对象。
CContacts
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 Contacts 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
mesh1d_indices(POINTER(c_int)):一维网格节点的索引。 -
mesh2d_indices(POINTER(c_int)):二维网格面的索引。 -
num_contacts(c_int):连接数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
mesh1d_indices |
POINTER(c_int) |
mesh2d_indices |
POINTER(c_int) |
num_contacts |
c_int |
方法索引
CContacts.from_contacts
from_contacts(contacts: Contacts) -> CContacts
修饰器:staticmethod。
根据给定的 Contacts 实例创建新的 CContacts 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
contacts |
Contacts |
必填 |
网格连接。 |
返回值
CContacts:为给定 Contacts 创建的 C 数据结构。
CContacts.allocate_memory
allocate_memory(self) -> Contacts
根据名称以 num_ 开头的参数分配数据内存。 随后将指针指向新分配的内存。 内存由此方法返回的 Contacts 实例持有。
返回值
Contacts:持有已分配内存的对象。
CCurvilinearGrid
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 Curvilinear 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
node_x(POINTER(c_double)):节点的 x 坐标。 -
node_y(POINTER(c_double)):节点的 y 坐标。 -
num_m(c_int):沿 m 方向的曲线网格节点数。 -
num_n(c_int):沿 n 方向的曲线网格节点数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
node_x |
POINTER(c_double) |
node_y |
POINTER(c_double) |
num_m |
c_int |
num_n |
c_int |
方法索引
CCurvilinearGrid.from_curvilinearGrid
from_curvilinearGrid(curvilinear_grid: CurvilinearGrid) -> CCurvilinearGrid
修饰器:staticmethod。
根据给定的 CurvilinearGrid 实例创建新的 CMesh 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
curvilinear_grid |
CurvilinearGrid |
必填 |
持有状态的 NumPy 数组封装对象。 |
返回值
CCurvilinearGrid:创建的 CCurvilinearGrid 实例。
CCurvilinearGrid.allocate_memory
allocate_memory(self) -> CurvilinearGrid
根据名称以 num_ 开头的参数分配数据内存。 随后将指针指向新分配的内存。 内存由此方法返回的 CurvilinearGrid 实例持有。
返回值
CurvilinearGrid:持有已分配内存的对象。
CCurvilinearParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 CurvilinearParameters 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
m_refinement(c_int):生成规则网格时的 m 方向加密系数。 -
n_refinement(c_int):生成规则网格时的 n 方向加密系数。 -
smoothing_iterations(c_int):规则网格平滑的内部迭代次数。 -
smoothing_parameter(c_double):平滑参数。 -
attraction_parameter(c_double):吸引/排斥参数。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
m_refinement |
c_int |
n_refinement |
c_int |
smoothing_iterations |
c_int |
smoothing_parameter |
c_double |
attraction_parameter |
c_double |
方法索引
CCurvilinearParameters.from_curvilinearParameters
from_curvilinearParameters(curvilinear_parameters: CurvilinearParameters) -> CCurvilinearParameters
修饰器:staticmethod。
根据给定的 CurvilinearParameters 实例创建新的 CCurvilinearParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
curvilinear_parameters |
CurvilinearParameters |
必填 |
曲线网格参数。 |
返回值
CCurvilinearParameters:为给定 CurvilinearParameters 创建的 C 数据结构。
CSplinesToCurvilinearParameters
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 SplinesToCurvilinearParameters 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
aspect_ratio(c_double):纵横比。 -
aspect_ratio_grow_factor(c_double):纵横比增长系数。 -
average_width(c_double):中心样条曲线上的平均网格宽度。 -
curvature_adapted_grid_spacing(c_int):随曲率调整的网格间距。 -
grow_grid_outside(c_int):是否在指定网格高度之外扩展网格。 -
maximum_num_faces_in_uniform_part(c_int):均匀部分的最大层数。 -
nodes_on_top_of_each_other_tolerance(c_double):节点重合判定容差。 -
min_cosine_crossing_angles(c_double):交叉角余弦绝对值允许的最小值。 -
check_front_collisions(c_int):是否检查与前沿其他部分的碰撞。 -
remove_skinny_triangles(c_int):是否检查与前沿其他部分的碰撞。(源说明与上一字段重复;字段名称表示移除细长三角形。)
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
aspect_ratio |
c_double |
aspect_ratio_grow_factor |
c_double |
average_width |
c_double |
curvature_adapted_grid_spacing |
c_int |
grow_grid_outside |
c_int |
maximum_num_faces_in_uniform_part |
c_int |
nodes_on_top_of_each_other_tolerance |
c_double |
min_cosine_crossing_angles |
c_double |
check_front_collisions |
c_int |
remove_skinny_triangles |
c_int |
方法索引
CSplinesToCurvilinearParameters.from_splinesToCurvilinearParameters
from_splinesToCurvilinearParameters(splines_to_curvilinear_parameters: SplinesToCurvilinearParameters) -> CSplinesToCurvilinearParameters
修饰器:staticmethod。
根据给定的 OrthogonalizationParameters 实例创建新的 COrthogonalizationParameters 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
splines_to_curvilinear_parameters |
SplinesToCurvilinearParameters |
必填 |
源码未单独提供参数说明。 |
原文还列出了以下参数说明(名称可能与当前签名不一致):
orthogonalization_parameters(OrthogonalizationParameters):正交化参数。
返回值
COrthogonalizationParameters:为给定 OrthogonalizationParameters 创建的 C 数据结构。
CGriddedSamples
继承:Structure。
仅供内部使用的 C 数据结构。 表示 MeshKernel API 定义的 GriddedSamples 结构体。
用于与 MeshKernel 动态链接库通信。
该类的 _fields_ 属性包含以下字段:
-
num_x(c_int):网格采样数据在 x 方向上的坐标数。 -
num_y(c_int):网格采样数据在 y 方向上的坐标数。 -
x_origin(c_double):采样网格原点的 x 坐标。 -
y_origin(c_double):采样网格原点的 y 坐标。 -
cell_size(c_int):固定的采样网格单元尺寸。 -
x_coordinates(POINTER(c_double)):若不为 nullptr,则指定 x 方向非均匀网格间距对应的坐标。 -
y_coordinates(POINTER(c_double)):若不为 nullptr,则指定 y 方向非均匀网格间距对应的坐标。 -
values(POINTER(c_double)):采样值。
C 结构体字段(按源码顺序)
| 字段 | C 类型 |
|---|---|
num_x |
c_int |
num_y |
c_int |
x_origin |
c_double |
y_origin |
c_double |
cell_size |
c_double |
x_coordinates |
POINTER(c_double) |
y_coordinates |
POINTER(c_double) |
values |
c_void_p |
value_type |
c_int |
方法索引
CGriddedSamples.from_griddedSamples
from_griddedSamples(gridded_samples: GriddedSamples) -> CGriddedSamples
修饰器:staticmethod。
根据给定的 GriddedSamples 实例创建新的 CGriddedSamples 实例。
参数
| 名称 | 类型 | 默认值 | 中文说明 |
|---|---|---|---|
gridded_samples |
GriddedSamples |
必填 |
网格采样数据。 |
返回值
CGriddedSamples:为给定 CGriddedSamples 创建的 C 数据结构。