minor fix

This commit is contained in:
Your Name
2022-07-20 17:23:53 +02:00
committed by Nicola Demo
parent 75a81af99c
commit a05adea4e3
10 changed files with 231 additions and 203 deletions

View File

@@ -18,9 +18,32 @@ class AbstractProblem(metaclass=ABCMeta):
return variables
@property
def domain(self):
domains = [
getattr(self, f'{t}_domain')
for t in ['spatial', 'temporal', 'parameter']
if hasattr(self, f'{t}_domain')
]
if len(domains) == 1:
return domains[0]
elif len(domains) == 0:
raise RuntimeError
if len(set(map(type, domains))) == 1:
domain = domains[0].__class__({})
[domain.update(d) for d in domains]
return domain
else:
raise RuntimeError('different domains')
@input_variables.setter
def input_variables(self, variables):
raise NotImplementedError
raise RuntimeError
@property
@abstractmethod

View File

@@ -5,7 +5,10 @@ from .abstract_problem import AbstractProblem
class ParametricProblem(AbstractProblem):
@property
@abstractmethod
def parameters(self):
def parameter_domain(self):
pass
@property
def parameters(self):
return self.parameter_domain.variables

View File

@@ -6,5 +6,9 @@ from .abstract_problem import AbstractProblem
class SpatialProblem(AbstractProblem):
@abstractmethod
def spatial_variables(self):
def spatial_domain(self):
pass
@property
def spatial_variables(self):
return self.spatial_domain.variables

View File

@@ -5,7 +5,10 @@ from .abstract_problem import AbstractProblem
class TimeDependentProblem(AbstractProblem):
@property
@abstractmethod
def temporal_variable(self):
def temporal_domain(self):
pass
@property
def temporal_variables(self):
return self.temporal_domain.variables