Beispiel #1
0
def restrict_tfe(element, domain, take_closure):
    restricted = restrict(element._base_element, domain, take_closure)
    if restricted is null_element:
        return null_element
    else:
        return finat.TensorFiniteElement(restricted, element._shape,
                                         element._transpose)
Beispiel #2
0
def convert_tensorelement(element, **kwargs):
    scalar_elem, deps = _create_element(element.sub_elements()[0], **kwargs)
    shape = element.reference_value_shape()
    shape_innermost = kwargs["shape_innermost"]
    return (finat.TensorFiniteElement(scalar_elem, shape, not shape_innermost),
            deps | {"shape_innermost"})
Beispiel #3
0
def convert_vectorelement(element, **kwargs):
    scalar_elem, deps = _create_element(element.sub_elements()[0], **kwargs)
    shape = (element.num_sub_elements(), )
    shape_innermost = kwargs["shape_innermost"]
    return (finat.TensorFiniteElement(scalar_elem, shape, not shape_innermost),
            deps | {"shape_innermost"})
Beispiel #4
0
def convert_tensorelement(element):
    scalar_element = create_element(element.sub_elements()[0])
    return finat.TensorFiniteElement(scalar_element,
                                     element.reference_value_shape())
Beispiel #5
0
def convert_vectorelement(element):
    scalar_element = create_element(element.sub_elements()[0])
    return finat.TensorFiniteElement(scalar_element,
                                     (element.num_sub_elements(), ))
Beispiel #6
0
def rebuild_te(element, expr, rt_var_name):
    return finat.TensorFiniteElement(rebuild(element.base_element, expr,
                                             rt_var_name),
                                     element._shape,
                                     transpose=element._transpose)