mindflow.geometry.GeometryWithTime
- class mindflow.geometry.GeometryWithTime(geometry, timedomain, sampling_config=None)[源代码]
含时域几何体的定义。
- 参数:
geometry (Geometry) - 几何体。
timedomain (TimeDomain) - 时域。
sampling_config (SamplingConfig) - 采样配置。默认值:
None
。
- 异常:
ValueError - 如果 sampling_config 不是
None
,但 sampling_config.time 是None
。
- 支持平台:
Ascend
GPU
样例:
>>> from mindflow.geometry import generate_sampling_config, Rectangle, TimeDomain, GeometryWithTime >>> rect_with_time_config = dict({ ... 'domain': dict({ ... 'random_sampling': True, ... 'size': 200, ... }), ... 'BC': dict({ ... 'random_sampling': False, ... 'size': 100, ... 'with_normal': True, ... }), ... 'IC': dict({ ... 'random_sampling': False, ... 'size': [10, 10], ... }), ... 'time': dict({ ... '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 = generate_sampling_config(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,如果配置选择包括法向向量,返回带边界法向向量的二维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的实例。