From 872c1439bdf6280e107f60aa171cb57b25de1cca Mon Sep 17 00:00:00 2001 From: Jerome Guterl Date: Wed, 21 Oct 2020 15:07:26 -0700 Subject: [PATCH] branching of master with addition from old newmaster branch. superload and supersave methods to reload an entire set of patches and associated grids. Corresponding workflow is: create a grid with INGRID -> run UEDGE -> identify an issue with a cell -> remake grid only in the patch where it occurs if possible (e.g. poloidal point distribution modification) or in patches of same topological region (e.g. radial point distribution modification) --- .gitignore | 27 ++ .gitignore~ | 1 + INGRID.egg-info/SOURCES.txt | 1 + INGRID/DistribFunc.py | 147 ++++++++ INGRID/geometry.py | 353 +++++++++++++------- INGRID/ingrid.py | 151 +++++++-- INGRID/line_tracing.py | 1 - INGRID/topologies/snl.py | 69 +++- INGRID/topologies/udn.py | 72 +++- INGRID/utils.py | 518 ++++++++++++----------------- build/lib/INGRID/geometry.py | 353 +++++++++++++------- build/lib/INGRID/ingrid.py | 150 +++++++-- build/lib/INGRID/line_tracing.py | 1 - build/lib/INGRID/topologies/snl.py | 69 +++- build/lib/INGRID/topologies/udn.py | 72 +++- build/lib/INGRID/utils.py | 518 ++++++++++++----------------- dist/INGRID-1.0.1-py3.7.egg | Bin 232534 -> 241678 bytes 17 files changed, 1582 insertions(+), 921 deletions(-) create mode 100644 .gitignore create mode 100644 .gitignore~ create mode 100755 INGRID/DistribFunc.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7b54a3d --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST \ No newline at end of file diff --git a/.gitignore~ b/.gitignore~ new file mode 100644 index 0000000..b123bf7 --- /dev/null +++ b/.gitignore~ @@ -0,0 +1 @@ +*.egg \ No newline at end of file diff --git a/INGRID.egg-info/SOURCES.txt b/INGRID.egg-info/SOURCES.txt index 7cbb69f..255dcb5 100644 --- a/INGRID.egg-info/SOURCES.txt +++ b/INGRID.egg-info/SOURCES.txt @@ -1,5 +1,6 @@ README.md setup.py +INGRID/DistribFunc.py INGRID/ImportEqFiles.py INGRID/__init__.py INGRID/geometry.py diff --git a/INGRID/DistribFunc.py b/INGRID/DistribFunc.py new file mode 100755 index 0000000..277e644 --- /dev/null +++ b/INGRID/DistribFunc.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Thu Sep 17 10:04:20 2020 + +@author: jguterl +""" +import types +import numpy as np +def DistribFunc(F:dict or str or types.FunctionType='x,x',**kwargs)->types.FunctionType: + + def get_lambdafunc( func: str) -> types.FunctionType: + """ + Create a function from a string input. + + Will be used to generate a poloidal or radial transformation + function. + + Parameters + ---------- + func : str + An expression to generate a function from. + + Returns + ------- + A function generated from the str input. + + Examples + -------- + When calling method ``get_func`` the user must provide a **string** + with the following general format: + + .. math:: + + x, f(x) + + That is, the dependent variable and expression to evaluate are + separated with a comma character. + + The `Sympy` library supports most expressions that can be generated with + Python natively. See the `Sympy` documentation for advanced features. + + Defining a function representing f(x) = x ^ 2: + + >>> func = 'x, x ** 2' + >>> f = MyTopologyUtils.get_func(func) + >>> f(np.array([0, 1, 2, 3])) + array([0, 1, 4, 9]) + + Defining a function representing f(x) = exp(x) + + >>> func = 'x, exp(x)' + >>> f = MyTopologyUtils.get_func(func) + >>> f(np.array([0, 1, 2, 3])) + array([ 1. , 2.71828183, 7.3890561 , 20.08553692]) + + """ + + def make_sympy_func(var, expression): + import sympy as sp + _f = sp.lambdify(var, expression, 'numpy') + return _f + + f_str_raw = func + + f_str_raw = f_str_raw.replace(' ', '') + delim = f_str_raw.index(',') + + var = f_str_raw[0: delim] + expression = f_str_raw[delim + 1:] + + func = make_sympy_func(var, expression) + # TODO: Check Normalization of the function to 1 + return func + + def CheckLambdaFunction(expression: str, Verbose: bool = False) -> bool: + """ + Check if a str is in the correct format for method ``get_func`` + + Parameters + ---------- + expression : str + Expression to check. + + Verbose : bool, optional + Print full output to terminal. Default to False + + Returns + ------- + True if expression is valid. False otherwise. + """ + ExpValid = False + try: + com = 'lambda {}:{}'.format(expression.split(',')[0], expression.split(',')[1]) + if Verbose: + print(com) + eval(com) + ExpValid = True + except: + ExpValid=False + return ExpValid + + if type(F)==dict: + Func=DistribFunc(**F) + elif type(F)==str: + if F=='exp': + if kwargs.get('alpha') is None: + alpha=1 + else: + alpha=kwargs.get('alpha') + def Func(x): + return (1-np.exp(-(x)/alpha))/(1-np.exp(-1/alpha)) + elif F=='mexp': + if kwargs.get('alpha') is None: + alpha=1 + else: + alpha=kwargs.get('alpha') + def Func(x): + return 1-((1-np.exp(-((1-x)/alpha)))/(1-np.exp(-1/alpha))) + + elif F=='pow': + if kwargs.get('alpha') is None: + alpha=1 + else: + alpha=kwargs.get('alpha') + def Func(x): + return x**alpha + elif F=='mpow': + if kwargs.get('alpha') is None: + alpha=1 + else: + alpha=kwargs.get('alpha') + def Func(x): + return 1-x**alpha + else: + if CheckLambdaFunction(F): + Func=get_lambdafunc(F) + else: + raise ValueError('Unable to parse expression entry "{}".'.format(F)) + Func=None + else: + Func=F + + if not callable(Func): + Func=None + + return Func \ No newline at end of file diff --git a/INGRID/geometry.py b/INGRID/geometry.py index 2fc6e7d..03d112e 100644 --- a/INGRID/geometry.py +++ b/INGRID/geometry.py @@ -504,6 +504,19 @@ def plot_border(self, color: str = 'red', ax: 'matplotlib.axes.Axes' = None) -> [self.vertices['SW'].y, self.vertices['NW'].y], linewidth=1, color=color, label='cell') + def CollectBorder(self): + return np.array([(self.vertices[P].x, self.vertices[P].y) for P in ['NE','NW','SW','SE','NE']]) + + def CollectEdges(self): + Line1=[(self.vertices['NW'].x, self.vertices['NW'].y),(self.vertices['NE'].x, self.vertices['NE'].y)] + Line2=[(self.vertices['NE'].x, self.vertices['NE'].y),(self.vertices['SE'].x, self.vertices['SE'].y)] + Line3=[(self.vertices['SE'].x, self.vertices['SE'].y),(self.vertices['SW'].x, self.vertices['SW'].y)] + Line4=[(self.vertices['SW'].x, self.vertices['SW'].y),(self.vertices['NW'].x, self.vertices['NW'].y)] + return [Line1,Line2,Line3,Line4] + + + + def plot_center(self, color='black', ax: 'matplotlib.axes.Axes' = None) -> None: """ Plot the center of a Cell. @@ -565,8 +578,16 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict self.E = lines[1] self.S = lines[2] self.W = lines[3] + self.E_vertices=[] + self.W_vertices=[] + self.N_vertices=[] + self.S_vertices=[] self.BoundaryPoints = {} - + self.N_spl=None + self.E_spl=None + self.W_spl=None + self.N_spl=None + self.radial_spl=[] # This is the border for the fill function # It need to only include N and S lines self.RemoveDuplicatePoints() @@ -576,7 +597,10 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict self.plate_location = plate_location self.patch_name = patch_name self.color = color + self.alpha=1 self.Verbose = True + self.RadOrientation=1 + self.PolOrientation=1 # TODO: Populate these attributes when generating subgrid. # Currently this is being done in the concat_grid method. @@ -595,10 +619,17 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict 'S': 'SOL', 'C': 'Core' } - - self.ax = None self.cell_grid = None - + def ResetSplines(self): + self.radial_spl=[] + + def GetVertices(self): + return [getattr(self,'{}_vertices'.format(O)) for O in ['N','S','E','W']] + + def SetVertices(self,VerticesList): + for V,O in zip(VerticesList,['N','S','E','W']): + setattr(self,'{}_vertices'.format(O),V) + def plot_border(self, color='red', ax=None): """ Draw solid borders around the patch. @@ -625,7 +656,8 @@ def fill(self, color='lightsalmon', ax=None, alpha=1.0): x = np.array([p.x for p in self.p]) y = np.array([p.y for p in self.p]) arr = np.column_stack((x, y)) - patch = Polygon(arr, fill=True, closed=True, color=color, label=self.get_tag(), alpha=alpha) + PatchLabel = self.patch_name + ' (' + UnfoldLabel(self.PatchLabelDoc, self.patch_name) + ')' + patch = Polygon(arr, fill=True, closed=True, color=color, label=PatchLabel, alpha=alpha) _ax = plt.gca() if ax is None else ax _ax.add_patch(patch) _ax.plot() @@ -636,8 +668,71 @@ def plot_subgrid(self, ax=None, color='blue'): for row in self.cell_grid: for cell in row: cell.plot_border(color=color, ax=ax) - plt.pause(0.1) - + #plt.pause(0.1) + + def PlotSubGrid(self,ax=None,color=None): + if ax is None: + ax = plt.gca() + ListBorder=[] + ListEdges=[] + DataEdges=[] + + for row in self.cell_grid: + for cell in row: + Border=cell.CollectBorder() + + p=matplotlib.patches.Polygon(Border,edgecolor=color,fill=False) + ListBorder.append(p) + Edges=cell.CollectEdges() + ListEdges.extend(Edges) + for E in Edges: + DataEdges.append(GetLength(E)) + + + #Collection border of cell + C=matplotlib.collections.PatchCollection(ListBorder) + C.set_picker(True) + C.set_facecolor('') + if color is None: + C.set_edgecolor(self.color) + else: + C.set_edgecolor(color) + #ax.add_collection(C) + + #Collection edges of cells + CE=matplotlib.collections.LineCollection(ListEdges,array=np.array(range(0,len(ListEdges)))) + CE.set_picker(1) + ax.add_collection(CE) + if color is None: + CE.set_color(self.color) + CE.set_edgecolors(self.color) + CE.set_facecolors(self.color) + else: + CE.set_color(color) + CE.set_edgecolors(color) + CE.set_facecolors(color) + + CE.set_alpha(self.alpha) + + + def onpick(evt): + if evt.artist==CE: + annot.set_visible(False) + annot.xy = (evt.mouseevent.xdata, evt.mouseevent.ydata) + annot.set_text('length={:.2e} m'.format(DataEdges[evt.artist.get_array()[evt.ind[0]]])) + annot.set_visible(True) + if evt.mouseevent.button == 3: + annot.set_visible(False) + ax.figure.canvas.draw_idle() + annot = ax.annotate("", xy=(0,0), xytext=(-20,20),textcoords="offset points", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) + annot.set_visible(False) + ax.figure.canvas.mpl_connect('pick_event', onpick) + + + ax.autoscale_view() + def RemoveDuplicatePoints(self): for line in [self.N, self.E, self.S, self.W]: line.RemoveDuplicatePoints() @@ -711,95 +806,29 @@ def as_np(self): patch_data.append(Z) patch_data = np.array(patch_data) cell_data = self.cell_grid_as_np() + cell_grid = self.cell_grid patch_settings = self.get_settings() - return np.array([patch_data, cell_data, patch_settings]) - - def make_subgrid(self, grid, np_cells=2, nr_cells=2, _poloidal_f=lambda x: x, _radial_f=lambda x: x, verbose=False, visual=False, ShowVertices=False): - """ - Generate a refined grid within a patch. - This 'refined-grid' within a Patch is a collection - of num x num Cell objects - - Parameters - ---------- - grid : Ingrid - To be used for obtaining Efit data and all - other class information. - num : int, optional - Number to be used to generate num x num - cells within our Patch. - """ - - def psi_parameterize(grid, r, z): - """ - Helper function to be used to generate a - list of values to parameterize a spline - in Psi. Returns a list to be used for splprep only - """ - vmax = grid.PsiNorm.get_psi(r[-1], z[-1]) - vmin = grid.PsiNorm.get_psi(r[0], z[0]) - - vparameterization = np.empty(0) - for i in range(len(r)): - vcurr = grid.PsiNorm.get_psi(r[i], z[i]) - vparameterization = np.append(vparameterization, abs((vcurr - vmin) / (vmax - vmin))) - - return vparameterization - - def psi_test(leg, grid): - """ - Determine whether a leg's orientation is increasing in psi - by checking the endpoints of a given leg. - - Returns True if final Point entry is greater in psi than the - first Point entry. Returns False otherwise. - """ - p1 = leg.p[0] - p2 = leg.p[-1] - - return True if grid.PsiNorm.get_psi(p2.x, p2.y) > grid.PsiNorm.get_psi(p1.x, p1.y) else False - - def set_dynamic_step(ratio=0.01): - """ - Compute a dt value for line_tracing that occurs during subgrid generation of - this Patch object. The value is taken to be a ratio of the average length of - a Patch in the radial direction. - """ - d = 0 - for i in range(nr_lines): - d += np.sqrt((self.E_vertices[i].x - self.W_vertices[i].x)**2 + (self.E_vertices[i].y - self.W_vertices[i].y)**2) - dynamic_step = d / nr_lines - # print('Dynamic-Step value came out to be: {}\n'.format(dynamic_step * ratio)) - return dynamic_step * ratio - - # Allocate space for collection of cell objects. - # Arbitrary 2D container for now. - cell_grid = [] - - if verbose: - print('Constructing grid for patch "{}" with dimensions (np, nr) = ({}, {})'.format(self.patch_name, np_cells, nr_cells)) - print(np_cells) - print(nr_cells) - np_lines = np_cells + 1 - nr_lines = nr_cells + 1 - if verbose: print(' # Create B-Splines along the North and South boundaries.') + return np.array([patch_data, cell_data, patch_settings,self.GetVertices(),cell_grid]) + + + def CreateBoundarySplines(self,grid): # Create B-Splines along the North and South boundaries. + if self.Verbose: print(' # Create B-Splines along the North and South boundaries.') N_vals = self.N.fluff() - self.N_spl, uN = splprep([N_vals[0], N_vals[1]], s=0) # Reverse the orientation of the South line to line up with the North. S_vals = self.S.reverse_copy().fluff() self.S_spl, uS = splprep([S_vals[0], S_vals[1]], s=0) - if verbose: print(' # Create B-Splines along West boundaries.') + if self.Verbose: print(' # Create B-Splines along West boundaries.') # Create B-Splines along the East and West boundaries. # Parameterize EW splines in Psi try: #Cannot fluff with too many points n = 500 if len(self.W.p) < 50 else 100 # W_vals = self.W.reverse_copy().fluff(num = n) - W_vals = self.W.reverse_copy().fluff(n, verbose=verbose) - Psi = psi_parameterize(grid, W_vals[0], W_vals[1]) + W_vals = self.W.reverse_copy().fluff(n, verbose=self.Verbose) + Psi = self.psi_parameterize(grid, W_vals[0], W_vals[1]) self.W_spl, uW = splprep([W_vals[0], W_vals[1]], u=Psi, s=10) except Exception as e: exc_type, exc_obj, tb = sys.exc_info() @@ -810,16 +839,17 @@ def set_dynamic_step(ratio=0.01): line = linecache.getline(filename, lineno, f.f_globals) print('EXCEPTION IN ({}, LINE {} "{}"): {}'.format(filename, lineno, line.strip(), exc_obj)) - if verbose: print(' # Create B-Splines along the East boundaries.') + if self.Verbose: print(' # Create B-Splines along the East boundaries.') try: n = 500 if len(self.E.p) < 50 else 100 E_vals = self.E.fluff(num=n) - self.E_spl, uE = splprep([E_vals[0], E_vals[1]], u=psi_parameterize(grid, E_vals[0], E_vals[1]), s=10) + self.E_spl, uE = splprep([E_vals[0], E_vals[1]], u=self.psi_parameterize(grid, E_vals[0], E_vals[1]), s=10) except Exception as e: print(' Number of points on the boundary:', len(self.E.p)) plt.plot(E_vals[0], E_vals[1], '.', color='black') print(repr(e)) - if verbose: print(' #check plate_patch') + if self.Verbose: print(' #check plate_patch') + # ACCURACY ON PSI_MIN SIDE OF W IDL LINE ISSUE. if self.plate_patch: @@ -845,7 +875,7 @@ def find_nearest(array, value): plate_north = [N_vals[0][-1], N_vals[1][-1]] plate_south = [S_vals[0][-1], S_vals[1][-1]] - if verbose: + if self.Verbose: print('=' * 80 + '\n') print('Parameterization of Target Plate in PSI:') print(_u) @@ -860,19 +890,19 @@ def find_nearest(array, value): try: plate_north_index = lookup[find_nearest(_u, fsolve(f, 0, args=(U_spl, plate_north[0], plate_north[1])))] except: - if verbose: print('NorthIndex: ERROR IN PARAMETERIZATION IN PSI') + print('NorthIndex: ERROR IN PARAMETERIZATION IN PSI') try: plate_south_index = lookup[find_nearest(_u, brentq(f, _u[0], _u[-1], args=(U_spl, plate_south[0], plate_south[1])))] except ValueError: try: plate_south_index = lookup[find_nearest(_u, fsolve(f, 0, args=(U_spl, plate_south[0], plate_south[1])))] except: - if verbose: print('SouthIndex: ERROR IN PARAMETERIZATION IN PSI') + print('SouthIndex: ERROR IN PARAMETERIZATION IN PSI') if plate_south_index > plate_north_index: plate_north_index, plate_south_index = plate_south_index, plate_north_index U_vals = [U_vals[0][plate_south_index:plate_north_index + 1], U_vals[1][plate_south_index:plate_north_index + 1]] - U_spl, _u = splprep([U_vals[0], U_vals[1]], u=psi_parameterize(grid, U_vals[0], U_vals[1]), s=0) + U_spl, _u = splprep([U_vals[0], U_vals[1]], u=self.psi_parameterize(grid, U_vals[0], U_vals[1]), s=0) if self.plate_location == 'W': W_vals = U_vals @@ -882,9 +912,86 @@ def find_nearest(array, value): E_vals = U_vals self.E_spl = U_spl uE = _u + + + @staticmethod + def psi_parameterize(grid, r, z): + """ + Helper function to be used to generate a + list of values to parameterize a spline + in Psi. Returns a list to be used for splprep only + """ + vmax = grid.PsiNorm.get_psi(r[-1], z[-1]) + vmin = grid.PsiNorm.get_psi(r[0], z[0]) + + vparameterization = np.empty(0) + for i in range(len(r)): + vcurr = grid.PsiNorm.get_psi(r[i], z[i]) + vparameterization = np.append(vparameterization, abs((vcurr - vmin) / (vmax - vmin))) + + return vparameterization + + def make_subgrid(self, grid, np_cells=2, nr_cells=2, _poloidal_f=lambda x: x, _radial_f=lambda x: x, verbose=False, visual=False, ShowVertices=False): + """ + Generate a refined grid within a patch. + This 'refined-grid' within a Patch is a collection + of num x num Cell objects + + Parameters + ---------- + grid : Ingrid + To be used for obtaining Efit data and all + other class information. + num : int, optional + Number to be used to generate num x num + cells within our Patch. + """ + + + + def psi_test(leg, grid): + """ + Determine whether a leg's orientation is increasing in psi + by checking the endpoints of a given leg. + + Returns True if final Point entry is greater in psi than the + first Point entry. Returns False otherwise. + """ + p1 = leg.p[0] + p2 = leg.p[-1] + + return True if grid.PsiNorm.get_psi(p2.x, p2.y) > grid.PsiNorm.get_psi(p1.x, p1.y) else False + + def set_dynamic_step(ratio=0.01): + """ + Compute a dt value for line_tracing that occurs during subgrid generation of + this Patch object. The value is taken to be a ratio of the average length of + a Patch in the radial direction. + """ + d = 0 + for i in range(nr_lines): + d += np.sqrt((self.E_vertices[i].x - self.W_vertices[i].x)**2 + (self.E_vertices[i].y - self.W_vertices[i].y)**2) + dynamic_step = d / nr_lines + # print('Dynamic-Step value came out to be: {}\n'.format(dynamic_step * ratio)) + return dynamic_step * ratio + + # Allocate space for collection of cell objects. + # Arbitrary 2D container for now. + cell_grid = [] + + if verbose: + print('Constructing grid for patch "{}" with dimensions (np, nr) = ({}, {})'.format(self.patch_name, np_cells, nr_cells)) + print(np_cells) + print(nr_cells) + np_lines = np_cells + 1 + nr_lines = nr_cells + 1 + + #self.CreatBoundarySpleen() # Generate our sub-grid anchor points along the North # and South boundaries of our patch. + self.W_vertices_old=self.W_vertices + self.N_vertices = [] self.S_vertices = [] self.E_vertices = [] @@ -898,7 +1005,7 @@ def find_nearest(array, value): _n = splev(_poloidal_f(i / (np_lines - 1)), self.N_spl) self.N_vertices.append(Point((float(_n[0]), float(_n[1])))) else: - if verbose: print('Find boundary points at face "N" for {}:{}'.format(self.patch_name, self.BoundaryPoints.get('N'))) + if self.Verbose: print('Find boundary points at face "N" for {}:{}'.format(self.patch_name, self.BoundaryPoints.get('N'))) self.N_vertices = self.BoundaryPoints.get('N') if self.BoundaryPoints.get('S') is None: @@ -911,15 +1018,15 @@ def find_nearest(array, value): u = [_radial_f(i / (nr_lines - 1)) for i in range(nr_lines)] Npts = 1000 - xy = splev(np.linspace(0, 1, Npts), self.E_spl) - + #xy = splev(np.linspace(0, 1, Npts), self.E_spl) + if self.BoundaryPoints.get('W') is None: for i in range(nr_lines): _w = splev(u[i], self.W_spl) self.W_vertices.append(Point((float(_w[0]), float(_w[1])))) else: self.W_vertices = self.BoundaryPoints.get('W') - + if self.BoundaryPoints.get('E') is None: for i in range(nr_lines): _e = splev(u[i], self.E_spl) @@ -943,11 +1050,11 @@ def find_nearest(array, value): else: color = self.color - ms = 6 - markers = ['o', 'X', 's', 'D'] + ms = 10 + markers = ['o', 'P', 's', 'D'] for vertices, mark in zip([self.W_vertices, self.E_vertices, self.N_vertices, self.S_vertices], markers): for p in vertices: - plt.plot(p.x, p.y, '.', color=color, markersize=ms, marker=mark, markeredgecolor='black') + plt.plot(p.x, p.y, '.', color=color, markersize=ms, marker=mark, markeredgecolor=color) # Radial lines of Psi surfaces. Ordered with increasing magnitude, starting with # the South boundary of the current Patch, and ending with the North boundary of # this current Patch. These will serve as delimiters when constructing cells. @@ -956,32 +1063,38 @@ def find_nearest(array, value): dynamic_step = set_dynamic_step() if verbose: print('# Interpolate radial lines between North and South patch boundaries..') # Interpolate radial lines between North and South patch boundaries. + if hasattr(self,'radial_spl'): + self.radial_spl_old=self.radial_spl + else: + self.radial_spl_old=[] self.radial_spl = [] temp_vertices = [] temp_vertices.append(self.N.p[-1]) for i in range(len(self.W_vertices) - 2): #TODO: parallelize tracing of radial lines (draw_line function must be "externalized" in the scope of the script) + # if (len(self.W_vertices)!=len(self.W_vertices_old) or self.W_vertices[i+1]!=self.W_vertices_old[i+1]) or len(self.radial_spl_old)!=len(self.W_vertices)-2: + radial_lines.append(grid.LineTracer.draw_line(self.W_vertices[i + 1], {'line': self.E}, option='theta', - direction='cw', show_plot=visual, dynamic_step=dynamic_step, text=verbose)) + direction='cw', show_plot=0, dynamic_step=dynamic_step)) temp_vertices.append(radial_lines[-1].p[-1]) radial_vals = radial_lines[i + 1].fluff(1000) Radial_spl, uR = splprep([radial_vals[0], radial_vals[1]], s=0) self.radial_spl.append(Radial_spl) + # else: + # self.radial_spl.append(self.radial_spl_old[i]) + vertex_list = [] for j in range(np_lines): u = _poloidal_f(j / (np_lines - 1)) _r = splev(u, self.radial_spl[i]) Pt = Point((float(_r[0]), float(_r[1]))) if self.distortion_correction['active'] and j > 0 and j < np_lines - 1: - Res = self.distortion_correction['resolution'] - ThetaMin = self.distortion_correction['theta_min'] - ThetaMax = self.distortion_correction['theta_max'] umin = _poloidal_f((j - 1) / (np_lines - 1)) umax = _poloidal_f((j + 1) / (np_lines - 1)) Pt1 = radial_vertices[i][j] Pt2 = radial_vertices[i][j - 1] Tag = '---- Correcting points: {},{}'.format(i, j) - Pt = CorrectDistortion(u, Pt, Pt1, Pt2, self.radial_spl[i], ThetaMin, ThetaMax, umin, umax, Res, visual, Tag, verbose) + Pt = CorrectDistortion(u, Pt, Pt1, Pt2, self.radial_spl[i],umin,umax,Tag,**self.distortion_correction) vertex_list.append(Pt) if visual: @@ -998,15 +1111,12 @@ def find_nearest(array, value): for j in range(1, np_lines - 1): u = _poloidal_f(j / (np_lines - 1)) Pt = self.S_vertices[j] - Res = self.distortion_correction['resolution'] - ThetaMin = self.distortion_correction['theta_min'] - ThetaMax = self.distortion_correction['theta_max'] umin = _poloidal_f((j - 1) / (np_lines - 1)) umax = _poloidal_f((j + 1) / (np_lines - 1)) Pt1 = radial_vertices[-1][j] Pt2 = radial_vertices[-1][j - 1] Tag = '---- Correcting south boundary points:{}'.format(j) - self.S_vertices[j] = CorrectDistortion(u, Pt, Pt1, Pt2, self.S_spl, ThetaMin, ThetaMax, umin, umax, Res, visual, Tag, verbose) + self.S_vertices[j] = CorrectDistortion(u, Pt, Pt1, Pt2, self.S_spl, umin, umax, Tag,**self.distortion_correction) radial_vertices.append(self.S_vertices) if verbose: print('# Create Cells: South boundary -> North Boundary') # Create Cells: South boundary -> North Boundary @@ -1298,34 +1408,36 @@ def trim_geometry(geoline, start, end): return trim -def CorrectDistortion(u, Pt, Pt1, Pt2, spl, ThetaMin, ThetaMax, umin, umax, Resolution, visual, Tag, MinTol=1.02, MaxTol=0.98, Verbose=False): - MaxIter = Resolution * 10 - dumax = (umax - u) / Resolution - dumin = (u - umin) / Resolution +def CorrectDistortion(u, Pt, Pt1, Pt2, spl, umin, umax , Tag, theta_min=60, theta_max=120,resolution=1000,min_tol=1.05, max_tol=0.95, zero_span=0.90,max_span=1.0,verbose=False,visual=False,**kwargs): + MaxIter = resolution * 10 + dumax = (umax - u) / resolution + dumin = (u - umin) / resolution Theta = Line([Pt1, Pt]).GetAngle(Line([Pt1, Pt2])) - if Verbose: print(f'Current theta value: {Theta}') - if Theta < ThetaMin or Theta > ThetaMax: - if Verbose: print('{}: u={};Theta={};ThetaMin={};ThetaMax={}'.format(Tag, u, Theta, ThetaMin, ThetaMax)) + if verbose: print(f'Current theta value: {Theta}') + if Theta < theta_min or Theta > theta_max: + if verbose: print('{}: u={};Theta={};ThetaMin={};ThetaMax={}'.format(Tag, u, Theta, theta_min, theta_max)) if visual: plt.plot(Pt.x, Pt.y, '.', color='red', markersize=8, marker='o') plt.show() plt.draw() icount = 0 color = 'purple' - while Theta < ThetaMin or Theta > ThetaMax: + u0=u + + while Theta < theta_min or Theta > theta_max: icount += 1 - if Theta < ThetaMin: + if Theta < theta_min: u = u + dumax - elif Theta > ThetaMax: + elif Theta > theta_max: u = u - dumin - if (u > umax * MaxTol or u < umin * MinTol) or icount >= MaxIter: - if Verbose: print('[{}]>>>> umax={} umin={};u:{};Theta={}'.format(icount, umax, umin, u, Theta)) + if (u-u0) > (umax* max_tol-u0)*max_span or (u-u0) < (umin * min_tol-u0)*max_span or icount >= MaxIter or (abs(umin)<1e-12 and u>>> umax={} umin={};u:{};Theta={}'.format(icount, umax, umin, u, Theta)) color = 'gray' break _r = splev(u, spl) Pt = Point((_r[0], _r[1])) Theta = Line([Pt1, Pt]).GetAngle(Line([Pt1, Pt2])) - if Verbose: print('[{}]>>>> u:{};Theta={}'.format(icount, u, Theta)) + if verbose: print('[{}]>>>> u:{};Theta={}'.format(icount, u, Theta)) if visual: plt.plot(Pt.x, Pt.y, '.', color=color, markersize=8, marker='s') return Pt @@ -1490,7 +1602,7 @@ def segment_intersect(line1, line2, verbose=False): def UnfoldLabel(Dic: dict, Name: str) -> str: """ - Unfold Patch label (e.g. "C1" -> "Inner Core Top") + Unfold Patch label (e.g. "ICT" -> "Inner Core Top") Parameters ---------- @@ -1515,3 +1627,6 @@ def UnfoldLabel(Dic: dict, Name: str) -> str: return ''.join(Output) else: return '' + +def GetLength(E): + return np.sqrt((E[1][0]-E[0][0])**2+(E[1][1]-E[1][1])**2) diff --git a/INGRID/ingrid.py b/INGRID/ingrid.py index 7aad095..c13b861 100644 --- a/INGRID/ingrid.py +++ b/INGRID/ingrid.py @@ -17,18 +17,17 @@ pass import matplotlib.pyplot as plt import pathlib -import inspect -from scipy.optimize import root, minimize + import yaml as yml import os from pathlib import Path from time import time -from collections import OrderedDict -from omfit_eqdsk import OMFITgeqdsk + +from INGRID.DistribFunc import * from INGRID.interpol import EfitData -from INGRID.interpol import Bicubic + from INGRID.utils import IngridUtils from INGRID.topologies.snl import SNL from INGRID.topologies.sf15 import SF15 @@ -38,8 +37,10 @@ from INGRID.topologies.sf135 import SF135 from INGRID.topologies.sf165 import SF165 from INGRID.topologies.udn import UDN -from INGRID.line_tracing import LineTracing from INGRID.geometry import Point, Line +import types + + def QuickStart() -> None: @@ -193,6 +194,45 @@ def SaveSettingsFile(self, fname: str = '', settings: dict = {}) -> 'Path': yml.dump(self.settings, f) return fpath + + + def StoreSettings(self, fname: str = '', settings: dict = {}) -> 'Path': + """ + Save a new settings .yml file. + + Parameters + ---------- + fname : optional + Name of new settings '.yml' file. + If default value of '', then Ingrid will generate + a '.yml' file named 'INGRID_Session' appended with + a timestamp. + + settings : optional + Ingrid settings dictionary to dump into + the '.yml' file. Defaults to empty dict which produces a + template settings file. + + Returns + ------- + A Path instance representing the saved YAML file. + """ + + if fname == '': + fname = 'INGRID_Session' + str(int(time())) + '.yml' + + fpath = Path(fname) + + if fpath.suffix == '': + fname += '.yml' + elif fpath.suffix != '.yml': + fname = fname[:-4] + '.yml' + + with open(fname, 'w') as f: + yml.dump(self.settings, f) + + return fpath + def PrintSummaryInput(self) -> None: """ @@ -778,9 +818,8 @@ def PlotTargetPlate(self, plate_key: str, color: str = 'red', ax: object = None) ax = plt.gca() if plate_key in [k for k in self.PlateData.keys()]: - self.RemovePlotLine(label=plate_key, ax=ax) if type(self.PlateData[plate_key]) is Line: - print(f"# Plotting plate '{plate_key}'") + self.RemovePlotLine(label=plate_key, ax=ax) self.PlateData[plate_key].plot(label=plate_key, color=color) else: pass @@ -1050,7 +1089,7 @@ def PlotPatches(self) -> None: if self.settings['grid_settings']['patch_generation']['strike_pt_loc'] == 'target_plates': self.RemovePlotLine(label='limiter', ax=self.PatchAx) - def PlotSubgrid(self) -> None: + def PlotSubgrid(self,NewFig=False,**kwargs) -> None: """ Plot the grid that was generated with method 'CreateSubgrid'. """ @@ -1058,9 +1097,13 @@ def PlotSubgrid(self) -> None: plt.close(self._SubgridFig) except: pass - self._SubgridFig = plt.figure('INGRID: ' + self.CurrentTopology.config + ' Grid', figsize=(6, 10)) - self._SubgridAx = self._SubgridFig.add_subplot(111) - self.CurrentTopology.grid_diagram(fig=self._SubgridFig, ax=self._SubgridAx) + if NewFig: + self._SubgridFig = plt.figure('INGRID: ' + self.CurrentTopology.config + ' Grid', figsize=(6, 10)) + self._SubgridAx = self._SubgridFig.add_subplot(111) + else: + self._SubgridFig = plt.gcf() + self._SubgridAx = plt.gca() + self.CurrentTopology.grid_diagram(fig=self._SubgridFig, ax=self._SubgridAx,**kwargs) def AutoRefineMagAxis(self) -> None: """ @@ -1268,11 +1311,12 @@ def ConstructPatches(self) -> None: self.OrderTargetPlates() self.PrepLineTracing() self.CurrentTopology.construct_patches() - self.CurrentTopology.GroupPatches() + self.CurrentTopology.GroupPatches() self.CheckPatches() - - if self.settings['patch_data']['preferences']['new_file']: - self.SavePatches(self.settings['patch_data']['preferences']['new_fname']) + self.CurrentTopology.SetBoundarySplines() + #not practical in a workflow + #if self.settings['patch_data']['preferences']['new_file']: + # self.SavePatches(self.settings['patch_data']['preferences']['new_fname']) def SavePatches(self, fname: str = '') -> None: """ @@ -1299,6 +1343,35 @@ def SavePatches(self, fname: str = '') -> None: tail = '.npy' print(f"# Saved patch data for file {Path(fname).name + tail}") + + def SuperSavePatches(self, fname: str = '') -> None: + """ + Save patches as '.npy' file for later reconstruction in Ingrid. + + This file contains the information required to reconstruct patches + at a later time and bypass the line_tracing. + + Parameters + ---------- + fname : str, optional + Name of file/location for patch data. + """ + if fname in ['', None]: + fname = self.CurrentTopology.config + '_patches_' + str(int(time())) + self.CurrentTopology.ResetHeavyAttr() + + Data={'patches':self.CurrentTopology.patches, + 'config':self.CurrentTopology.config, + 'xpt_data':self.CurrentTopology.LineTracer.NSEW_lookup + } + np.save(fname, Data) + + if Path(fname).suffix == '.npy': + tail = '' + else: + tail = '.npy' + print(f"# Saved patch data for file {Path(fname).name + tail}") + def LoadPatches(self, fname: str = '') -> None: """ Load patches stored in an Ingrid generated '.npy' file. @@ -1318,7 +1391,7 @@ def LoadPatches(self, fname: str = '') -> None: if fname.strip() == '': # Check if settings contains patch data. fname = self.settings['patch_data']['file'] config, xpt_data, patches = self.ReconstructPatches(fname) - self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) + #self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) self.StartSetup() self.LineTracer.NSEW_lookup = xpt_data self.SetTopology(config) @@ -1326,8 +1399,37 @@ def LoadPatches(self, fname: str = '') -> None: self.CurrentTopology.OrderPatches() self.CurrentTopology.SetupPatchMatrix() self.CheckPatches() + + def SuperLoadPatches(self, fname: str = '') -> None: + """ + Load patches stored in an Ingrid generated '.npy' file. + + Parameters + ---------- + fname : str, optional + Path to patch data. + If no fname is provided to method 'LoadPatches', Ingrid code will check the settings + 'dict' for a file under entry ``settings['patch_data']['file']`` + + """ + + if type(fname) is not str: + raise ValueError('# User did not provide a string to patch data.') + + if fname.strip() == '': # Check if settings contains patch data. + fname = self.settings['patch_data']['file'] + Data=np.load(fname,allow_pickle=True).tolist() + #config, xpt_data, patches = self.ReconstructPatches(fname) + #self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) + self.StartSetup() + self.LineTracer.NSEW_lookup = Data['xpt_data'] + self.SetTopology(Data['config']) + self.CurrentTopology.patches = Data['patches'] + self.CurrentTopology.OrderPatches() + self.CurrentTopology.SetupPatchMatrix() + self.CheckPatches() - def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False) -> None: + def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False,**kwargs) -> None: """ Refine a generated patch map into a grid for exporting. @@ -1350,9 +1452,9 @@ def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False) -> None the particular patch. """ - self.CurrentTopology.construct_grid() + self.CurrentTopology.construct_grid( ShowVertices=ShowVertices,**kwargs) - def ExportGridue(self, fname: str = 'gridue') -> None: + def ExportGridue(self, fname: str = 'gridue',**kwargs) -> None: """ Export a gridue file for the created grid. @@ -1362,12 +1464,9 @@ def ExportGridue(self, fname: str = 'gridue') -> None: Name of gridue file to save. """ - if type(self.CurrentTopology) in [SNL]: - if self.WriteGridueSNL(self.CurrentTopology.gridue_settings, fname): - print(f"# Successfully saved gridue file as '{fname}'") - elif type(self.CurrentTopology) in [SF15, SF45, SF75, SF105, SF135, SF165, UDN]: - if self.WriteGridueDNL(self.CurrentTopology.gridue_settings, fname): - print(f"# Successfully saved gridue file as '{fname}'") + self.CurrentTopology.PrepGridue(**kwargs) + self.CurrentTopology.WriteGridue(fname,**kwargs) + print(f"# Successfully saved gridue file as '{fname}'") @staticmethod def ImportGridue(self, fname: str = 'gridue') -> dict: diff --git a/INGRID/line_tracing.py b/INGRID/line_tracing.py index 79a9b6f..9846e9e 100644 --- a/INGRID/line_tracing.py +++ b/INGRID/line_tracing.py @@ -847,7 +847,6 @@ def fend_Z(y): if Verbose: print('Drew for {} seconds\n'.format(end - start)) - print('') return Line(line) def PsiCostFunc(self, xy): diff --git a/INGRID/topologies/snl.py b/INGRID/topologies/snl.py index 3067e61..27cf268 100644 --- a/INGRID/topologies/snl.py +++ b/INGRID/topologies/snl.py @@ -340,7 +340,7 @@ def OrderPatches(self): patches = ['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'A1', 'F1', 'B1', 'C1', 'D1', 'E1'] self.patches = OrderedDict([(pname, self.patches[pname]) for pname in patches]) - def set_gridue(self): + def set_gridue(self,**kwargs): """ Prepares a ``gridue_settings`` dictionary with required data for writing a gridue file. @@ -394,8 +394,71 @@ def set_gridue(self): b[i][j][k] = _b self.gridue_settings = { - 'nxm': nxm, 'nym': nym, 'ixpt1': ixpt1, 'ixpt2': ixpt2, 'iyseptrx1': iyseparatrix1, + 'nxm': nxm, 'nym': nym, 'ixpt1': ixpt1, 'ixpt2': ixpt2, 'iyseptrx1': iyseparatrix1,'simagxs':self.OMFIT_psi['SIMAG'] ,'sibdrys':self.OMFIT_psi['SIBRY'], 'rm': self.rm, 'zm': self.zm, 'psi': psi, 'br': br, 'bz': bz, 'bpol': bpol, 'bphi': bphi, 'b': b } + + + + def WriteGridue(self, fname: str = 'gridue',NewFormat=False,**kwargs) -> bool: + """ + Write a gridue file for a single-null configuration. + + Parameters + ---------- + gridue_settings : dict + A dictionary containing grid data to be written to the gridue file. + + fname : str, optional + The file name/path to save the gridue file to. + Defaults to 'gridue'. + + Returns + ------- + True if file was written with no errors + """ + + def format_header(gridue): + iheader_items = ['nxm', 'nym', 'ixpt1', 'ixpt2', 'iyseptrx1'] + rheader_items = ['simagxs','sibdrys'] + + Str=''.join(['{}'.format(gridue[item]).rjust(4) for item in iheader_items]) + if NewFormat: + Str=Str+''.join(['{:16.10f}'.format(gridue[item]).rjust(17) for item in rheader_items]) + return Str+ '\n' + + def format_body(data): + + delim_val = 0 + delim_char = '' + body = '' + + for n in range(5): + for j in range(len(data[0])): + for i in range(len(data)): + delim_val += 1 + val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') + if delim_val == 3: + delim_val = 0 + delim_char = '\n' + body += val + delim_char + delim_char = '' + + if delim_val % 3 != 0: + body += '\n' + + return body + + f = open(fname, mode='w') + f.write(format_header(self.gridue_settings) + '\n') + + body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] + for item in body_items: + f.write(format_body(self.gridue_settings[item]) + '\n') + + runidg = 'iogridue' + f.write(runidg + '\n') + + f.close() - return self.gridue_settings + return True diff --git a/INGRID/topologies/udn.py b/INGRID/topologies/udn.py index 6f07beb..cfc2027 100644 --- a/INGRID/topologies/udn.py +++ b/INGRID/topologies/udn.py @@ -618,10 +618,78 @@ def set_gridue(self) -> dict: b[i][j][k] = _b self.gridue_settings = { - 'nxm': nxm, 'nym': nym, 'iyseparatrix1': iyseparatrix1, 'iyseparatrix2': iyseparatrix2, + 'nxm': nxm, 'nym': nym, 'iyseparatrix1': iyseparatrix1, 'iyseparatrix2': iyseparatrix2,'simagxs':self.OMFIT_psi['SIMAG'] ,'sibdrys':self.OMFIT_psi['SIBRY'], 'ix_plate1': ix_plate1, 'ix_cut1': ix_cut1, 'ix_cut2': ix_cut2, 'ix_plate2': ix_plate2, 'iyseparatrix3': iyseparatrix3, 'iyseparatrix4': iyseparatrix4, 'ix_plate3': ix_plate3, 'ix_cut3': ix_cut3, 'ix_cut4': ix_cut4, 'ix_plate4': ix_plate4, 'rm': self.rm, 'zm': self.zm, 'psi': psi, 'br': br, 'bz': bz, 'bpol': bpol, 'bphi': bphi, 'b': b, '_FILLER_': -1 } + + + def WriteGridue(self, gridue_settings: dict, fname: str = 'gridue',**kwargs) -> bool: + """ + Write a gridue file for a double-null configuration. + + Parameters + ---------- + gridue_settings : dict + A dictionary containing grid data to be written to the gridue file. + + fname : str, optional + The file name/path to save the gridue file to. + Defaults to 'gridue'. + + Returns + ------- + True if file was written with no errors + """ - return self.gridue_settings + def format_header(gridue): + header_rows = [ + ['nxm', 'nym'], + ['iyseparatrix1', 'iyseparatrix2'], + ['ix_plate1', 'ix_cut1', '_FILLER_', 'ix_cut2', 'ix_plate2'], + ['iyseparatrix3', 'iyseparatrix4'], + ['ix_plate3', 'ix_cut3', '_FILLER_', 'ix_cut4', 'ix_plate4'] + ] + + header = '' + for header_items in header_rows: + for item in header_items: + header += '{}'.format(gridue[item]).rjust(4) + header += '\n' + return header + + def format_body(data): + + delim_val = 0 + delim_char = '' + body = '' + + for n in range(5): + for j in range(len(data[0])): + for i in range(len(data)): + delim_val += 1 + val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') + if delim_val == 3: + delim_val = 0 + delim_char = '\n' + body += val + delim_char + delim_char = '' + + if delim_val % 3 != 0: + body += '\n' + + return body + + f = open(fname, mode='w') + f.write(format_header(gridue_settings) + '\n') + + body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] + for item in body_items: + f.write(format_body(gridue_settings[item]) + '\n') + + runidg = 'iogridue' + f.write(runidg + '\n') + + f.close() + return True diff --git a/INGRID/utils.py b/INGRID/utils.py index 569119a..91367a7 100644 --- a/INGRID/utils.py +++ b/INGRID/utils.py @@ -15,9 +15,10 @@ except: pass import matplotlib.pyplot as plt -import pathlib import inspect -from scipy.optimize import root, minimize +from scipy.optimize import root + + import yaml as yml import os @@ -28,8 +29,9 @@ from omfit_eqdsk import OMFITgeqdsk from INGRID.interpol import EfitData from INGRID.line_tracing import LineTracing -from INGRID.geometry import Point, Line, Patch, segment_intersect, orientation_between - +from INGRID.DistribFunc import DistribFunc +from INGRID.geometry import Point, Line, Patch, orientation_between +import types class IngridUtils(): """ @@ -1070,137 +1072,9 @@ def ClassifyTopology(self, visual=False) -> None: self.config = self.LineTracer.config - def WriteGridueSNL(self, gridue_settings: dict, fname: str = 'gridue') -> bool: - """ - Write a gridue file for a single-null configuration. - - Parameters - ---------- - gridue_settings : dict - A dictionary containing grid data to be written to the gridue file. - - fname : str, optional - The file name/path to save the gridue file to. - Defaults to 'gridue'. - - Returns - ------- - True if file was written with no errors - """ - - def format_header(gridue): - header_items = ['nxm', 'nym', 'ixpt1', 'ixpt2', 'iyseptrx1'] - header = '' - for item in header_items: - header += '{}'.format(gridue[item]).rjust(4) - - header += '\n' - return header - - def format_body(data): - - delim_val = 0 - delim_char = '' - body = '' - - for n in range(5): - for j in range(len(data[0])): - for i in range(len(data)): - delim_val += 1 - val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') - if delim_val == 3: - delim_val = 0 - delim_char = '\n' - body += val + delim_char - delim_char = '' + - if delim_val % 3 != 0: - body += '\n' - - return body - - f = open(fname, mode='w') - f.write(format_header(gridue_settings) + '\n') - - body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] - for item in body_items: - f.write(format_body(gridue_settings[item]) + '\n') - - runidg = 'iogridue' - f.write(runidg + '\n') - - f.close() - - return True - - def WriteGridueDNL(self, gridue_settings: dict, fname: str = 'gridue') -> bool: - """ - Write a gridue file for a double-null configuration. - - Parameters - ---------- - gridue_settings : dict - A dictionary containing grid data to be written to the gridue file. - - fname : str, optional - The file name/path to save the gridue file to. - Defaults to 'gridue'. - - Returns - ------- - True if file was written with no errors - """ - - def format_header(gridue): - header_rows = [ - ['nxm', 'nym'], - ['iyseparatrix1', 'iyseparatrix2'], - ['ix_plate1', 'ix_cut1', '_FILLER_', 'ix_cut2', 'ix_plate2'], - ['iyseparatrix3', 'iyseparatrix4'], - ['ix_plate3', 'ix_cut3', '_FILLER_', 'ix_cut4', 'ix_plate4'] - ] - - header = '' - for header_items in header_rows: - for item in header_items: - header += '{}'.format(gridue[item]).rjust(4) - header += '\n' - return header - - def format_body(data): - - delim_val = 0 - delim_char = '' - body = '' - - for n in range(5): - for j in range(len(data[0])): - for i in range(len(data)): - delim_val += 1 - val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') - if delim_val == 3: - delim_val = 0 - delim_char = '\n' - body += val + delim_char - delim_char = '' - - if delim_val % 3 != 0: - body += '\n' - - return body - - f = open(fname, mode='w') - f.write(format_header(gridue_settings) + '\n') - - body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] - for item in body_items: - f.write(format_body(gridue_settings[item]) + '\n') - - runidg = 'iogridue' - f.write(runidg + '\n') - - f.close() - return True + def ReconstructPatches(self, fname: str) -> tuple: """ @@ -1227,7 +1101,7 @@ def ReconstructPatches(self, fname: str) -> tuple: patches = {} for raw_patch in data[2:]: - patch_data, cell_data, patch_settings = raw_patch + patch_data, cell_data, patch_settings,Vertices,cell_grid = raw_patch NR = patch_data[0] NZ = patch_data[1] ER = patch_data[2] @@ -1246,7 +1120,8 @@ def ReconstructPatches(self, fname: str) -> tuple: plate_patch=patch_settings['plate_patch'], plate_location=patch_settings['plate_location'], PatchTagMap=patch_settings['PatchTagMap']) - + patch.SetVertices(Vertices) + patch.cell_grid=cell_grid patches[patch.patch_name] = patch patches = OrderedDict([(k, v) for k, v in patches.items()]) @@ -1267,16 +1142,16 @@ def CheckPatches(self, verbose: bool = False) -> None: """ self.CurrentTopology.CheckPatches(verbose=verbose) - def PrepGridue(self, guard_cell_eps=1e-3) -> None: - """ - Prepare the gridue for writing. + # def PrepGridue(self, guard_cell_eps=1e-3) -> None: + # """ + # Prepare the gridue for writing. - This method calls topology specific implementations of methods that - concatenate the Patch object subgrids into a global grid. - """ - self.CurrentTopology.SetupPatchMatrix() - self.CurrentTopology.concat_grid(guard_cell_eps=guard_cell_eps) - self.CurrentTopology.set_gridue() + # This method calls topology specific implementations of methods that + # concatenate the Patch object subgrids into a global grid. + # """ + # self.CurrentTopology.SetupPatchMatrix() + # self.CurrentTopology.concat_grid(guard_cell_eps=guard_cell_eps) + # self.CurrentTopology.set_gridue() @classmethod def _CheckOverlapCells(Grid, Verbose=False): @@ -1359,6 +1234,7 @@ def __init__(self, Ingrid_obj: object, config: str): self.PlateData = Ingrid_obj.PlateData self.PatchTagMap = self.parent.GetPatchTagMap(config=config) self.LineTracer = Ingrid_obj.LineTracer + self.OMFIT_psi = Ingrid_obj.OMFIT_psi self.PsiUNorm = Ingrid_obj.PsiUNorm self.PsiNorm = Ingrid_obj.PsiNorm self.CurrentListPatch = {} @@ -1404,6 +1280,7 @@ def patch_diagram(self, fig: object = None, ax: object = None) -> None: for i, patch in enumerate(self.patches.values()): patch.plot_border(color='black', ax=a) patch.fill(colors[patch.get_tag()[0]], ax=a, alpha=alpha[patch.get_tag()[-1]]) + patch.alpha=alpha[patch.get_tag()[-1]] patch.color = colors[patch.get_tag()[0]] handles, labels = a.get_legend_handles_labels() lookup = {label: handle for label, handle in zip(labels, handles)} @@ -1412,7 +1289,7 @@ def patch_diagram(self, fig: object = None, ax: object = None) -> None: ncol=1) f.show() - def grid_diagram(self, fig: object = None, ax: object = None) -> None: + def grid_diagram(self, fig: object = None, ax: object = None,color=None,**kwargs) -> None: """ Generates the grid diagram for a given configuration. @@ -1441,7 +1318,8 @@ def grid_diagram(self, fig: object = None, ax: object = None) -> None: ax.set_title(f'{self.config} Subgrid') for patch in self.patches.values(): - patch.plot_subgrid(ax=ax) + #patch.plot_subgrid(ax=ax) + patch.PlotSubGrid(ax=ax,color=color) print(f'# Plotting subgrid {patch.patch_name}') fig.show() @@ -1480,96 +1358,37 @@ def get_config(self) -> str: """ return self.config - def get_func(self, func: str) -> 'function': - """ - Create a function from a string input. - - Will be used to generate a poloidal or radial transformation - function. - - Parameters - ---------- - func : str - An expression to generate a function from. - - Returns - ------- - A function generated from the str input. - - Examples - -------- - When calling method ``get_func`` the user must provide a **string** - with the following general format: - - .. math:: - - x, f(x) - - That is, the dependent variable and expression to evaluate are - separated with a comma character. - - The `Sympy` library supports most expressions that can be generated with - Python natively. See the `Sympy` documentation for advanced features. - - Defining a function representing f(x) = x ^ 2: - - >>> func = 'x, x ** 2' - >>> f = MyTopologyUtils.get_func(func) - >>> f(np.array([0, 1, 2, 3])) - array([0, 1, 4, 9]) - - Defining a function representing f(x) = exp(x) - - >>> func = 'x, exp(x)' - >>> f = MyTopologyUtils.get_func(func) - >>> f(np.array([0, 1, 2, 3])) - array([ 1. , 2.71828183, 7.3890561 , 20.08553692]) - - """ - - def make_sympy_func(var, expression): - import sympy as sp - _f = sp.lambdify(var, expression, 'numpy') - return _f - - f_str_raw = func - - f_str_raw = f_str_raw.replace(' ', '') - delim = f_str_raw.index(',') - - var = f_str_raw[0: delim] - expression = f_str_raw[delim + 1:] - - func = make_sympy_func(var, expression) - # TODO: Check Normalization of the function to 1 - return func - - def CheckFunction(self, expression: str, Verbose: bool = False) -> bool: - """ - Check if a str is in the correct format for method ``get_func`` - - Parameters - ---------- - expression : str - Expression to check. - - Verbose : bool, optional - Print full output to terminal. Default to False - - Returns - ------- - True if expression is valid. False otherwise. - """ - ExpValid = False - try: - com = 'lambda {}:{}'.format(expression.split(',')[0], expression.split(',')[1]) - if Verbose: - print(com) - eval(com) - ExpValid = True - except: - raise ValueError('Unable to parse expression entry "{}".'.format(expression)) - return ExpValid + + def SetPatchesOrientation(self): + + + # set radial orientation negative if patch is in PFR + for name, patch in self.patches.items(): + if patch.plate_patch and self.GetPatchLetterNumber(patch.get_tag())[1]=='1': + patch.RadOrientation=-1 + else: + patch.RadOrientation=1 + + #set poloidal orientation negative if patches in high field side region (must be checked for other config) + Letters=list(dict.fromkeys([L for L,N in self.GetPatchLetterNumber(self.GetListAllPatches())])) + Nhalf=int(len(Letters)/2) + ListLFS=Letters[0:Nhalf] + for name, patch in self.patches.items(): + if self.GetPatchLetterNumber(patch.get_tag())[0] in ListLFS: + patch.PolOrientation=-1 + else: + patch.PolOrientation=1 + + + + + + + + + def ResetHeavyAttr(self): + for p in self.patches.values(): + p.ResetSplines() def GetFunctions(self, Patch: Patch, Verbose: bool = False) -> tuple: """ @@ -1592,49 +1411,43 @@ def GetFunctions(self, Patch: Patch, Verbose: bool = False) -> tuple: ------- 2-tuple containing functions for radial and poloidal direction respectively. """ - + poloidal_tag, radial_tag = Patch.get_tag() p_f = 'poloidal_f_' + poloidal_tag r_f = 'radial_f_' + radial_tag - - try: - _poloidal_f = self.settings['grid_settings']['grid_generation'][p_f] - valid_function = self.CheckFunction(_poloidal_f, Verbose) - if valid_function: - _poloidal_f = self.get_func(_poloidal_f) - else: - raise ValueError('# Invalid function entry. Applying default poloidal function.') - except: - _poloidal_f = self.settings['grid_settings']['grid_generation']['poloidal_f_default'] - valid_function = self.CheckFunction(_poloidal_f, Verbose) - if valid_function: - _poloidal_f = self.get_func(_poloidal_f) - else: - _poloidal_f = lambda x: x - - try: - - # Adding CORE radial_f support for SNL cases via entry 'radial_f_3' - if self.config in ['USN', 'LSN'] \ - and self.settings['grid_settings']['grid_generation'].get('radial_f_3') is not None \ - and poloidal_tag + radial_tag in ['B1', 'C1', 'D1', 'E1']: - _radial_f = self.settings['grid_settings']['grid_generation']['radial_f_3'] - else: - _radial_f = self.settings['grid_settings']['grid_generation'][r_f] - valid_function = self.CheckFunction(_radial_f, Verbose) - if valid_function: - _radial_f = self.get_func(_radial_f) - else: - raise ValueError('# Invalid function entry. Applying default radial function.') - except: - _radial_f = self.settings['grid_settings']['grid_generation']['radial_f_default'] - valid_function = self.CheckFunction(_radial_f, Verbose) - if valid_function: - _radial_f = self.get_func(_radial_f) - else: - _radial_f = lambda x: x - - return (_radial_f, _poloidal_f) + + _poloidal_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get(p_f)) + if _poloidal_f is None: + _poloidal_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('poloidal_f_default')) + if _poloidal_f is None: + _poloidal_f = DistribFunc('x:x') + + + (L,N)=self.GetPatchLetterNumber(Patch.get_tag()) + # Adding CORE radial_f support for SNL cases via entry 'radial_f_3' + if self.config in ['USN', 'LSN'] and N=='1' and Patch.plate_patch: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('radial_f_3')) + else: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get(r_f)) + if _radial_f is None: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('radial_f_default')) + if _radial_f is None: + _radial_f = lambda x: x + + if hasattr(Patch,'RadOrientation') and Patch.RadOrientation==-1: + _radial_f_=lambda x:1-_radial_f(1-x) + else: + _radial_f_=_radial_f + if hasattr(Patch,'PolOrientation') and Patch.PolOrientation==-1: + _poloidal_f_=lambda x:1-_poloidal_f(1-x) + else: + _poloidal_f_=_poloidal_f + + + + return (_radial_f_, _poloidal_f_) + + def GetNpoints(self, Patch: Patch) -> tuple: """ @@ -1680,15 +1493,32 @@ def GetDistortionCorrectionSettings(self) -> dict: A dictionary containing ``CorrectDistortion`` settings. """ if self.settings['grid_settings']['grid_generation'].get('distortion_correction') is not None: - CD = self.settings['grid_settings']['grid_generation']['distortion_correction'] + self.distortion_correction = self.settings['grid_settings']['grid_generation']['distortion_correction'] else: - CD = {} - - self.distortion_correction = CD - return CD - + self.distortion_correction = {} + + if hasattr(self,'patches'): + for name, patch in self.patches.items(): + (L,N)=self.GetPatchLetterNumber(patch.get_tag()) + if self.distortion_correction.get(name) is not None: + patch.distortion_correction = self.distortion_correction.get(name) + elif self.distortion_correction.get(patch.get_tag()) is not None: + patch.distortion_correction = self.distortion_correction.get(patch.get_tag()) + elif self.distortion_correction.get(N) is not None: + patch.distortion_correction = self.distortion_correction.get(N) + elif self.distortion_correction.get(L) is not None: + patch.distortion_correction = self.distortion_correction.get(L) + elif self.distortion_correction.get('all') is not None: + patch.distortion_correction = self.distortion_correction.get('all') + else: + patch.distortion_correction = {'active': False} + + + def GetListAllPatches(self): + return [v.get_tag() for k,v in self.patches.items()] + def construct_grid(self, np_cells: int = 1, nr_cells: int = 1, Verbose: bool = False, - ShowVertices: bool = False, RestartScratch: bool = False, ListPatches: str = 'all') -> None: + ShowVertices: bool = False, RestartScratch: bool = False, ListPatches: str = 'all',Visual=True) -> None: """ Construct a grid by refining a Patch map. @@ -1756,45 +1586,100 @@ def construct_grid(self, np_cells: int = 1, nr_cells: int = 1, Verbose: bool = F visual = self.settings['DEBUG']['visual']['subgrid'] except: visual = False + if Visual: + visual=True try: verbose = self.settings['DEBUG']['verbose']['grid_generation'] except: verbose = False - verbose = Verbose or verbose - + if Verbose: + verbose=True + ListAllPatches=self.GetListAllPatches() + print('>>> Existing Patches :',ListAllPatches) + ListPatches=self.ProcessListPatches(ListPatches) + print('>>> Generating grids for patches:',ListPatches) + self.SetPatchesOrientation() self.GetDistortionCorrectionSettings() - - print('>>> Patches:', [k for k in self.patches.keys()]) + + if RestartScratch: self.CurrentListPatch = {} for name, patch in self.patches.items(): - - if self.distortion_correction.get(name) is not None: - patch.distortion_correction = self.distortion_correction.get(name) - elif self.distortion_correction.get(patch.get_tag()) is not None: - patch.distortion_correction = self.distortion_correction.get(patch.get_tag()) - elif self.distortion_correction.get('all') is not None: - patch.distortion_correction = self.distortion_correction.get('all') - else: - patch.distortion_correction = {'Active': False} - if (ListPatches == 'all' and patch not in self.CurrentListPatch) or (ListPatches != 'all' and name in ListPatches): - self.SetPatchBoundaryPoints(patch, verbose) + self.SetPatchBoundaryPoints(patch) + + for name, patch in self.patches.items(): + if (ListPatches == 'all' and patch not in self.CurrentListPatch) or (ListPatches != 'all' and patch.get_tag() in ListPatches): + self.SetPatchBoundaryPoints(patch) (nr_cells, np_cells) = self.GetNpoints(patch) (_radial_f, _poloidal_f) = self.GetFunctions(patch) - print(f'>>> Making subgrid in patch {name}:') - print(f' np = {np_cells}, nr = {nr_cells}') - print(f' fp = {inspect.getsource(_poloidal_f)}') - print(f' fr = {inspect.getsource(_radial_f)}', end='') + print('>>> Making subgrid in patch:{} with np={},nr={},fp={},fr={}'.format(patch.get_tag(), np_cells, nr_cells, inspect.getsource(_poloidal_f), inspect.getsource(_radial_f))) patch.RemoveDuplicatePoints() patch.make_subgrid(self, np_cells, nr_cells, _poloidal_f=_poloidal_f, _radial_f=_radial_f, verbose=verbose, visual=visual, ShowVertices=ShowVertices) + self.CurrentListPatch[name] = patch - print(f' {name} subgrid complete.\n\n') + self.AdjustGrid() - - def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: + + @staticmethod + def GetPatchLetterNumber(PatchName:str or str)->tuple: + + if type(PatchName)==str: + if len(PatchName)<1 or len(PatchName)>2: + raise IOError('PatchName must be a string of one or two characters') + L='' + N=None + + for C in PatchName: + if C.isnumeric(): + N=C + elif C.isalpha(): + L=C + else: + raise IOError('PatchName must be a string of one or two characters with one letter max and one digit max') + return (L,N) + + elif type(PatchName)==list: + Out=[] + for P in PatchName: + Out.append(TopologyUtils.GetPatchLetterNumber(P)) + return Out + else: + raise ValueError('PatchName must be a list of a str') + + def ProcessListPatches(self,ListPatches:list or str): + if type(ListPatches)==str: + ListPatches=[ListPatches] + OrderedList=self.GetListAllPatches() + + Numbers=list(dict.fromkeys([N for L,N in self.GetPatchLetterNumber(OrderedList) if N is not None])) + Letters=list(dict.fromkeys([L for L,N in self.GetPatchLetterNumber(OrderedList) if L!=''])) + if self.Verbose: + print('Numbers:',Numbers) + print('Letters:',Letters) + if 'all' in ListPatches: + return OrderedList + else: + + OutList=ListPatches.copy() + for P in ListPatches: + (L,N)=self.GetPatchLetterNumber(P) + if L=='' and N is None: + raise ValueError('Incorrect patch name pattern:{}'.format(P)) + elif N is None: + OutList.remove(P) + OutList.extend([L+Num for Num in Numbers]) + elif L=='': + OutList.remove(P) + OutList.extend([Let+N for Let in Letters]) + # now let order them + OutList=[P for P in OrderedList if P in list(dict.fromkeys(OutList))] + return OutList + + + def SetPatchBoundaryPoints(self, Patch: Patch) -> None: """ Set the Patch ``BoundaryPoints`` dict based off TopologyUtils ``ConnexionMap``. @@ -1802,8 +1687,6 @@ def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: ---------- Patch : Patch The Patch to set the boundary points for. - verbose: bool - Print full output to terminal. Notes ----- @@ -1812,12 +1695,12 @@ def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: """ Patch.TerminatesLoop = False if self.ConnexionMap.get(Patch.get_tag()) is not None: - if verbose: + if self.Verbose: print('Find connexion map for patch {}'.format(Patch.patch_name)) for v in self.ConnexionMap.get(Patch.get_tag()).items(): Boundary, AdjacentPatch = v Patch.BoundaryPoints[Boundary] = self.GetBoundaryPoints(AdjacentPatch) - if verbose: + if self.Verbose: print('Find Boundaries points for {}'.format(Patch.patch_name)) if self.ConnexionMap.get(Patch.get_tag()).get('E') is not None: Patch.TerminatesLoop = True @@ -2189,3 +2072,18 @@ def set_guard(cell_map, ix, iy, eps, boundary): if debug: self._animate_grid() + + def SetBoundarySplines(self): + for n,p in self.patches.items(): + p.CreateBoundarySplines(self) + + def PrepGridue(self, guard_cell_eps=1e-3,**kwargs) -> None: + """ + Prepare the gridue for writing. + + This method calls topology specific implementations of methods that + concatenate the Patch object subgrids into a global grid. + """ + self.SetupPatchMatrix() + self.concat_grid(guard_cell_eps=guard_cell_eps) + self.set_gridue() diff --git a/build/lib/INGRID/geometry.py b/build/lib/INGRID/geometry.py index 2fc6e7d..03d112e 100644 --- a/build/lib/INGRID/geometry.py +++ b/build/lib/INGRID/geometry.py @@ -504,6 +504,19 @@ def plot_border(self, color: str = 'red', ax: 'matplotlib.axes.Axes' = None) -> [self.vertices['SW'].y, self.vertices['NW'].y], linewidth=1, color=color, label='cell') + def CollectBorder(self): + return np.array([(self.vertices[P].x, self.vertices[P].y) for P in ['NE','NW','SW','SE','NE']]) + + def CollectEdges(self): + Line1=[(self.vertices['NW'].x, self.vertices['NW'].y),(self.vertices['NE'].x, self.vertices['NE'].y)] + Line2=[(self.vertices['NE'].x, self.vertices['NE'].y),(self.vertices['SE'].x, self.vertices['SE'].y)] + Line3=[(self.vertices['SE'].x, self.vertices['SE'].y),(self.vertices['SW'].x, self.vertices['SW'].y)] + Line4=[(self.vertices['SW'].x, self.vertices['SW'].y),(self.vertices['NW'].x, self.vertices['NW'].y)] + return [Line1,Line2,Line3,Line4] + + + + def plot_center(self, color='black', ax: 'matplotlib.axes.Axes' = None) -> None: """ Plot the center of a Cell. @@ -565,8 +578,16 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict self.E = lines[1] self.S = lines[2] self.W = lines[3] + self.E_vertices=[] + self.W_vertices=[] + self.N_vertices=[] + self.S_vertices=[] self.BoundaryPoints = {} - + self.N_spl=None + self.E_spl=None + self.W_spl=None + self.N_spl=None + self.radial_spl=[] # This is the border for the fill function # It need to only include N and S lines self.RemoveDuplicatePoints() @@ -576,7 +597,10 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict self.plate_location = plate_location self.patch_name = patch_name self.color = color + self.alpha=1 self.Verbose = True + self.RadOrientation=1 + self.PolOrientation=1 # TODO: Populate these attributes when generating subgrid. # Currently this is being done in the concat_grid method. @@ -595,10 +619,17 @@ def __init__(self, lines: 'array-like', patch_name: str = '', PatchTagMap: dict 'S': 'SOL', 'C': 'Core' } - - self.ax = None self.cell_grid = None - + def ResetSplines(self): + self.radial_spl=[] + + def GetVertices(self): + return [getattr(self,'{}_vertices'.format(O)) for O in ['N','S','E','W']] + + def SetVertices(self,VerticesList): + for V,O in zip(VerticesList,['N','S','E','W']): + setattr(self,'{}_vertices'.format(O),V) + def plot_border(self, color='red', ax=None): """ Draw solid borders around the patch. @@ -625,7 +656,8 @@ def fill(self, color='lightsalmon', ax=None, alpha=1.0): x = np.array([p.x for p in self.p]) y = np.array([p.y for p in self.p]) arr = np.column_stack((x, y)) - patch = Polygon(arr, fill=True, closed=True, color=color, label=self.get_tag(), alpha=alpha) + PatchLabel = self.patch_name + ' (' + UnfoldLabel(self.PatchLabelDoc, self.patch_name) + ')' + patch = Polygon(arr, fill=True, closed=True, color=color, label=PatchLabel, alpha=alpha) _ax = plt.gca() if ax is None else ax _ax.add_patch(patch) _ax.plot() @@ -636,8 +668,71 @@ def plot_subgrid(self, ax=None, color='blue'): for row in self.cell_grid: for cell in row: cell.plot_border(color=color, ax=ax) - plt.pause(0.1) - + #plt.pause(0.1) + + def PlotSubGrid(self,ax=None,color=None): + if ax is None: + ax = plt.gca() + ListBorder=[] + ListEdges=[] + DataEdges=[] + + for row in self.cell_grid: + for cell in row: + Border=cell.CollectBorder() + + p=matplotlib.patches.Polygon(Border,edgecolor=color,fill=False) + ListBorder.append(p) + Edges=cell.CollectEdges() + ListEdges.extend(Edges) + for E in Edges: + DataEdges.append(GetLength(E)) + + + #Collection border of cell + C=matplotlib.collections.PatchCollection(ListBorder) + C.set_picker(True) + C.set_facecolor('') + if color is None: + C.set_edgecolor(self.color) + else: + C.set_edgecolor(color) + #ax.add_collection(C) + + #Collection edges of cells + CE=matplotlib.collections.LineCollection(ListEdges,array=np.array(range(0,len(ListEdges)))) + CE.set_picker(1) + ax.add_collection(CE) + if color is None: + CE.set_color(self.color) + CE.set_edgecolors(self.color) + CE.set_facecolors(self.color) + else: + CE.set_color(color) + CE.set_edgecolors(color) + CE.set_facecolors(color) + + CE.set_alpha(self.alpha) + + + def onpick(evt): + if evt.artist==CE: + annot.set_visible(False) + annot.xy = (evt.mouseevent.xdata, evt.mouseevent.ydata) + annot.set_text('length={:.2e} m'.format(DataEdges[evt.artist.get_array()[evt.ind[0]]])) + annot.set_visible(True) + if evt.mouseevent.button == 3: + annot.set_visible(False) + ax.figure.canvas.draw_idle() + annot = ax.annotate("", xy=(0,0), xytext=(-20,20),textcoords="offset points", + bbox=dict(boxstyle="round", fc="w"), + arrowprops=dict(arrowstyle="->")) + annot.set_visible(False) + ax.figure.canvas.mpl_connect('pick_event', onpick) + + + ax.autoscale_view() + def RemoveDuplicatePoints(self): for line in [self.N, self.E, self.S, self.W]: line.RemoveDuplicatePoints() @@ -711,95 +806,29 @@ def as_np(self): patch_data.append(Z) patch_data = np.array(patch_data) cell_data = self.cell_grid_as_np() + cell_grid = self.cell_grid patch_settings = self.get_settings() - return np.array([patch_data, cell_data, patch_settings]) - - def make_subgrid(self, grid, np_cells=2, nr_cells=2, _poloidal_f=lambda x: x, _radial_f=lambda x: x, verbose=False, visual=False, ShowVertices=False): - """ - Generate a refined grid within a patch. - This 'refined-grid' within a Patch is a collection - of num x num Cell objects - - Parameters - ---------- - grid : Ingrid - To be used for obtaining Efit data and all - other class information. - num : int, optional - Number to be used to generate num x num - cells within our Patch. - """ - - def psi_parameterize(grid, r, z): - """ - Helper function to be used to generate a - list of values to parameterize a spline - in Psi. Returns a list to be used for splprep only - """ - vmax = grid.PsiNorm.get_psi(r[-1], z[-1]) - vmin = grid.PsiNorm.get_psi(r[0], z[0]) - - vparameterization = np.empty(0) - for i in range(len(r)): - vcurr = grid.PsiNorm.get_psi(r[i], z[i]) - vparameterization = np.append(vparameterization, abs((vcurr - vmin) / (vmax - vmin))) - - return vparameterization - - def psi_test(leg, grid): - """ - Determine whether a leg's orientation is increasing in psi - by checking the endpoints of a given leg. - - Returns True if final Point entry is greater in psi than the - first Point entry. Returns False otherwise. - """ - p1 = leg.p[0] - p2 = leg.p[-1] - - return True if grid.PsiNorm.get_psi(p2.x, p2.y) > grid.PsiNorm.get_psi(p1.x, p1.y) else False - - def set_dynamic_step(ratio=0.01): - """ - Compute a dt value for line_tracing that occurs during subgrid generation of - this Patch object. The value is taken to be a ratio of the average length of - a Patch in the radial direction. - """ - d = 0 - for i in range(nr_lines): - d += np.sqrt((self.E_vertices[i].x - self.W_vertices[i].x)**2 + (self.E_vertices[i].y - self.W_vertices[i].y)**2) - dynamic_step = d / nr_lines - # print('Dynamic-Step value came out to be: {}\n'.format(dynamic_step * ratio)) - return dynamic_step * ratio - - # Allocate space for collection of cell objects. - # Arbitrary 2D container for now. - cell_grid = [] - - if verbose: - print('Constructing grid for patch "{}" with dimensions (np, nr) = ({}, {})'.format(self.patch_name, np_cells, nr_cells)) - print(np_cells) - print(nr_cells) - np_lines = np_cells + 1 - nr_lines = nr_cells + 1 - if verbose: print(' # Create B-Splines along the North and South boundaries.') + return np.array([patch_data, cell_data, patch_settings,self.GetVertices(),cell_grid]) + + + def CreateBoundarySplines(self,grid): # Create B-Splines along the North and South boundaries. + if self.Verbose: print(' # Create B-Splines along the North and South boundaries.') N_vals = self.N.fluff() - self.N_spl, uN = splprep([N_vals[0], N_vals[1]], s=0) # Reverse the orientation of the South line to line up with the North. S_vals = self.S.reverse_copy().fluff() self.S_spl, uS = splprep([S_vals[0], S_vals[1]], s=0) - if verbose: print(' # Create B-Splines along West boundaries.') + if self.Verbose: print(' # Create B-Splines along West boundaries.') # Create B-Splines along the East and West boundaries. # Parameterize EW splines in Psi try: #Cannot fluff with too many points n = 500 if len(self.W.p) < 50 else 100 # W_vals = self.W.reverse_copy().fluff(num = n) - W_vals = self.W.reverse_copy().fluff(n, verbose=verbose) - Psi = psi_parameterize(grid, W_vals[0], W_vals[1]) + W_vals = self.W.reverse_copy().fluff(n, verbose=self.Verbose) + Psi = self.psi_parameterize(grid, W_vals[0], W_vals[1]) self.W_spl, uW = splprep([W_vals[0], W_vals[1]], u=Psi, s=10) except Exception as e: exc_type, exc_obj, tb = sys.exc_info() @@ -810,16 +839,17 @@ def set_dynamic_step(ratio=0.01): line = linecache.getline(filename, lineno, f.f_globals) print('EXCEPTION IN ({}, LINE {} "{}"): {}'.format(filename, lineno, line.strip(), exc_obj)) - if verbose: print(' # Create B-Splines along the East boundaries.') + if self.Verbose: print(' # Create B-Splines along the East boundaries.') try: n = 500 if len(self.E.p) < 50 else 100 E_vals = self.E.fluff(num=n) - self.E_spl, uE = splprep([E_vals[0], E_vals[1]], u=psi_parameterize(grid, E_vals[0], E_vals[1]), s=10) + self.E_spl, uE = splprep([E_vals[0], E_vals[1]], u=self.psi_parameterize(grid, E_vals[0], E_vals[1]), s=10) except Exception as e: print(' Number of points on the boundary:', len(self.E.p)) plt.plot(E_vals[0], E_vals[1], '.', color='black') print(repr(e)) - if verbose: print(' #check plate_patch') + if self.Verbose: print(' #check plate_patch') + # ACCURACY ON PSI_MIN SIDE OF W IDL LINE ISSUE. if self.plate_patch: @@ -845,7 +875,7 @@ def find_nearest(array, value): plate_north = [N_vals[0][-1], N_vals[1][-1]] plate_south = [S_vals[0][-1], S_vals[1][-1]] - if verbose: + if self.Verbose: print('=' * 80 + '\n') print('Parameterization of Target Plate in PSI:') print(_u) @@ -860,19 +890,19 @@ def find_nearest(array, value): try: plate_north_index = lookup[find_nearest(_u, fsolve(f, 0, args=(U_spl, plate_north[0], plate_north[1])))] except: - if verbose: print('NorthIndex: ERROR IN PARAMETERIZATION IN PSI') + print('NorthIndex: ERROR IN PARAMETERIZATION IN PSI') try: plate_south_index = lookup[find_nearest(_u, brentq(f, _u[0], _u[-1], args=(U_spl, plate_south[0], plate_south[1])))] except ValueError: try: plate_south_index = lookup[find_nearest(_u, fsolve(f, 0, args=(U_spl, plate_south[0], plate_south[1])))] except: - if verbose: print('SouthIndex: ERROR IN PARAMETERIZATION IN PSI') + print('SouthIndex: ERROR IN PARAMETERIZATION IN PSI') if plate_south_index > plate_north_index: plate_north_index, plate_south_index = plate_south_index, plate_north_index U_vals = [U_vals[0][plate_south_index:plate_north_index + 1], U_vals[1][plate_south_index:plate_north_index + 1]] - U_spl, _u = splprep([U_vals[0], U_vals[1]], u=psi_parameterize(grid, U_vals[0], U_vals[1]), s=0) + U_spl, _u = splprep([U_vals[0], U_vals[1]], u=self.psi_parameterize(grid, U_vals[0], U_vals[1]), s=0) if self.plate_location == 'W': W_vals = U_vals @@ -882,9 +912,86 @@ def find_nearest(array, value): E_vals = U_vals self.E_spl = U_spl uE = _u + + + @staticmethod + def psi_parameterize(grid, r, z): + """ + Helper function to be used to generate a + list of values to parameterize a spline + in Psi. Returns a list to be used for splprep only + """ + vmax = grid.PsiNorm.get_psi(r[-1], z[-1]) + vmin = grid.PsiNorm.get_psi(r[0], z[0]) + + vparameterization = np.empty(0) + for i in range(len(r)): + vcurr = grid.PsiNorm.get_psi(r[i], z[i]) + vparameterization = np.append(vparameterization, abs((vcurr - vmin) / (vmax - vmin))) + + return vparameterization + + def make_subgrid(self, grid, np_cells=2, nr_cells=2, _poloidal_f=lambda x: x, _radial_f=lambda x: x, verbose=False, visual=False, ShowVertices=False): + """ + Generate a refined grid within a patch. + This 'refined-grid' within a Patch is a collection + of num x num Cell objects + + Parameters + ---------- + grid : Ingrid + To be used for obtaining Efit data and all + other class information. + num : int, optional + Number to be used to generate num x num + cells within our Patch. + """ + + + + def psi_test(leg, grid): + """ + Determine whether a leg's orientation is increasing in psi + by checking the endpoints of a given leg. + + Returns True if final Point entry is greater in psi than the + first Point entry. Returns False otherwise. + """ + p1 = leg.p[0] + p2 = leg.p[-1] + + return True if grid.PsiNorm.get_psi(p2.x, p2.y) > grid.PsiNorm.get_psi(p1.x, p1.y) else False + + def set_dynamic_step(ratio=0.01): + """ + Compute a dt value for line_tracing that occurs during subgrid generation of + this Patch object. The value is taken to be a ratio of the average length of + a Patch in the radial direction. + """ + d = 0 + for i in range(nr_lines): + d += np.sqrt((self.E_vertices[i].x - self.W_vertices[i].x)**2 + (self.E_vertices[i].y - self.W_vertices[i].y)**2) + dynamic_step = d / nr_lines + # print('Dynamic-Step value came out to be: {}\n'.format(dynamic_step * ratio)) + return dynamic_step * ratio + + # Allocate space for collection of cell objects. + # Arbitrary 2D container for now. + cell_grid = [] + + if verbose: + print('Constructing grid for patch "{}" with dimensions (np, nr) = ({}, {})'.format(self.patch_name, np_cells, nr_cells)) + print(np_cells) + print(nr_cells) + np_lines = np_cells + 1 + nr_lines = nr_cells + 1 + + #self.CreatBoundarySpleen() # Generate our sub-grid anchor points along the North # and South boundaries of our patch. + self.W_vertices_old=self.W_vertices + self.N_vertices = [] self.S_vertices = [] self.E_vertices = [] @@ -898,7 +1005,7 @@ def find_nearest(array, value): _n = splev(_poloidal_f(i / (np_lines - 1)), self.N_spl) self.N_vertices.append(Point((float(_n[0]), float(_n[1])))) else: - if verbose: print('Find boundary points at face "N" for {}:{}'.format(self.patch_name, self.BoundaryPoints.get('N'))) + if self.Verbose: print('Find boundary points at face "N" for {}:{}'.format(self.patch_name, self.BoundaryPoints.get('N'))) self.N_vertices = self.BoundaryPoints.get('N') if self.BoundaryPoints.get('S') is None: @@ -911,15 +1018,15 @@ def find_nearest(array, value): u = [_radial_f(i / (nr_lines - 1)) for i in range(nr_lines)] Npts = 1000 - xy = splev(np.linspace(0, 1, Npts), self.E_spl) - + #xy = splev(np.linspace(0, 1, Npts), self.E_spl) + if self.BoundaryPoints.get('W') is None: for i in range(nr_lines): _w = splev(u[i], self.W_spl) self.W_vertices.append(Point((float(_w[0]), float(_w[1])))) else: self.W_vertices = self.BoundaryPoints.get('W') - + if self.BoundaryPoints.get('E') is None: for i in range(nr_lines): _e = splev(u[i], self.E_spl) @@ -943,11 +1050,11 @@ def find_nearest(array, value): else: color = self.color - ms = 6 - markers = ['o', 'X', 's', 'D'] + ms = 10 + markers = ['o', 'P', 's', 'D'] for vertices, mark in zip([self.W_vertices, self.E_vertices, self.N_vertices, self.S_vertices], markers): for p in vertices: - plt.plot(p.x, p.y, '.', color=color, markersize=ms, marker=mark, markeredgecolor='black') + plt.plot(p.x, p.y, '.', color=color, markersize=ms, marker=mark, markeredgecolor=color) # Radial lines of Psi surfaces. Ordered with increasing magnitude, starting with # the South boundary of the current Patch, and ending with the North boundary of # this current Patch. These will serve as delimiters when constructing cells. @@ -956,32 +1063,38 @@ def find_nearest(array, value): dynamic_step = set_dynamic_step() if verbose: print('# Interpolate radial lines between North and South patch boundaries..') # Interpolate radial lines between North and South patch boundaries. + if hasattr(self,'radial_spl'): + self.radial_spl_old=self.radial_spl + else: + self.radial_spl_old=[] self.radial_spl = [] temp_vertices = [] temp_vertices.append(self.N.p[-1]) for i in range(len(self.W_vertices) - 2): #TODO: parallelize tracing of radial lines (draw_line function must be "externalized" in the scope of the script) + # if (len(self.W_vertices)!=len(self.W_vertices_old) or self.W_vertices[i+1]!=self.W_vertices_old[i+1]) or len(self.radial_spl_old)!=len(self.W_vertices)-2: + radial_lines.append(grid.LineTracer.draw_line(self.W_vertices[i + 1], {'line': self.E}, option='theta', - direction='cw', show_plot=visual, dynamic_step=dynamic_step, text=verbose)) + direction='cw', show_plot=0, dynamic_step=dynamic_step)) temp_vertices.append(radial_lines[-1].p[-1]) radial_vals = radial_lines[i + 1].fluff(1000) Radial_spl, uR = splprep([radial_vals[0], radial_vals[1]], s=0) self.radial_spl.append(Radial_spl) + # else: + # self.radial_spl.append(self.radial_spl_old[i]) + vertex_list = [] for j in range(np_lines): u = _poloidal_f(j / (np_lines - 1)) _r = splev(u, self.radial_spl[i]) Pt = Point((float(_r[0]), float(_r[1]))) if self.distortion_correction['active'] and j > 0 and j < np_lines - 1: - Res = self.distortion_correction['resolution'] - ThetaMin = self.distortion_correction['theta_min'] - ThetaMax = self.distortion_correction['theta_max'] umin = _poloidal_f((j - 1) / (np_lines - 1)) umax = _poloidal_f((j + 1) / (np_lines - 1)) Pt1 = radial_vertices[i][j] Pt2 = radial_vertices[i][j - 1] Tag = '---- Correcting points: {},{}'.format(i, j) - Pt = CorrectDistortion(u, Pt, Pt1, Pt2, self.radial_spl[i], ThetaMin, ThetaMax, umin, umax, Res, visual, Tag, verbose) + Pt = CorrectDistortion(u, Pt, Pt1, Pt2, self.radial_spl[i],umin,umax,Tag,**self.distortion_correction) vertex_list.append(Pt) if visual: @@ -998,15 +1111,12 @@ def find_nearest(array, value): for j in range(1, np_lines - 1): u = _poloidal_f(j / (np_lines - 1)) Pt = self.S_vertices[j] - Res = self.distortion_correction['resolution'] - ThetaMin = self.distortion_correction['theta_min'] - ThetaMax = self.distortion_correction['theta_max'] umin = _poloidal_f((j - 1) / (np_lines - 1)) umax = _poloidal_f((j + 1) / (np_lines - 1)) Pt1 = radial_vertices[-1][j] Pt2 = radial_vertices[-1][j - 1] Tag = '---- Correcting south boundary points:{}'.format(j) - self.S_vertices[j] = CorrectDistortion(u, Pt, Pt1, Pt2, self.S_spl, ThetaMin, ThetaMax, umin, umax, Res, visual, Tag, verbose) + self.S_vertices[j] = CorrectDistortion(u, Pt, Pt1, Pt2, self.S_spl, umin, umax, Tag,**self.distortion_correction) radial_vertices.append(self.S_vertices) if verbose: print('# Create Cells: South boundary -> North Boundary') # Create Cells: South boundary -> North Boundary @@ -1298,34 +1408,36 @@ def trim_geometry(geoline, start, end): return trim -def CorrectDistortion(u, Pt, Pt1, Pt2, spl, ThetaMin, ThetaMax, umin, umax, Resolution, visual, Tag, MinTol=1.02, MaxTol=0.98, Verbose=False): - MaxIter = Resolution * 10 - dumax = (umax - u) / Resolution - dumin = (u - umin) / Resolution +def CorrectDistortion(u, Pt, Pt1, Pt2, spl, umin, umax , Tag, theta_min=60, theta_max=120,resolution=1000,min_tol=1.05, max_tol=0.95, zero_span=0.90,max_span=1.0,verbose=False,visual=False,**kwargs): + MaxIter = resolution * 10 + dumax = (umax - u) / resolution + dumin = (u - umin) / resolution Theta = Line([Pt1, Pt]).GetAngle(Line([Pt1, Pt2])) - if Verbose: print(f'Current theta value: {Theta}') - if Theta < ThetaMin or Theta > ThetaMax: - if Verbose: print('{}: u={};Theta={};ThetaMin={};ThetaMax={}'.format(Tag, u, Theta, ThetaMin, ThetaMax)) + if verbose: print(f'Current theta value: {Theta}') + if Theta < theta_min or Theta > theta_max: + if verbose: print('{}: u={};Theta={};ThetaMin={};ThetaMax={}'.format(Tag, u, Theta, theta_min, theta_max)) if visual: plt.plot(Pt.x, Pt.y, '.', color='red', markersize=8, marker='o') plt.show() plt.draw() icount = 0 color = 'purple' - while Theta < ThetaMin or Theta > ThetaMax: + u0=u + + while Theta < theta_min or Theta > theta_max: icount += 1 - if Theta < ThetaMin: + if Theta < theta_min: u = u + dumax - elif Theta > ThetaMax: + elif Theta > theta_max: u = u - dumin - if (u > umax * MaxTol or u < umin * MinTol) or icount >= MaxIter: - if Verbose: print('[{}]>>>> umax={} umin={};u:{};Theta={}'.format(icount, umax, umin, u, Theta)) + if (u-u0) > (umax* max_tol-u0)*max_span or (u-u0) < (umin * min_tol-u0)*max_span or icount >= MaxIter or (abs(umin)<1e-12 and u>>> umax={} umin={};u:{};Theta={}'.format(icount, umax, umin, u, Theta)) color = 'gray' break _r = splev(u, spl) Pt = Point((_r[0], _r[1])) Theta = Line([Pt1, Pt]).GetAngle(Line([Pt1, Pt2])) - if Verbose: print('[{}]>>>> u:{};Theta={}'.format(icount, u, Theta)) + if verbose: print('[{}]>>>> u:{};Theta={}'.format(icount, u, Theta)) if visual: plt.plot(Pt.x, Pt.y, '.', color=color, markersize=8, marker='s') return Pt @@ -1490,7 +1602,7 @@ def segment_intersect(line1, line2, verbose=False): def UnfoldLabel(Dic: dict, Name: str) -> str: """ - Unfold Patch label (e.g. "C1" -> "Inner Core Top") + Unfold Patch label (e.g. "ICT" -> "Inner Core Top") Parameters ---------- @@ -1515,3 +1627,6 @@ def UnfoldLabel(Dic: dict, Name: str) -> str: return ''.join(Output) else: return '' + +def GetLength(E): + return np.sqrt((E[1][0]-E[0][0])**2+(E[1][1]-E[1][1])**2) diff --git a/build/lib/INGRID/ingrid.py b/build/lib/INGRID/ingrid.py index e2427d7..c13b861 100644 --- a/build/lib/INGRID/ingrid.py +++ b/build/lib/INGRID/ingrid.py @@ -17,18 +17,17 @@ pass import matplotlib.pyplot as plt import pathlib -import inspect -from scipy.optimize import root, minimize + import yaml as yml import os from pathlib import Path from time import time -from collections import OrderedDict -from omfit_eqdsk import OMFITgeqdsk + +from INGRID.DistribFunc import * from INGRID.interpol import EfitData -from INGRID.interpol import Bicubic + from INGRID.utils import IngridUtils from INGRID.topologies.snl import SNL from INGRID.topologies.sf15 import SF15 @@ -38,8 +37,10 @@ from INGRID.topologies.sf135 import SF135 from INGRID.topologies.sf165 import SF165 from INGRID.topologies.udn import UDN -from INGRID.line_tracing import LineTracing from INGRID.geometry import Point, Line +import types + + def QuickStart() -> None: @@ -193,6 +194,45 @@ def SaveSettingsFile(self, fname: str = '', settings: dict = {}) -> 'Path': yml.dump(self.settings, f) return fpath + + + def StoreSettings(self, fname: str = '', settings: dict = {}) -> 'Path': + """ + Save a new settings .yml file. + + Parameters + ---------- + fname : optional + Name of new settings '.yml' file. + If default value of '', then Ingrid will generate + a '.yml' file named 'INGRID_Session' appended with + a timestamp. + + settings : optional + Ingrid settings dictionary to dump into + the '.yml' file. Defaults to empty dict which produces a + template settings file. + + Returns + ------- + A Path instance representing the saved YAML file. + """ + + if fname == '': + fname = 'INGRID_Session' + str(int(time())) + '.yml' + + fpath = Path(fname) + + if fpath.suffix == '': + fname += '.yml' + elif fpath.suffix != '.yml': + fname = fname[:-4] + '.yml' + + with open(fname, 'w') as f: + yml.dump(self.settings, f) + + return fpath + def PrintSummaryInput(self) -> None: """ @@ -778,8 +818,8 @@ def PlotTargetPlate(self, plate_key: str, color: str = 'red', ax: object = None) ax = plt.gca() if plate_key in [k for k in self.PlateData.keys()]: - self.RemovePlotLine(label=plate_key, ax=ax) if type(self.PlateData[plate_key]) is Line: + self.RemovePlotLine(label=plate_key, ax=ax) self.PlateData[plate_key].plot(label=plate_key, color=color) else: pass @@ -1049,7 +1089,7 @@ def PlotPatches(self) -> None: if self.settings['grid_settings']['patch_generation']['strike_pt_loc'] == 'target_plates': self.RemovePlotLine(label='limiter', ax=self.PatchAx) - def PlotSubgrid(self) -> None: + def PlotSubgrid(self,NewFig=False,**kwargs) -> None: """ Plot the grid that was generated with method 'CreateSubgrid'. """ @@ -1057,9 +1097,13 @@ def PlotSubgrid(self) -> None: plt.close(self._SubgridFig) except: pass - self._SubgridFig = plt.figure('INGRID: ' + self.CurrentTopology.config + ' Grid', figsize=(6, 10)) - self._SubgridAx = self._SubgridFig.add_subplot(111) - self.CurrentTopology.grid_diagram(fig=self._SubgridFig, ax=self._SubgridAx) + if NewFig: + self._SubgridFig = plt.figure('INGRID: ' + self.CurrentTopology.config + ' Grid', figsize=(6, 10)) + self._SubgridAx = self._SubgridFig.add_subplot(111) + else: + self._SubgridFig = plt.gcf() + self._SubgridAx = plt.gca() + self.CurrentTopology.grid_diagram(fig=self._SubgridFig, ax=self._SubgridAx,**kwargs) def AutoRefineMagAxis(self) -> None: """ @@ -1267,11 +1311,12 @@ def ConstructPatches(self) -> None: self.OrderTargetPlates() self.PrepLineTracing() self.CurrentTopology.construct_patches() - self.CurrentTopology.GroupPatches() + self.CurrentTopology.GroupPatches() self.CheckPatches() - - if self.settings['patch_data']['preferences']['new_file']: - self.SavePatches(self.settings['patch_data']['preferences']['new_fname']) + self.CurrentTopology.SetBoundarySplines() + #not practical in a workflow + #if self.settings['patch_data']['preferences']['new_file']: + # self.SavePatches(self.settings['patch_data']['preferences']['new_fname']) def SavePatches(self, fname: str = '') -> None: """ @@ -1298,6 +1343,35 @@ def SavePatches(self, fname: str = '') -> None: tail = '.npy' print(f"# Saved patch data for file {Path(fname).name + tail}") + + def SuperSavePatches(self, fname: str = '') -> None: + """ + Save patches as '.npy' file for later reconstruction in Ingrid. + + This file contains the information required to reconstruct patches + at a later time and bypass the line_tracing. + + Parameters + ---------- + fname : str, optional + Name of file/location for patch data. + """ + if fname in ['', None]: + fname = self.CurrentTopology.config + '_patches_' + str(int(time())) + self.CurrentTopology.ResetHeavyAttr() + + Data={'patches':self.CurrentTopology.patches, + 'config':self.CurrentTopology.config, + 'xpt_data':self.CurrentTopology.LineTracer.NSEW_lookup + } + np.save(fname, Data) + + if Path(fname).suffix == '.npy': + tail = '' + else: + tail = '.npy' + print(f"# Saved patch data for file {Path(fname).name + tail}") + def LoadPatches(self, fname: str = '') -> None: """ Load patches stored in an Ingrid generated '.npy' file. @@ -1317,7 +1391,7 @@ def LoadPatches(self, fname: str = '') -> None: if fname.strip() == '': # Check if settings contains patch data. fname = self.settings['patch_data']['file'] config, xpt_data, patches = self.ReconstructPatches(fname) - self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) + #self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) self.StartSetup() self.LineTracer.NSEW_lookup = xpt_data self.SetTopology(config) @@ -1325,8 +1399,37 @@ def LoadPatches(self, fname: str = '') -> None: self.CurrentTopology.OrderPatches() self.CurrentTopology.SetupPatchMatrix() self.CheckPatches() + + def SuperLoadPatches(self, fname: str = '') -> None: + """ + Load patches stored in an Ingrid generated '.npy' file. + + Parameters + ---------- + fname : str, optional + Path to patch data. + If no fname is provided to method 'LoadPatches', Ingrid code will check the settings + 'dict' for a file under entry ``settings['patch_data']['file']`` + + """ + + if type(fname) is not str: + raise ValueError('# User did not provide a string to patch data.') + + if fname.strip() == '': # Check if settings contains patch data. + fname = self.settings['patch_data']['file'] + Data=np.load(fname,allow_pickle=True).tolist() + #config, xpt_data, patches = self.ReconstructPatches(fname) + #self.PopulateSettings(Ingrid.ReadYamlFile(self.InputFile)) + self.StartSetup() + self.LineTracer.NSEW_lookup = Data['xpt_data'] + self.SetTopology(Data['config']) + self.CurrentTopology.patches = Data['patches'] + self.CurrentTopology.OrderPatches() + self.CurrentTopology.SetupPatchMatrix() + self.CheckPatches() - def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False) -> None: + def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False,**kwargs) -> None: """ Refine a generated patch map into a grid for exporting. @@ -1349,9 +1452,9 @@ def CreateSubgrid(self, NewFig: bool = True, ShowVertices: bool = False) -> None the particular patch. """ - self.CurrentTopology.construct_grid() + self.CurrentTopology.construct_grid( ShowVertices=ShowVertices,**kwargs) - def ExportGridue(self, fname: str = 'gridue') -> None: + def ExportGridue(self, fname: str = 'gridue',**kwargs) -> None: """ Export a gridue file for the created grid. @@ -1361,12 +1464,9 @@ def ExportGridue(self, fname: str = 'gridue') -> None: Name of gridue file to save. """ - if type(self.CurrentTopology) in [SNL]: - if self.WriteGridueSNL(self.CurrentTopology.gridue_settings, fname): - print(f"# Successfully saved gridue file as '{fname}'") - elif type(self.CurrentTopology) in [SF15, SF45, SF75, SF105, SF135, SF165, UDN]: - if self.WriteGridueDNL(self.CurrentTopology.gridue_settings, fname): - print(f"# Successfully saved gridue file as '{fname}'") + self.CurrentTopology.PrepGridue(**kwargs) + self.CurrentTopology.WriteGridue(fname,**kwargs) + print(f"# Successfully saved gridue file as '{fname}'") @staticmethod def ImportGridue(self, fname: str = 'gridue') -> dict: diff --git a/build/lib/INGRID/line_tracing.py b/build/lib/INGRID/line_tracing.py index 79a9b6f..9846e9e 100644 --- a/build/lib/INGRID/line_tracing.py +++ b/build/lib/INGRID/line_tracing.py @@ -847,7 +847,6 @@ def fend_Z(y): if Verbose: print('Drew for {} seconds\n'.format(end - start)) - print('') return Line(line) def PsiCostFunc(self, xy): diff --git a/build/lib/INGRID/topologies/snl.py b/build/lib/INGRID/topologies/snl.py index 3067e61..27cf268 100644 --- a/build/lib/INGRID/topologies/snl.py +++ b/build/lib/INGRID/topologies/snl.py @@ -340,7 +340,7 @@ def OrderPatches(self): patches = ['A2', 'B2', 'C2', 'D2', 'E2', 'F2', 'A1', 'F1', 'B1', 'C1', 'D1', 'E1'] self.patches = OrderedDict([(pname, self.patches[pname]) for pname in patches]) - def set_gridue(self): + def set_gridue(self,**kwargs): """ Prepares a ``gridue_settings`` dictionary with required data for writing a gridue file. @@ -394,8 +394,71 @@ def set_gridue(self): b[i][j][k] = _b self.gridue_settings = { - 'nxm': nxm, 'nym': nym, 'ixpt1': ixpt1, 'ixpt2': ixpt2, 'iyseptrx1': iyseparatrix1, + 'nxm': nxm, 'nym': nym, 'ixpt1': ixpt1, 'ixpt2': ixpt2, 'iyseptrx1': iyseparatrix1,'simagxs':self.OMFIT_psi['SIMAG'] ,'sibdrys':self.OMFIT_psi['SIBRY'], 'rm': self.rm, 'zm': self.zm, 'psi': psi, 'br': br, 'bz': bz, 'bpol': bpol, 'bphi': bphi, 'b': b } + + + + def WriteGridue(self, fname: str = 'gridue',NewFormat=False,**kwargs) -> bool: + """ + Write a gridue file for a single-null configuration. + + Parameters + ---------- + gridue_settings : dict + A dictionary containing grid data to be written to the gridue file. + + fname : str, optional + The file name/path to save the gridue file to. + Defaults to 'gridue'. + + Returns + ------- + True if file was written with no errors + """ + + def format_header(gridue): + iheader_items = ['nxm', 'nym', 'ixpt1', 'ixpt2', 'iyseptrx1'] + rheader_items = ['simagxs','sibdrys'] + + Str=''.join(['{}'.format(gridue[item]).rjust(4) for item in iheader_items]) + if NewFormat: + Str=Str+''.join(['{:16.10f}'.format(gridue[item]).rjust(17) for item in rheader_items]) + return Str+ '\n' + + def format_body(data): + + delim_val = 0 + delim_char = '' + body = '' + + for n in range(5): + for j in range(len(data[0])): + for i in range(len(data)): + delim_val += 1 + val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') + if delim_val == 3: + delim_val = 0 + delim_char = '\n' + body += val + delim_char + delim_char = '' + + if delim_val % 3 != 0: + body += '\n' + + return body + + f = open(fname, mode='w') + f.write(format_header(self.gridue_settings) + '\n') + + body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] + for item in body_items: + f.write(format_body(self.gridue_settings[item]) + '\n') + + runidg = 'iogridue' + f.write(runidg + '\n') + + f.close() - return self.gridue_settings + return True diff --git a/build/lib/INGRID/topologies/udn.py b/build/lib/INGRID/topologies/udn.py index 6f07beb..cfc2027 100644 --- a/build/lib/INGRID/topologies/udn.py +++ b/build/lib/INGRID/topologies/udn.py @@ -618,10 +618,78 @@ def set_gridue(self) -> dict: b[i][j][k] = _b self.gridue_settings = { - 'nxm': nxm, 'nym': nym, 'iyseparatrix1': iyseparatrix1, 'iyseparatrix2': iyseparatrix2, + 'nxm': nxm, 'nym': nym, 'iyseparatrix1': iyseparatrix1, 'iyseparatrix2': iyseparatrix2,'simagxs':self.OMFIT_psi['SIMAG'] ,'sibdrys':self.OMFIT_psi['SIBRY'], 'ix_plate1': ix_plate1, 'ix_cut1': ix_cut1, 'ix_cut2': ix_cut2, 'ix_plate2': ix_plate2, 'iyseparatrix3': iyseparatrix3, 'iyseparatrix4': iyseparatrix4, 'ix_plate3': ix_plate3, 'ix_cut3': ix_cut3, 'ix_cut4': ix_cut4, 'ix_plate4': ix_plate4, 'rm': self.rm, 'zm': self.zm, 'psi': psi, 'br': br, 'bz': bz, 'bpol': bpol, 'bphi': bphi, 'b': b, '_FILLER_': -1 } + + + def WriteGridue(self, gridue_settings: dict, fname: str = 'gridue',**kwargs) -> bool: + """ + Write a gridue file for a double-null configuration. + + Parameters + ---------- + gridue_settings : dict + A dictionary containing grid data to be written to the gridue file. + + fname : str, optional + The file name/path to save the gridue file to. + Defaults to 'gridue'. + + Returns + ------- + True if file was written with no errors + """ - return self.gridue_settings + def format_header(gridue): + header_rows = [ + ['nxm', 'nym'], + ['iyseparatrix1', 'iyseparatrix2'], + ['ix_plate1', 'ix_cut1', '_FILLER_', 'ix_cut2', 'ix_plate2'], + ['iyseparatrix3', 'iyseparatrix4'], + ['ix_plate3', 'ix_cut3', '_FILLER_', 'ix_cut4', 'ix_plate4'] + ] + + header = '' + for header_items in header_rows: + for item in header_items: + header += '{}'.format(gridue[item]).rjust(4) + header += '\n' + return header + + def format_body(data): + + delim_val = 0 + delim_char = '' + body = '' + + for n in range(5): + for j in range(len(data[0])): + for i in range(len(data)): + delim_val += 1 + val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') + if delim_val == 3: + delim_val = 0 + delim_char = '\n' + body += val + delim_char + delim_char = '' + + if delim_val % 3 != 0: + body += '\n' + + return body + + f = open(fname, mode='w') + f.write(format_header(gridue_settings) + '\n') + + body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] + for item in body_items: + f.write(format_body(gridue_settings[item]) + '\n') + + runidg = 'iogridue' + f.write(runidg + '\n') + + f.close() + return True diff --git a/build/lib/INGRID/utils.py b/build/lib/INGRID/utils.py index 569119a..91367a7 100644 --- a/build/lib/INGRID/utils.py +++ b/build/lib/INGRID/utils.py @@ -15,9 +15,10 @@ except: pass import matplotlib.pyplot as plt -import pathlib import inspect -from scipy.optimize import root, minimize +from scipy.optimize import root + + import yaml as yml import os @@ -28,8 +29,9 @@ from omfit_eqdsk import OMFITgeqdsk from INGRID.interpol import EfitData from INGRID.line_tracing import LineTracing -from INGRID.geometry import Point, Line, Patch, segment_intersect, orientation_between - +from INGRID.DistribFunc import DistribFunc +from INGRID.geometry import Point, Line, Patch, orientation_between +import types class IngridUtils(): """ @@ -1070,137 +1072,9 @@ def ClassifyTopology(self, visual=False) -> None: self.config = self.LineTracer.config - def WriteGridueSNL(self, gridue_settings: dict, fname: str = 'gridue') -> bool: - """ - Write a gridue file for a single-null configuration. - - Parameters - ---------- - gridue_settings : dict - A dictionary containing grid data to be written to the gridue file. - - fname : str, optional - The file name/path to save the gridue file to. - Defaults to 'gridue'. - - Returns - ------- - True if file was written with no errors - """ - - def format_header(gridue): - header_items = ['nxm', 'nym', 'ixpt1', 'ixpt2', 'iyseptrx1'] - header = '' - for item in header_items: - header += '{}'.format(gridue[item]).rjust(4) - - header += '\n' - return header - - def format_body(data): - - delim_val = 0 - delim_char = '' - body = '' - - for n in range(5): - for j in range(len(data[0])): - for i in range(len(data)): - delim_val += 1 - val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') - if delim_val == 3: - delim_val = 0 - delim_char = '\n' - body += val + delim_char - delim_char = '' + - if delim_val % 3 != 0: - body += '\n' - - return body - - f = open(fname, mode='w') - f.write(format_header(gridue_settings) + '\n') - - body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] - for item in body_items: - f.write(format_body(gridue_settings[item]) + '\n') - - runidg = 'iogridue' - f.write(runidg + '\n') - - f.close() - - return True - - def WriteGridueDNL(self, gridue_settings: dict, fname: str = 'gridue') -> bool: - """ - Write a gridue file for a double-null configuration. - - Parameters - ---------- - gridue_settings : dict - A dictionary containing grid data to be written to the gridue file. - - fname : str, optional - The file name/path to save the gridue file to. - Defaults to 'gridue'. - - Returns - ------- - True if file was written with no errors - """ - - def format_header(gridue): - header_rows = [ - ['nxm', 'nym'], - ['iyseparatrix1', 'iyseparatrix2'], - ['ix_plate1', 'ix_cut1', '_FILLER_', 'ix_cut2', 'ix_plate2'], - ['iyseparatrix3', 'iyseparatrix4'], - ['ix_plate3', 'ix_cut3', '_FILLER_', 'ix_cut4', 'ix_plate4'] - ] - - header = '' - for header_items in header_rows: - for item in header_items: - header += '{}'.format(gridue[item]).rjust(4) - header += '\n' - return header - - def format_body(data): - - delim_val = 0 - delim_char = '' - body = '' - - for n in range(5): - for j in range(len(data[0])): - for i in range(len(data)): - delim_val += 1 - val = np.format_float_scientific(data[i][j][n], precision=15, unique=False).rjust(23).replace('e', 'D') - if delim_val == 3: - delim_val = 0 - delim_char = '\n' - body += val + delim_char - delim_char = '' - - if delim_val % 3 != 0: - body += '\n' - - return body - - f = open(fname, mode='w') - f.write(format_header(gridue_settings) + '\n') - - body_items = ['rm', 'zm', 'psi', 'br', 'bz', 'bpol', 'bphi', 'b'] - for item in body_items: - f.write(format_body(gridue_settings[item]) + '\n') - - runidg = 'iogridue' - f.write(runidg + '\n') - - f.close() - return True + def ReconstructPatches(self, fname: str) -> tuple: """ @@ -1227,7 +1101,7 @@ def ReconstructPatches(self, fname: str) -> tuple: patches = {} for raw_patch in data[2:]: - patch_data, cell_data, patch_settings = raw_patch + patch_data, cell_data, patch_settings,Vertices,cell_grid = raw_patch NR = patch_data[0] NZ = patch_data[1] ER = patch_data[2] @@ -1246,7 +1120,8 @@ def ReconstructPatches(self, fname: str) -> tuple: plate_patch=patch_settings['plate_patch'], plate_location=patch_settings['plate_location'], PatchTagMap=patch_settings['PatchTagMap']) - + patch.SetVertices(Vertices) + patch.cell_grid=cell_grid patches[patch.patch_name] = patch patches = OrderedDict([(k, v) for k, v in patches.items()]) @@ -1267,16 +1142,16 @@ def CheckPatches(self, verbose: bool = False) -> None: """ self.CurrentTopology.CheckPatches(verbose=verbose) - def PrepGridue(self, guard_cell_eps=1e-3) -> None: - """ - Prepare the gridue for writing. + # def PrepGridue(self, guard_cell_eps=1e-3) -> None: + # """ + # Prepare the gridue for writing. - This method calls topology specific implementations of methods that - concatenate the Patch object subgrids into a global grid. - """ - self.CurrentTopology.SetupPatchMatrix() - self.CurrentTopology.concat_grid(guard_cell_eps=guard_cell_eps) - self.CurrentTopology.set_gridue() + # This method calls topology specific implementations of methods that + # concatenate the Patch object subgrids into a global grid. + # """ + # self.CurrentTopology.SetupPatchMatrix() + # self.CurrentTopology.concat_grid(guard_cell_eps=guard_cell_eps) + # self.CurrentTopology.set_gridue() @classmethod def _CheckOverlapCells(Grid, Verbose=False): @@ -1359,6 +1234,7 @@ def __init__(self, Ingrid_obj: object, config: str): self.PlateData = Ingrid_obj.PlateData self.PatchTagMap = self.parent.GetPatchTagMap(config=config) self.LineTracer = Ingrid_obj.LineTracer + self.OMFIT_psi = Ingrid_obj.OMFIT_psi self.PsiUNorm = Ingrid_obj.PsiUNorm self.PsiNorm = Ingrid_obj.PsiNorm self.CurrentListPatch = {} @@ -1404,6 +1280,7 @@ def patch_diagram(self, fig: object = None, ax: object = None) -> None: for i, patch in enumerate(self.patches.values()): patch.plot_border(color='black', ax=a) patch.fill(colors[patch.get_tag()[0]], ax=a, alpha=alpha[patch.get_tag()[-1]]) + patch.alpha=alpha[patch.get_tag()[-1]] patch.color = colors[patch.get_tag()[0]] handles, labels = a.get_legend_handles_labels() lookup = {label: handle for label, handle in zip(labels, handles)} @@ -1412,7 +1289,7 @@ def patch_diagram(self, fig: object = None, ax: object = None) -> None: ncol=1) f.show() - def grid_diagram(self, fig: object = None, ax: object = None) -> None: + def grid_diagram(self, fig: object = None, ax: object = None,color=None,**kwargs) -> None: """ Generates the grid diagram for a given configuration. @@ -1441,7 +1318,8 @@ def grid_diagram(self, fig: object = None, ax: object = None) -> None: ax.set_title(f'{self.config} Subgrid') for patch in self.patches.values(): - patch.plot_subgrid(ax=ax) + #patch.plot_subgrid(ax=ax) + patch.PlotSubGrid(ax=ax,color=color) print(f'# Plotting subgrid {patch.patch_name}') fig.show() @@ -1480,96 +1358,37 @@ def get_config(self) -> str: """ return self.config - def get_func(self, func: str) -> 'function': - """ - Create a function from a string input. - - Will be used to generate a poloidal or radial transformation - function. - - Parameters - ---------- - func : str - An expression to generate a function from. - - Returns - ------- - A function generated from the str input. - - Examples - -------- - When calling method ``get_func`` the user must provide a **string** - with the following general format: - - .. math:: - - x, f(x) - - That is, the dependent variable and expression to evaluate are - separated with a comma character. - - The `Sympy` library supports most expressions that can be generated with - Python natively. See the `Sympy` documentation for advanced features. - - Defining a function representing f(x) = x ^ 2: - - >>> func = 'x, x ** 2' - >>> f = MyTopologyUtils.get_func(func) - >>> f(np.array([0, 1, 2, 3])) - array([0, 1, 4, 9]) - - Defining a function representing f(x) = exp(x) - - >>> func = 'x, exp(x)' - >>> f = MyTopologyUtils.get_func(func) - >>> f(np.array([0, 1, 2, 3])) - array([ 1. , 2.71828183, 7.3890561 , 20.08553692]) - - """ - - def make_sympy_func(var, expression): - import sympy as sp - _f = sp.lambdify(var, expression, 'numpy') - return _f - - f_str_raw = func - - f_str_raw = f_str_raw.replace(' ', '') - delim = f_str_raw.index(',') - - var = f_str_raw[0: delim] - expression = f_str_raw[delim + 1:] - - func = make_sympy_func(var, expression) - # TODO: Check Normalization of the function to 1 - return func - - def CheckFunction(self, expression: str, Verbose: bool = False) -> bool: - """ - Check if a str is in the correct format for method ``get_func`` - - Parameters - ---------- - expression : str - Expression to check. - - Verbose : bool, optional - Print full output to terminal. Default to False - - Returns - ------- - True if expression is valid. False otherwise. - """ - ExpValid = False - try: - com = 'lambda {}:{}'.format(expression.split(',')[0], expression.split(',')[1]) - if Verbose: - print(com) - eval(com) - ExpValid = True - except: - raise ValueError('Unable to parse expression entry "{}".'.format(expression)) - return ExpValid + + def SetPatchesOrientation(self): + + + # set radial orientation negative if patch is in PFR + for name, patch in self.patches.items(): + if patch.plate_patch and self.GetPatchLetterNumber(patch.get_tag())[1]=='1': + patch.RadOrientation=-1 + else: + patch.RadOrientation=1 + + #set poloidal orientation negative if patches in high field side region (must be checked for other config) + Letters=list(dict.fromkeys([L for L,N in self.GetPatchLetterNumber(self.GetListAllPatches())])) + Nhalf=int(len(Letters)/2) + ListLFS=Letters[0:Nhalf] + for name, patch in self.patches.items(): + if self.GetPatchLetterNumber(patch.get_tag())[0] in ListLFS: + patch.PolOrientation=-1 + else: + patch.PolOrientation=1 + + + + + + + + + def ResetHeavyAttr(self): + for p in self.patches.values(): + p.ResetSplines() def GetFunctions(self, Patch: Patch, Verbose: bool = False) -> tuple: """ @@ -1592,49 +1411,43 @@ def GetFunctions(self, Patch: Patch, Verbose: bool = False) -> tuple: ------- 2-tuple containing functions for radial and poloidal direction respectively. """ - + poloidal_tag, radial_tag = Patch.get_tag() p_f = 'poloidal_f_' + poloidal_tag r_f = 'radial_f_' + radial_tag - - try: - _poloidal_f = self.settings['grid_settings']['grid_generation'][p_f] - valid_function = self.CheckFunction(_poloidal_f, Verbose) - if valid_function: - _poloidal_f = self.get_func(_poloidal_f) - else: - raise ValueError('# Invalid function entry. Applying default poloidal function.') - except: - _poloidal_f = self.settings['grid_settings']['grid_generation']['poloidal_f_default'] - valid_function = self.CheckFunction(_poloidal_f, Verbose) - if valid_function: - _poloidal_f = self.get_func(_poloidal_f) - else: - _poloidal_f = lambda x: x - - try: - - # Adding CORE radial_f support for SNL cases via entry 'radial_f_3' - if self.config in ['USN', 'LSN'] \ - and self.settings['grid_settings']['grid_generation'].get('radial_f_3') is not None \ - and poloidal_tag + radial_tag in ['B1', 'C1', 'D1', 'E1']: - _radial_f = self.settings['grid_settings']['grid_generation']['radial_f_3'] - else: - _radial_f = self.settings['grid_settings']['grid_generation'][r_f] - valid_function = self.CheckFunction(_radial_f, Verbose) - if valid_function: - _radial_f = self.get_func(_radial_f) - else: - raise ValueError('# Invalid function entry. Applying default radial function.') - except: - _radial_f = self.settings['grid_settings']['grid_generation']['radial_f_default'] - valid_function = self.CheckFunction(_radial_f, Verbose) - if valid_function: - _radial_f = self.get_func(_radial_f) - else: - _radial_f = lambda x: x - - return (_radial_f, _poloidal_f) + + _poloidal_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get(p_f)) + if _poloidal_f is None: + _poloidal_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('poloidal_f_default')) + if _poloidal_f is None: + _poloidal_f = DistribFunc('x:x') + + + (L,N)=self.GetPatchLetterNumber(Patch.get_tag()) + # Adding CORE radial_f support for SNL cases via entry 'radial_f_3' + if self.config in ['USN', 'LSN'] and N=='1' and Patch.plate_patch: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('radial_f_3')) + else: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get(r_f)) + if _radial_f is None: + _radial_f = DistribFunc(self.settings['grid_settings']['grid_generation'].get('radial_f_default')) + if _radial_f is None: + _radial_f = lambda x: x + + if hasattr(Patch,'RadOrientation') and Patch.RadOrientation==-1: + _radial_f_=lambda x:1-_radial_f(1-x) + else: + _radial_f_=_radial_f + if hasattr(Patch,'PolOrientation') and Patch.PolOrientation==-1: + _poloidal_f_=lambda x:1-_poloidal_f(1-x) + else: + _poloidal_f_=_poloidal_f + + + + return (_radial_f_, _poloidal_f_) + + def GetNpoints(self, Patch: Patch) -> tuple: """ @@ -1680,15 +1493,32 @@ def GetDistortionCorrectionSettings(self) -> dict: A dictionary containing ``CorrectDistortion`` settings. """ if self.settings['grid_settings']['grid_generation'].get('distortion_correction') is not None: - CD = self.settings['grid_settings']['grid_generation']['distortion_correction'] + self.distortion_correction = self.settings['grid_settings']['grid_generation']['distortion_correction'] else: - CD = {} - - self.distortion_correction = CD - return CD - + self.distortion_correction = {} + + if hasattr(self,'patches'): + for name, patch in self.patches.items(): + (L,N)=self.GetPatchLetterNumber(patch.get_tag()) + if self.distortion_correction.get(name) is not None: + patch.distortion_correction = self.distortion_correction.get(name) + elif self.distortion_correction.get(patch.get_tag()) is not None: + patch.distortion_correction = self.distortion_correction.get(patch.get_tag()) + elif self.distortion_correction.get(N) is not None: + patch.distortion_correction = self.distortion_correction.get(N) + elif self.distortion_correction.get(L) is not None: + patch.distortion_correction = self.distortion_correction.get(L) + elif self.distortion_correction.get('all') is not None: + patch.distortion_correction = self.distortion_correction.get('all') + else: + patch.distortion_correction = {'active': False} + + + def GetListAllPatches(self): + return [v.get_tag() for k,v in self.patches.items()] + def construct_grid(self, np_cells: int = 1, nr_cells: int = 1, Verbose: bool = False, - ShowVertices: bool = False, RestartScratch: bool = False, ListPatches: str = 'all') -> None: + ShowVertices: bool = False, RestartScratch: bool = False, ListPatches: str = 'all',Visual=True) -> None: """ Construct a grid by refining a Patch map. @@ -1756,45 +1586,100 @@ def construct_grid(self, np_cells: int = 1, nr_cells: int = 1, Verbose: bool = F visual = self.settings['DEBUG']['visual']['subgrid'] except: visual = False + if Visual: + visual=True try: verbose = self.settings['DEBUG']['verbose']['grid_generation'] except: verbose = False - verbose = Verbose or verbose - + if Verbose: + verbose=True + ListAllPatches=self.GetListAllPatches() + print('>>> Existing Patches :',ListAllPatches) + ListPatches=self.ProcessListPatches(ListPatches) + print('>>> Generating grids for patches:',ListPatches) + self.SetPatchesOrientation() self.GetDistortionCorrectionSettings() - - print('>>> Patches:', [k for k in self.patches.keys()]) + + if RestartScratch: self.CurrentListPatch = {} for name, patch in self.patches.items(): - - if self.distortion_correction.get(name) is not None: - patch.distortion_correction = self.distortion_correction.get(name) - elif self.distortion_correction.get(patch.get_tag()) is not None: - patch.distortion_correction = self.distortion_correction.get(patch.get_tag()) - elif self.distortion_correction.get('all') is not None: - patch.distortion_correction = self.distortion_correction.get('all') - else: - patch.distortion_correction = {'Active': False} - if (ListPatches == 'all' and patch not in self.CurrentListPatch) or (ListPatches != 'all' and name in ListPatches): - self.SetPatchBoundaryPoints(patch, verbose) + self.SetPatchBoundaryPoints(patch) + + for name, patch in self.patches.items(): + if (ListPatches == 'all' and patch not in self.CurrentListPatch) or (ListPatches != 'all' and patch.get_tag() in ListPatches): + self.SetPatchBoundaryPoints(patch) (nr_cells, np_cells) = self.GetNpoints(patch) (_radial_f, _poloidal_f) = self.GetFunctions(patch) - print(f'>>> Making subgrid in patch {name}:') - print(f' np = {np_cells}, nr = {nr_cells}') - print(f' fp = {inspect.getsource(_poloidal_f)}') - print(f' fr = {inspect.getsource(_radial_f)}', end='') + print('>>> Making subgrid in patch:{} with np={},nr={},fp={},fr={}'.format(patch.get_tag(), np_cells, nr_cells, inspect.getsource(_poloidal_f), inspect.getsource(_radial_f))) patch.RemoveDuplicatePoints() patch.make_subgrid(self, np_cells, nr_cells, _poloidal_f=_poloidal_f, _radial_f=_radial_f, verbose=verbose, visual=visual, ShowVertices=ShowVertices) + self.CurrentListPatch[name] = patch - print(f' {name} subgrid complete.\n\n') + self.AdjustGrid() - - def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: + + @staticmethod + def GetPatchLetterNumber(PatchName:str or str)->tuple: + + if type(PatchName)==str: + if len(PatchName)<1 or len(PatchName)>2: + raise IOError('PatchName must be a string of one or two characters') + L='' + N=None + + for C in PatchName: + if C.isnumeric(): + N=C + elif C.isalpha(): + L=C + else: + raise IOError('PatchName must be a string of one or two characters with one letter max and one digit max') + return (L,N) + + elif type(PatchName)==list: + Out=[] + for P in PatchName: + Out.append(TopologyUtils.GetPatchLetterNumber(P)) + return Out + else: + raise ValueError('PatchName must be a list of a str') + + def ProcessListPatches(self,ListPatches:list or str): + if type(ListPatches)==str: + ListPatches=[ListPatches] + OrderedList=self.GetListAllPatches() + + Numbers=list(dict.fromkeys([N for L,N in self.GetPatchLetterNumber(OrderedList) if N is not None])) + Letters=list(dict.fromkeys([L for L,N in self.GetPatchLetterNumber(OrderedList) if L!=''])) + if self.Verbose: + print('Numbers:',Numbers) + print('Letters:',Letters) + if 'all' in ListPatches: + return OrderedList + else: + + OutList=ListPatches.copy() + for P in ListPatches: + (L,N)=self.GetPatchLetterNumber(P) + if L=='' and N is None: + raise ValueError('Incorrect patch name pattern:{}'.format(P)) + elif N is None: + OutList.remove(P) + OutList.extend([L+Num for Num in Numbers]) + elif L=='': + OutList.remove(P) + OutList.extend([Let+N for Let in Letters]) + # now let order them + OutList=[P for P in OrderedList if P in list(dict.fromkeys(OutList))] + return OutList + + + def SetPatchBoundaryPoints(self, Patch: Patch) -> None: """ Set the Patch ``BoundaryPoints`` dict based off TopologyUtils ``ConnexionMap``. @@ -1802,8 +1687,6 @@ def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: ---------- Patch : Patch The Patch to set the boundary points for. - verbose: bool - Print full output to terminal. Notes ----- @@ -1812,12 +1695,12 @@ def SetPatchBoundaryPoints(self, Patch: Patch, verbose: bool = False) -> None: """ Patch.TerminatesLoop = False if self.ConnexionMap.get(Patch.get_tag()) is not None: - if verbose: + if self.Verbose: print('Find connexion map for patch {}'.format(Patch.patch_name)) for v in self.ConnexionMap.get(Patch.get_tag()).items(): Boundary, AdjacentPatch = v Patch.BoundaryPoints[Boundary] = self.GetBoundaryPoints(AdjacentPatch) - if verbose: + if self.Verbose: print('Find Boundaries points for {}'.format(Patch.patch_name)) if self.ConnexionMap.get(Patch.get_tag()).get('E') is not None: Patch.TerminatesLoop = True @@ -2189,3 +2072,18 @@ def set_guard(cell_map, ix, iy, eps, boundary): if debug: self._animate_grid() + + def SetBoundarySplines(self): + for n,p in self.patches.items(): + p.CreateBoundarySplines(self) + + def PrepGridue(self, guard_cell_eps=1e-3,**kwargs) -> None: + """ + Prepare the gridue for writing. + + This method calls topology specific implementations of methods that + concatenate the Patch object subgrids into a global grid. + """ + self.SetupPatchMatrix() + self.concat_grid(guard_cell_eps=guard_cell_eps) + self.set_gridue() diff --git a/dist/INGRID-1.0.1-py3.7.egg b/dist/INGRID-1.0.1-py3.7.egg index ba73b54fe8729516898d381cef9c355957586c29..6c8dc1ea4dc13848b0284d51dc259498b93b98fb 100644 GIT binary patch delta 191851 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 delta 182754 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≪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 h}Kt_g@ZXx zv4h%cZZS38mEb|ewztiBK6}(X*>^z2azn6(cN8Z|ne^4!as8R1W}ngbA$=cJu8<^RD^lHx0S&}Yn+)xpTFY-GVPunc;B6Oc&DrwJ zSC=hf)oCnQzRO@chF;`%=|$e47k6m@f5*eq3n^qI z?5?7fEnqgf@u~Bt%{i8p`(9WS*(BB`an5vF@e@8f1I1_|^Ll@!6DYsSt{)qHKY*`` z4H90~=vhJ zuG#GXg989WzpMD%c;vOjf7C{3zQ4$>|3P<7MTJuZxPtD^c|XZ{k+k0`M_8;V@(sa` zzP0@>LKRX^OXYaYp7(sjpgbaL0^`o<8pXmjn4p|jtC$tek5&^@#k4RIKKLxWL4Sj# za~g9DIxVbhZ^4@|)_&$T23UIHtJAk|9bAVTyGhL&-FW!$X;Ccae{>&$cKlTL@@h4K zoZLfgDN-Q}3KZW5{P1DW#w!J39W{a$@Y8JVR-&G`r^ZzCrmF0yb#%hVz%o^4hS@c_ zXLc+he#~IazJ8?ybu%2qvi>D8xVyoswiVkbZBDh#tsTu5z!vD4foA7a-U^2oJES~m zg!dRN3F9o80xRX0e=yuza4~Myu;zBdklY+pQtf)+M$O=pg|Wu0`r@75ZbH=F5yAcEn8`A|%CjI-OV34djJ^H!aGk>Gx37A4E6s=PlJ|R6XWv ze|wOF3RsCIk#)Yf6-HhIL!BsmZqXgV!t~!?G}gTA5NYu{CN5P#LkwriKIOCiYF!+?sv+l z_s^8FLR!r{rBDQ1+0DR?nyKOQ6uM2Wf2{ZBwR50n+0B5eMX4V!)d%R%vzfCSLL-h2 z%sxB&TCOpLz)~sh;<_d};E*+}?t5$ubN)eV*7F}MZv+RIR zgGo4{^<$eCBM~4>GO}db+jsM3f6R&#V*7gz~aQQuDr6~ zonhe08Krq;<5P$885uztW=IknwiG}o2W>c^4STyqUO4a7HH{xyot;mBaXj2UzBNaH z+#V(vFq>8r)JViztC`4a9aYx3 z1B~0L8ZD>_LDi$nZU&ZmZs+P$ZV2_u+Dpn+RmL(i4+&hQN?MUO%qv2##N3RA3%wr0 z*OCj3OrW5hE(`LhM~f#}4e4Bq!X2~um}R?lf@DlFU;fgDEVI*Ue}h_e%OGFNJ`1sK zDAfs;>Z!-@#%j}?+6=rmxSXJjIPC_v``>qaiY&39GZX&tv;6T) z{y3CBj^vN$^rIQvzJx1(Jd-~T<&Puz<9WXs+*?w>0%$n$RE$-k3;$6Nd9;(f4talc^ZTlf0rd*?l)(P-PsLM7}TL4 zOT7H5oQWv(>rjv-UVc?3zAdwFdicjIxL=!-JtI~pv=t|R83y*XTqCO$1AiI5^|f3hf1(xN{!#2&%cf?g7Ly4r zk5H99-**+kK|oiLp%3WxI|-f{*8_yMdQB$Kjf%B<^OA8vBj4eptj%%Bke+8b`fHk- zCviCwC2SBOwbvp^jB&psCnhr579nEjw1K@Bj(~vA6#B~BQ;i(nstE6QzpK(BY#=CG zvz@odD%GtAh!owkfG{kS;NP0i=qi(%#}f5`4k-?JXG2`k;-r8$ zRCyF8$vVJeBo4*n0!cK3_f@}f4U;oK9LbB+F^#$Ke=|!s4>_JtltGcrg)tU>a#%>T z!mTUag(xg}*;SOoE;E@&(`r+&WQG^j^_26O9_P>7Qt2Xdt$?~>4sBO1d{r#Hy`kXbb2&&Qe&PyxL(|zyL$L_U8_#vIdVlbW@TR7~|7vZqFksfRwsX@(1 zxydkU+pXj5LBo-%8|lZJ@qS!`_kL5n>p1)IzZZvb0?jQfwvoMRCEV8*Vs{>@rb6rs zPmMbZv8GewTd-a=ry8wBi zVKPzq8ZR^&*hO-u2qqk*Qk7%Y*tqP9Lh4Y``Hojt#KpSp%CY>^ ze{94h*>*XZ=d-zVL5I7@k^F#A!2K;TrrT*zDG#UqN?fCIw&dLM;fZujm-7+qC0nN` zv-=0`yc(5RNe=XQ1Su{MJ283yLfR&PNh6R2C;bD;uaEe-6S5vQROG&H0e`TsK-;5= z$=v|rO_XOvyDhuXRgHFoC!H?GhYVZKe;ww#*}1lTsJo(VwL3$8TdT*`^9RAplH<~F z3rZn{>fRI1)_}nol>lx~w`37cMXYd?)Jo{hq2TWn-%RbA8K)xwf-Ke*ob zVuWBwyi=X>IInFOt_?zWklb*T%|YBF%0qh1$tT!Dki(#=+i(0(D5tnud1$i%e;@)2 z$7#cU61MC_iP-B$X|{6b_HV!AL~kOZ$=uxdtGt6L`s9UGS`Mq}Tw0 zhb^&_XPXUM0;Fav7?@hJL>}@}-7yKbTLQ$bWjm-GOQ$wr&EM5@_L7F!4bDw}fXm%Be?T{0KsN%= zjRDB%L7f>_TkofyICs(=#r3fBs%DHDY=!egx_x+V+M@HhX@%}oYuvasZk!rcl}Z>M zex`UAL!%HtaZ7=drOXq8XM%Nt@Q462ep?geW8YEH@f{`ZsAdgnLf>xhS%RMhd0F+L zk3ZJD8{lD3Rl@MgeSB$if5t8R0Bl5l*nr62?uv)!%+_xG$%fYJFr(HhlH-^ZRnOwB zr3oo+@*-_}{z(P0f2T!G^vkdCR#6mddNTy`4G1>Y#UD3C?RL}~+<|&x+yxD5HVt2f zhF&x!0(YZiKJR-sCVjm#>2KNC+z~)NA9w)_G=RYt3~mA7>+h}(f4}bTN=)4^u*Z7* z$M3QHM%$TPc_{oF>QzwONX6+g^27Uc(^kRd&rRE(n>PBuGVl#|ZC|Rb+iu%-l=l_! zD^^}9g!lgx!p7%MA^g8u2urp2Pf>hpQ9SsDqWDX-^+#IJ`hF8yU)s?6I~dWtux=!* zn;l@mIQsD#NW2C+f8gbXbt7Tjn6SQ>eXp+!e0{%#uV0xQSZ$!H4gA#x)g_j@6aWAK2ml*)LQ%ka9*^<_008<20{{Roli~RmlfLvQfA-pO zLl6|CYE&vDOVmkA)k0LNLero~ZCW)Eg%xNu@r<2K*1OKkxJleKmm<*%Qcj#W#7F*< ziZiFZa_XHEhl)32CryO}>}uY=kNM5}n3=a<)az9Q&yU~lM85&|2Ric@%WW7c1;SB? zIOZh5AwIlhIT8~1mXcE62_0;#e-7|&=wkF3r2$6f{RXAvYb5ZoH$mLx9xrph>x#1Q zMMYF$7+T|%UwmHWwIAFt;A8`}g3*oY9VwU=oMtKA+#b?Zu|?^1dga>kwX4fZpVF&K zSC^{Q+ia+}Gr3H6dP6N_QhjMcUvJ@}_Tc{N+GbDeakYCYGAnL|rIn9Ye?sprXqK+5 zw*11`*v@p}Y{q?2I1icLF3MjCxs@qVcq`&b+!2MpvHtnP)i@DFZ8eh}@kk^YgrQMgZfEsoXt0$fX?j@EG^d zxO{{UUgdZN9pUf(9Q%1me};f0fJC{UJGnb?EWX5@scu5vLE{S4_pDsCp36DOs}nM= zok|su0$9(3xj|l=5VMxG`gt(H@eNwf6?f;F-34R4$>xA z8#YQZjWS)xOMuz}{oGlUjlDL(V0)f>5bg7sr`jxjqM8=@Ga#E5GnZE(gGS!?*9;oR zrb5_qXEUgsX7CDDJO{DV&SX%VWl*yj%p2<)84!61^l!aJ<>lih%n7>0Aop%QM*3V{ zeunu1_#pCLUgqWVe{e4HGTe=~*GJ7eEKM^_S*IhEqEE-8`}eYJH%@!Bn@P$pcj25; zmU7ygvPP@71yyj&=?728lxeCzn|^`r$9kKdobP2=&g&Uid*nVHw~ffA;(}E#1LPyh zPFRWIsE;ntTl5}W2opnZ>QiQYdY`L7GE{W+rD-RdtxD)|e|w)oN7*Z<&6RV-0qf|{ zUNM6W-#6-r$K7tU&twXVMtWNcfFwLz=(0G8;%<};b(D1@$!lD=PW}eMsBz&=rvgZK97grK5LY>gi0yoMi=YSA~6e`o(pe(IS0Z^!IE9J3S0FHPxN^99LN;S5aMa%06~S-1lkr@HW9-}}r| z`EUS@Er}KIJ6W6-UaZU_MY$)mibq01r$S+1!jAgWutU$dXHdOPVjH0p{p^X5C74-w zY%mZhFG`6>TXWI@opcTH3^C16`i4{tFOxJ#&&(dvI9P-_V>hZTVZ%s7Zhu*dYP(uwyv1fSd3(;BAtN#6dps@daGPKAs0% z6?vv-vp0}TNCt*rKgjR~| zZ^`b#th}%-oqZ^;*+sVte;Qqsl$M3Fm1Rlc>fs;}){QOD8S;UF`#1X;A130K*$CAH z;y@Y%MgS>#*em@FP)h>@6aWAK2ml*)LQ!&>2&nXL0001t0F#gU8JA5m0v-eA^;we` z`W_iflS(slQuLEjGK)*}aubvDiz{>u4fM=)lS%q09t`;mvJL=HO9KQH0000802_8f zQ8!@xW~oE~0Qs+zkNPuzbX-Sv82JAEx&bsn5ClPxqM9F(XbOZ#iX&<`6vZDXafX6u zk|S!`(lj5s9-0j{x|`LnL7??|JQih3w!=hmCeApPC&b2aY$qqj>z(X6S?^}zII|mP zc9Wc}o!xiVIqNuyt;D;@*>$|x$tKRdx9WZR1Be=pG$-c-WWP^;z53U!`>R{G&X0^_ z6!?4lOH0My{#%OjJ4)iug5O#AHUB_W6s8murZTOnE^7sCSuf}+zUx(^VA9Xzlv!sznW z!q(-n!r1b*!Zr$jPgTd4w->fAPZTET-LCFfo-9nN$_olhv&>rx%iPxrJK=4J4a3_o zyiLK|2+P7-7T$Kj+ZHwoZ=>+G8{W3EF?bt;x5wBvcMltXPh;EJ#9Kz;@#uXAn}qjV z^uCi#!TVl#-$(De*lu{=AH6@u_Q3mrDE{Lt2k%d~Q|>N*_aNK*p3e5M{Sb19ZKF5` zAmj;l5JINiJUhguAx)kghWEqlNjCGAQh1UbVY6_bVVBuacI+*+aD*LaPeaHoJHb8$ z_ovu1>?GWevS-<+;eL#LmYrtLLCoXq40|3zo@Qs+Ik=x-pJV6Q1^DtQc7iuK zfx}zXX*S(v&b#e+xn`@;sB;fq+}!2)7p`5tn32gVC8wIJFD$twFL%4*a)+00ug&Ie z+^#gke4T2u9%sJd@JhYa%-wdY4VPyYTeXr`sn=wGLHFwXPOehRc}|VF%ei|M?=}^B z>q@2O-r!EDQY+sQb<276T-mKbk)E5m>UgEwxn-x(%t6XrnO9hIHuFA$d|nH(4PL2v z#jvcvW|fsn6Q1S^=8Ze&%H_Noq^{PhYvp<^Zv@t2vtC_sgLJ9ISKQ)a#S4abz3vs8 z&{&6m2i5|2Yu;VRIMr-a8{BOKCOo(+kj>D`oVna(7b_*Nl$?2bIP=cH#Z?L_%s!2& z1)XW|PY3ugmRRqp&f(ly zJ5sIOaVZS{uGC8o_F%5QNW&t^n$2DIa+Sp}aIwypbJMFcxwZT(r4$7}T8^@k0)Q$s z$PQa-H9gE0TI1ywT!4X`L%QI7n9(2h<%X0^}9V)t5tvg0C?nB#60`gp~~ z&P*0GF#6g?(eJh##+{l6DPS^1@xLz&mi6Iov%&xnWvX^29(0&6+UicJDDb<^+M~)qxJ$Yn*_1R~N z&zyM5Etj7X`1Gj|9nUt_0=rnO)GA)FcoMs07&}QFRx|J~3;)_%#N?k1V*%Q+xa+le zt)$96#k&#q=@?u*Y^Owf&c(QM^XU6LUJm=?)@PF>&SW8Gt={W>HVB zeQ~09{JRksDaxv~mK$ri8k1#zhVk+S-vR9iObX}Y*wx!{^i)2D&%2__Zj7cwwCAz$ z8g|D}J0trHf(LifD0R}3`VhM4p}wxjF8a!#F1m6&M{}ne3w|u!BdSfs_4kEU1#D0) z2L^uTxlMXw*(qNc&>Iju58w~*R)Y!`i$SJX6jU3Yhl@pk@T&ZhDi&FPy;Lmn$1qna zJ|zc!vLT)s1?H<_D0wP2=M?NJ3Ri z6oHIcG9eQ8vP+G}nV*Os%}`Cw&=(LO-V4!~x~?+yj>b=Wny(^%Q2<1bPdYwnl0*<; zKvH24+Ba*jMQII4`{gigB0ausp2wtTG4sBvDnM9dZoYb71JMPEiZ!2C-^VHwZQ)yp z`J@|v5-#nnK=kU%4Ir)yRl%3!Qxd5)Z#%#Z=P@cGBEA(v4eYDHB<2+|nxdHuAk#au za7H#l9Hsz;*rSer!u6m!s@ZBgD?mFW7J<4_u;+lMz36xjQZD3`1Ko4Vd=JjWfmC^% zsPa;RhWOe#N)u{4mGJKcSI7vBW<`P}0SEALR0+wH)^cI_z$G++)i1e^j6B02tTn(` zm{A`|q3^8*FqZdjS4u*Nh-!q@6TBr%bKvPqEu7;lSFgo?I2Jkt@^5+^=3fIjRHxci z$c5Vu#~hjsw^UhNqXN9OMwCBD0hJZvqh`C(0mgA!RhajORu1K+YxP9L{OpG(opDbK zjyObQVH^-=QdgUmdE{SGFx!fdAO^9#F380(yc{1yI3W5P5#bnZr$zPpak>R=A$@=)|C#-p@&*H(-;62ssfNnb5cp* zx(a0_oA@Ci#zC|8GD$+`6*27I1IEpNh*RJ}ll)PaHdBnDHU2>#4}0OI>;xIDn_M+K0QwN+bdXXIEy zCcrk(h_=wn8oNO(@UC+-*za^uCvW?SuF2Y(F~y4BiAO&XmFqRGYzlk_`j2 z9SIC%y`10c<=jv>S*Up2;cGcyhux=0X(Pcb)FRY{QU;ihYSk@;fRO}>Cd}BHWc3of zpWyl^FW?bL$rJ+7qws!M0J49`r$tbAqX!

