mindelec.geometry.GeometryWithTime
- class mindelec.geometry.GeometryWithTime(geometry, timedomain, sampling_config=None)[源代码]
含时域几何体的定义。
- 参数:
geometry (Geometry) - 几何体。
timedomain (TimeDomain) - 时域。
sampling_config (SamplingConfig) - 采样配置。默认值:None。
- 异常:
ValueError - 如果 sampling_config 不是None,但 sampling_config.time 是None。
- 支持平台:
Ascend
样例:
>>> from easydict import EasyDict as edict >>> from mindelec.geometry import create_config_from_edict, Rectangle, TimeDomain, GeometryWithTime >>> rect_with_time_config = edict({ ... 'domain': edict({ ... 'random_sampling': True, ... 'size': 200, ... }), ... 'BC': edict({ ... 'random_sampling': False, ... 'size': 100, ... 'with_normal': True, ... }), ... 'IC': edict({ ... 'random_sampling': False, ... 'size': [10, 10], ... }), ... 'time': edict({ ... 'random_sampling': True, ... 'size': 10, ... }) ... }) >>> rect = Rectangle("rect", [-1.0, -0.5], [1.0, 0.5]) >>> time = TimeDomain("time", 0.0, 1.0) >>> rect_with_time = GeometryWithTime(rect, time) >>> sampling_config = create_config_from_edict(rect_with_time_config) >>> rect_with_time.set_sampling_config(sampling_config) >>> bc, bc_normal = rect_with_time.sampling(geom_type="BC") >>> domain = rect_with_time.sampling(geom_type="domain") >>> ic = rect_with_time.sampling(geom_type="IC") >>> print(domain.shape) (200, 3) >>> print(bc.shape) (90, 3) >>> print(ic.shape) (100, 3)
- sampling(geom_type='domain')[源代码]
采样点。
- 参数:
geom_type (str) - 几何类型,可以是”domain”或者”BC”或者”IC”。默认值:”domain”。
“domain”:问题的可行域。
“BC”:问题的边界条件。
“IC”:问题的初始条件。
- 返回:
Numpy.array,如果在边界条件(“BC”)中的法向向量(“with_normal”)设置为真,返回带边界法向向量的二维numpy数组。否则返回不带边界法向向量的二维numpy数组。
- 异常:
ValueError - 如果 config 为None。
KeyError - 如果 geom_type 是 domain,但 config.domain 为None。
KeyError - 如果 geom_type 为 BC,但 config.bc 为None。
KeyError - 如果 geom_type 为 IC,但 config.ic 为None。
ValueError - 如果 geom_type 不是 BC 、 IC 也不是 domain。
- set_sampling_config(sampling_config: SamplingConfig)[源代码]
设置采样信息。
- 参数:
sampling_config (SamplingConfig) - 采样配置。
- 异常:
TypeError - 如果 sampling_config 不是SamplingConfig的实例。