mindelec.geometry.Disk

class mindelec.geometry.Disk(name, center, radius, dtype=np.float32, sampling_config=None)[源代码]

圆盘对象的定义。

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

  • center (Union[tuple[int, int], tuple[float, float], list[int, int], list[float, float], numpy.ndarray]) - 圆盘的中心坐标。

  • radius (Union[int, float]) - 圆盘的半径。

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

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

异常:
  • ValueError - 如果 center 既不是长度为2的list也不是Tuple。

  • ValueError - 如果 radius 为负数。

支持平台:

Ascend

样例:

>>> from easydict import EasyDict as edict
>>> from mindelec.geometry import create_config_from_edict, Disk
>>> disk_mesh = edict({'domain': edict({'random_sampling': False, 'size' : [100, 180]}),
...                    'BC': edict({'random_sampling': False, 'size': 200, 'with_normal' : True,})})
>>> disk = Disk("disk", (-1.0, 0), 2.0, sampling_config=create_config_from_edict(disk_mesh))
>>> domain = disk.sampling(geom_type="domain")
>>> bc, bc_normal = disk.sampling(geom_type="BC")
>>> print(bc.shape)
(200, 2)
sampling(geom_type='domain')[源代码]

采样域和边界点。

参数:
  • geom_type (str) - 几何类型,可以是”domain”或者”BC”。默认值:”domain”。

    • “domain”:问题的可行域。

    • “BC”:问题的边界条件。

返回:

Numpy.array,如果配置选择包括法向向量,返回带边界法向向量的二维numpy数组。否则返回不带边界法向向量的二维numpy数组。

异常:
  • ValueError - 如果 config 为None。

  • KeyError - 如果 geom_typedomain ,但 config.domain 是None。

  • KeyError - 如果 geom_typeBC ,但 config.bc 为None。

  • ValueError - 如果 geom_type 既不是 BC 也不是 domain