Source code for pyleecan.Methods.Mesh.SolutionVector.get_field
# -*- coding: utf-8 -*-
import numpy as np
from ....Functions.Structural.conversions import pol2cart
def get_field(self, *args, is_squeeze=False, node=None, is_rthetaz=False):
"""Get the value of variables stored in Solution.
Parameters
----------
self : SolutionVector
an SolutionVector object
*args: list of strings
List of axes requested by the user, their units and values (optional)
nodes : array of float
Node of the mesh (optional)
is_rthetaz : bool
cylindrical coordinates
Returns
-------
field: array
an array of field values
"""
# if len(args) == 1 and type(args[0]) == tuple:
# args = args[0]
if is_squeeze:
axname, axsize = self.get_axes_list(*args)
else:
axname, axsize = self.get_axes_list()
components = self.field.components
ind_0 = axname.index("component")
field_list = list()
if "comp_x" in components:
results = self.field.get_xyz_along(args, is_squeeze=is_squeeze)
if "comp_x" in results:
field_list.append(results["comp_x"])
if "comp_y" in results:
field_list.append(results["comp_y"])
if "comp_z" in results and self.dimension == 3:
field_list.append(results["comp_z"])
else:
results = self.field.get_rphiz_along(args, is_squeeze=is_squeeze)
if "radial" in results:
field_list.append(results["radial"])
if "axial" in results and self.dimension == 3:
field_list.append(results["axial"])
# if "circ" in results:
# field_dict["1"] = results["circ"]
if "tangential" in results:
field_list.append(results["tangential"])
field = np.array(field_list)
field = np.moveaxis(field, 0, ind_0)
return field