mindscience.data.Disk

class mindscience.data.Disk(name, center, radius, dtype=numpy.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或长度为2的tuple时。

  • ValueError - 当 radius 为负数时。

样例:

>>> from mindscience.data import generate_sampling_config, Disk
>>> disk_mesh = dict({'domain': dict({'random_sampling': False, 'size' : [100, 180]}),
...                   'BC': dict({'random_sampling': False, 'size': 200, 'with_normal' : True,})})
>>> disk = Disk("disk", (-1.0, 0), 2.0, sampling_config=generate_sampling_config(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':问题的可行域(feasible domain of the problem)。

    • 'BC':问题的边界(boundary of the problem)。

返回:

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

异常:
  • KeyError - 如果 geom_type'domain',但 self.sampling_config.domainNone

  • KeyError - 如果 geom_type'BC',但 self.sampling_config.bcNone

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