def make_vector_field(formula1, formula2, formula3): in_field = None compiled1 = sv_compile(formula1) compiled2 = sv_compile(formula2) compiled3 = sv_compile(formula3) def function(x, y, z, V): variables = dict(x=x, y=y, z=z, V=V) v1 = safe_eval_compiled(compiled1, variables) v2 = safe_eval_compiled(compiled2, variables) v3 = safe_eval_compiled(compiled3, variables) return v1, v2, v3 field = SvExVectorFieldLambda(function, None, in_field) return field
def compile_spreadsheet(src_dict, col_names): result = src_dict.copy() for row_name in src_dict: for col_name in col_names: if col_name in src_dict[row_name]: formula = src_dict[row_name][col_name] if formula and isinstance(formula, str): result[row_name][col_name] = sv_compile(formula) return result
def make_scalar_field(formula): in_field = None compiled = sv_compile(formula) def function(x, y, z, V): variables = dict(x=x, y=y, z=z, V=V) return safe_eval_compiled(compiled, variables) field = SvExScalarFieldLambda(function, None, in_field) return field