示例#1
0
文件: evaluate.py 项目: mfkiwl/RBniCS
def _evaluate(expression: Operator,
              at: (
                  ReducedMesh,
                  ReducedVertices,
              ), **kwargs):
    assert len(kwargs) == 0
    return evaluate_base(function_from_ufl_operators(expression), at)
示例#2
0
def _export(solution: Operator,
            directory: (Folders.Folder, str),
            filename: str,
            suffix: (int, None) = None,
            component: (int, str, None) = None):
    export_base(function_from_ufl_operators(solution), directory, filename,
                suffix, component)
def test_normalization(mesh, FunctionSpace, bilinear_form, isclose):
    V = FunctionSpace(mesh)
    
    A = assemble(bilinear_form(V))
    
    z1 = Function(V)
    z1.vector()[:] = 2.
    
    z1_normalized = function_from_ufl_operators(z1/sqrt(transpose(z1)*A*z1))
    assert isclose(z1_normalized.vector().get_local(), 1).all()
示例#4
0
def _abs(expression: (Function.Type(), Operator)):
    function = function_from_ufl_operators(expression)
    space = function.function_space()
    abs_output = abs(function.vector())
    value_max = abs_output.max_abs_return_value
    global_dof_max = abs_output.max_abs_return_location
    assert len(global_dof_max) == 1
    global_dof_max = global_dof_max[0]
    coordinates_max = get_global_dof_coordinates(global_dof_max, space)
    component_max = get_global_dof_component(global_dof_max, space)
    # Prettify print
    coordinates_max_component_max_dof_max = PrettyTuple(coordinates_max, component_max, global_dof_max)
    return AbsOutput(value_max, coordinates_max_component_max_dof_max)
示例#5
0
 def _extend_or_restrict_if_needed(self, function, component):
     function = function_from_ufl_operators(function)
     return GramSchmidt_Base._extend_or_restrict_if_needed(
         self, function, component)
示例#6
0
 def __setitem__(self, key, item):
     item = function_from_ufl_operators(item)
     FunctionsList_Base.__setitem__(self, key, item)
示例#7
0
 def _enrich(self, function, component, weight, copy):
     function = function_from_ufl_operators(function)
     FunctionsList_Base._enrich(self, function, component, weight, copy)
示例#8
0
def ConvertAdditionalFunctionTypes(arg):
    assert isinstance(arg, Operator)
    return function_from_ufl_operators(arg)
示例#9
0
def _assign(object_to: Function.Type(), object_from: Operator):
    dolfin_assign(object_to, function_from_ufl_operators(object_from))
def test_conversion(mesh, FunctionSpace, isclose):
    V = FunctionSpace(mesh)
    
    z1 = Function(V)
    z1.vector()[:] = 1.
    assert function_from_ufl_operators(z1) is z1
    
    _2_z1 = function_from_ufl_operators(2*z1)
    assert isclose(_2_z1.vector().get_local(), 2.).all()
    
    z1_2 = function_from_ufl_operators(z1*2)
    assert isclose(z1_2.vector().get_local(), 2.).all()
    
    z1_over_2 = function_from_ufl_operators(z1/2.)
    assert isclose(z1_over_2.vector().get_local(), 0.5).all()
    
    z2 = Function(V)
    z2.vector()[:] = 2.
    
    z1_plus_z2 = function_from_ufl_operators(z1 + z2)
    assert isclose(z1_plus_z2.vector().get_local(), 3.).all()
    
    z1_minus_z2 = function_from_ufl_operators(z1 - z2)
    assert isclose(z1_minus_z2.vector().get_local(), -1.).all()
    
    z1_minus_2_z2 = function_from_ufl_operators(z1 - 2*z2)
    assert isclose(z1_minus_2_z2.vector().get_local(), -3.).all()
    
    z1_minus_z2_2 = function_from_ufl_operators(z1 - z2*2)
    assert isclose(z1_minus_z2_2.vector().get_local(), -3.).all()
    
    z1_minus_3_z2_2 = function_from_ufl_operators(z1 - 3*z2*2)
    assert isclose(z1_minus_3_z2_2.vector().get_local(), -11.).all()
    
    z1_minus_z2_over_4 = function_from_ufl_operators(z1 - z2/4.)
    assert isclose(z1_minus_z2_over_4.vector().get_local(), 0.5).all()
    
    z1_minus_z2_over_2 = function_from_ufl_operators((z1 - z2)/2.)
    assert isclose(z1_minus_z2_over_2.vector().get_local(), -0.5).all()
    
    z3 = Function(V)
    z3.vector()[:] = 3.
    
    z1_minus_z2_plus_z3 = function_from_ufl_operators(z1 - z2 + z3)
    assert isclose(z1_minus_z2_plus_z3.vector().get_local(), 2.).all()
示例#11
0
文件: evaluate.py 项目: ljnpu/RBniCS
def _evaluate(expression: Operator,
              at: (ReducedMesh, ReducedVertices, None) = None,
              **kwargs):
    return evaluate_base(function_from_ufl_operators(expression), at, **kwargs)