mindflow.geometry.Cone

class mindflow.geometry.Cone(name, centre, radius, h_min, h_max, h_axis, boundary_type='uniform', dtype=numpy.float32, sampling_config=None)[源代码]

圆锥体对象的定义。

参数:
  • name (str) - 圆锥体的名称。

  • centre (numpy.ndarray) - 底部的原点。

  • radius (float) - 底部的半径。

  • h_min (float) - 底部的高度坐标。

  • h_max (float) - 圆锥体的最大高度坐标。

  • h_axis (int) - 底部法向向量的轴。

  • boundary_type (str) - 值可以是 'uniform''unweighted' 。默认值: 'uniform'

    • ‘uniform’,每个边界中的预期样本数与边界的面积(长度)是成比例的。

    • ‘unweighted’,每个边界中的预期样本数相同。

  • dtype (numpy.dtype) - 采样点数据类型的数据类型。默认值: np.float32

  • sampling_config (SamplingConfig) - 采样配置。默认值: None

支持平台:

Ascend GPU

样例:

>>> import numpy as np
>>> from mindflow.geometry import generate_sampling_config, Cone
>>> cone_mesh = dict({'domain': dict({'random_sampling': True, 'size': 300}),
...                   'BC': dict({'random_sampling': True, 'size': 300, 'with_normal': False,}),})
>>> vertices = np.array([[0., .1, 0.], [.9, .2, .1], [.5, .6, 0.1], [.6, .5, .8]])
>>> centre = np.array([0., 0.5])
>>> radius = 1.5
>>> h_min = -7.
>>> h_max = 7.
>>> h_axis = 2
>>> cone = Cone("cone", centre, radius, h_min, h_max, h_axis,
...             sampling_config=generate_sampling_config(cone_mesh))
>>> domain = cone.sampling(geom_type="domain")
>>> bc = cone.sampling(geom_type="bc")
>>> print(domain.shape)
(300, 2)