Ps@1BwxV8BXM$#L3tBX*w?)7GN4a? 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 z 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Μxwy3 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%0A@Q#J2EqXCQ zYycJ_;G^3$UStl1;Civ}QO%N?f%!>hABL9jqQ{NFMXc;Y%|oQZ9PN>7 zOYkwydjOf6QH{ePR&Xf56!KW))uzE7?i#Br8(w=oUxMA_^oAB*80Rm9A$1#7X;GfV_MX4-d#}-$306_-x0hyK=j2(o&dr5YluaGZ-KkWM zb}VOg?t4QzvXAp&z8A^AEPQulLdDX$k+G*Wf`8n|*RvbU|Ee+DH<8>oSC1*W!=sgj zrSIv+5r0(Afcs0s%2*_L`Ys@lFEo05cEr%ChtQ#BGwtJvMxqebIPgS&OK5CJyHy!- zHE#4Aca6ri{nc3YW~k>6xQd*r(-Ia>hvC^|iWe23T1*}3yim^_v9n9(i96qhPXECp zFGgLj;hbJQ(c(H0)uayR)h(XgK6XAYo(+Nr3xyS1-FG zaCK5MijoVXGe^jfNuh)*9%kBvn-Qq<_BbktPByD3(Na{}Oo@q&=306yNG> z)1n;Qcl?vN-Q>;8y5~z%mD>^6NE1n14dJ$8(3Nxl&EBuqcfV4L2i8l|GqeCk(^FC! zS>$W06$f`&x9^b!Fih;X5&SB=G#euX>4W&xH>ID|RZ)>}K;s?MNAU-m7)1I-*gS~& z&#SAsKZ^4fcht={rIAaGA|iS>6Y75@oX@9ri_j94eiJx$B54NKC`>xv!R^Gfx@~ROGf)9k~2P>_VvgD@5XR_zX8bA9vfxvyjUbl*Vtcvs}F5;!n zwX`7MhFm1RRUzacCI~Yz*6_y*-)+u8A_IjQF6Z+bgR7`pzTT- z3SL)8$bpLN!!Hw`>?yeM%ykv`>t%-Et?_@{;GdCU9qL+FX5XMJaRMs7J7C1xE zSLlk5+G#CN@B_b_<%8@LtEGCdpt5qeRN)(GKon5j^CNrGW4J#_w>aPh<$6vr*0TLl z88))F7t28OopR1egM~JH=(KiGzRS?M{75J1=CIVBs6@zo(`T zP1goR0zqC#w+6d2wtSz>&~g=uD{mmi1%H{{V%|u*-@gB%?W}!u_`Z4>3`ePQ5tT%Q zs6Oo))!r30VV_TFJHT`vBW+-unG|6DEHKZWyX(-#$)JvH}+P1d5-#gf2?|VwqfAaGV?Q*))7Od~37& z&X=Q$cMv$yYRe~4&sx#>diVTCNUp%fpTtJ#*Q2QS2jc%<3}`})kPUu{frtMC1J;!g zXh4Owls$ojYehlZv^hH-f-pTK9F{PeVFZb!ABL1L2Bn`lJsPYdtWu1nBqqErRJPwn zj4lb5i40yWxdoOb_sd`knAvooPjUdV;Afy3*{M!JaL%9?Rq*&Apl{ngu@nRUn`R&=F22n)8J~V zA61^vu8Vk@QyY|d8OZq1j?Mgzj~GLH--vY_UG0>oSk0C&kqu#uT23a)bLO6nk2<}! zuG>hLI|{Ro*!ba2F`H^LyJ~D9U5i(KBr+1dQUg=EVM}wXRO|2>#x%w}Q@g4HEVE&ssaC)lPk8H8c z0t-t{W7=bTO30}DWw5NdY+QJ{=Oj|I)SyajWbtHTGeW=8dscXA94^uXQNWk14Y|!U zW#Z%sdU#$Ml~#I4wW9b-%H+*<3GC@Gv7hc)4=3Atℜr#Br#dc`vvwBbjro|4RI4 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