From 169f7786ff2bf74b694e2bad6197c0b78974cc19 Mon Sep 17 00:00:00 2001 From: Cheng Gong Date: Mon, 18 Nov 2024 12:37:22 -0500 Subject: [PATCH] add inside function to domain --- pinnicle/domain/domain.py | 11 +++++++++++ tests/test_domain.py | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/pinnicle/domain/domain.py b/pinnicle/domain/domain.py index 8311245..ba0c043 100644 --- a/pinnicle/domain/domain.py +++ b/pinnicle/domain/domain.py @@ -38,3 +38,14 @@ def get_polygon_vertices(self, filepath): domain_list.append(vertex_list) return domain_list + + def inside(self, x): + """ + return if given points are inside the domain + """ + if self.parameters.time_dependent: + # only check the spatial domain + # TODO: add time domain + return self.geometry.geometry.inside(x) + else: + return self.geometry.inside(x) diff --git a/tests/test_domain.py b/tests/test_domain.py index 742fcc3..0cf797f 100644 --- a/tests/test_domain.py +++ b/tests/test_domain.py @@ -2,6 +2,7 @@ import pytest import deepxde as dde import os +import numpy as np def test_domain(): @@ -19,6 +20,11 @@ def test_domain(): d2 = pinn.domain.Domain(p2) assert type(d2.geometry) == dde.geometry.Polygon + c = np.array([0.5*(d2.geometry.bbox[0]+d2.geometry.bbox[1])]) + assert d2.inside(c) + o = np.array([d2.geometry.bbox[0]-[100,100] ,d2.geometry.bbox[1]+[100,100]]) + assert not np.any(d2.inside(o)) + hp["time_dependent"] = True hp["start_time"] = 0 hp["end_time"] = 1 @@ -27,3 +33,8 @@ def test_domain(): assert type(d2.geometry) != dde.geometry.Polygon assert type(d2.geometry) == dde.geometry.GeometryXTime assert (d2.geometry.random_points(5)).shape == (5, 3) + + c = np.array([0.5*(d2.geometry.geometry.bbox[0]+d2.geometry.geometry.bbox[1])]) + assert d2.inside(c) + o = np.array([d2.geometry.geometry.bbox[1]-[100,100] ,d2.geometry.geometry.bbox[1]+[100,100]]) + assert not np.any(d2.inside(o))