Spaces:
Sleeping
Sleeping
File size: 849 Bytes
66c9c8a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | from warp.fem.space import SpaceRestriction
from .field import DiscreteField
class FieldRestriction:
"""Restriction of a discrete field to a given GeometryDomain"""
def __init__(self, space_restriction: SpaceRestriction, field: DiscreteField):
if field.space.dimension - 1 == space_restriction.space_topology.dimension:
field = field.trace()
if field.space.dimension != space_restriction.space_topology.dimension:
raise ValueError("Incompatible space and field dimensions")
if field.space.topology != space_restriction.space_topology:
raise ValueError("Incompatible field and space restriction topologies")
self.space_restriction = space_restriction
self.domain = self.space_restriction.domain
self.field = field
self.space = self.field.space
|