-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: rewritten builder structure
- Loading branch information
1 parent
95ce299
commit 1c0cb45
Showing
8 changed files
with
103 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
from base_builder import BaseBuilder | ||
from .base_builder import BaseBuilder | ||
from .structural_frame_builder import StructuralFrameBuilder |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,19 @@ | ||
from abc import ABC, abstractmethod | ||
from base_builder import BaseBuilder | ||
from .structural_frame_builder import StructuralFrameBuilder | ||
from ..datatypes import ConstraintType, InterpolationConstraints | ||
from LoopStructural import LoopInterpolator, BoundingBox | ||
import numpy | ||
|
||
|
||
class FoldFrameBuilder(BaseBuilder): | ||
class FoldFrameBuilder(StructuralFrameBuilder): | ||
|
||
def set_value_constraints(self): | ||
pass | ||
|
||
def set_tangent_constraints(self): | ||
pass | ||
|
||
def set_normal_constraints(self): | ||
pass | ||
|
||
def set_gradient_constraints(self): | ||
pass | ||
def __init__(self, constraints: InterpolationConstraints, bounding_box: BoundingBox): | ||
super().__init__(constraints, bounding_box) | ||
|
||
def build(self): | ||
def build_axial_surface_field(self): | ||
pass | ||
|
||
def evaluate_scalar_value(self): | ||
def build_fold_axis_field(self): | ||
pass | ||
|
||
def evaluate_gradient(self): | ||
def build_x_axis_field(self): | ||
pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
from base_builder import BaseBuilder | ||
from ..datatypes import ConstraintType, InterpolationConstraints | ||
from LoopStructural import LoopInterpolator, BoundingBox | ||
import numpy | ||
|
||
|
||
class StructuralFrameBuilder(BaseBuilder): | ||
|
||
def __init__(self, constraints: InterpolationConstraints, bounding_box: BoundingBox): | ||
self.constraints = constraints | ||
self.bounding_box = bounding_box | ||
self.interpolator = LoopInterpolator( | ||
self.bounding_box, | ||
dimensions=3, | ||
nelements=1000 | ||
) | ||
|
||
def set_constraints(self): | ||
self.interpolator.fit( | ||
values=self.constraints[ConstraintType.VALUE], | ||
tangent_vectors=self.constraints[ConstraintType.TANGENT], | ||
normal_vectors=self.constraints[ConstraintType.NORMAL], | ||
) | ||
|
||
def evaluate_scalar_value(self, locations: numpy.ndarray) -> numpy.ndarray: | ||
return self.interpolator.evaluate_scalar_value(locations) | ||
|
||
def evaluate_gradient(self, locations: numpy.ndarray) -> numpy.ndarray: | ||
return self.interpolator.evaluate_gradient(locations) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
from .probability_distributions import NormalDistribution, VonMisesFisherDistribution | ||
from .input_geological_knowledge import InputGeologicalKnowledge | ||
from .enums import KnowledgeType, OptimisationType, ObjectiveType, DataType, SolverType | ||
from .enums import KnowledgeType, OptimisationType, ObjectiveType, DataType, SolverType, ConstraintType | ||
from .interpolation_constraints import InterpolationConstraints |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
from dataclasses import dataclass | ||
from typing import Union, Optional | ||
from enums import ConstraintType | ||
import numpy | ||
import beartype | ||
|
||
|
||
|
||
@dataclass | ||
class InterpolationConstraints: | ||
""" | ||
Class to store interpolation constraints for a given problem. | ||
Attributes | ||
---------- | ||
value_constraints : Optional[Union[list, numpy.ndarray]] | ||
The value constraints for the interpolation, [x, y, z, value, weight]. | ||
tangent_constraints : Optional[Union[list, numpy.ndarray]] | ||
The tangent constraints for the interpolation, [x, y, z, tx, ty, tz, weight]. | ||
normal_constraints : Optional[Union[list, numpy.ndarray]] | ||
The normal constraints for the interpolation., [x, y, z, nx, ny, nz, weight]. | ||
gradient_constraints : Optional[Union[list, numpy.ndarray]] | ||
The gradient constraints for the interpolation, [x, y, z, gx, gy, gz, weight]. | ||
""" | ||
value_constraints: Optional[Union[list, numpy.ndarray]] = None | ||
tangent_constraints: Optional[Union[list, numpy.ndarray]] = None | ||
normal_constraints: Optional[Union[list, numpy.ndarray]] = None | ||
gradient_constraints: Optional[Union[list, numpy.ndarray]] = None | ||
|
||
@beartype.beartype | ||
def __getitem__(self, constraint_type: ConstraintType): | ||
constraints = { | ||
ConstraintType.VALUE: self.value_constraints, | ||
ConstraintType.TANGENT: self.tangent_constraints, | ||
ConstraintType.NORMAL: self.normal_constraints, | ||
ConstraintType.GRADIENT: self.gradient_constraints | ||
} | ||
return constraints[constraint_type] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters