diff --git a/python/gengeom.py b/python/gengeom.py new file mode 100644 index 00000000..b088a067 --- /dev/null +++ b/python/gengeom.py @@ -0,0 +1,33 @@ +from nglib.meshing import * +from nglib.geom2d import * + +geom = SplineGeometry() +SplineGeometry.Plot = plotgeom +SplineGeometry.ShowPoints = plotpointindex +SplineGeometry.ShowDomains = plotdomainindex + +# Define Points +pi1 = geom.AppendPoint(0,0) +pi2 = geom.AppendPoint(1,0) +pi3 = geom.AppendPoint(1,1) +pi4 = geom.AppendPoint(0,1) + +# Define Segments +geom.AppendSegment(pi1,pi2) +geom.AppendSegment(pi2,pi3) +geom.AppendSegment(pi3,pi4) +geom.AppendSegment(pi4,pi1) + +# Plot Geometry +geom.Plot() + +# Plot Point Index +geom.ShowPoints() +# Plot Domain Numbers +geom.ShowDomains() + +# Set Meshing Parameters +mparam = MeshingParameters() +mparam.maxh = 0.1 + +mesh = geom.GenerateMesh(mparam) \ No newline at end of file diff --git a/python/gengeom_curve.py b/python/gengeom_curve.py new file mode 100644 index 00000000..5c8b3fb0 --- /dev/null +++ b/python/gengeom_curve.py @@ -0,0 +1,36 @@ +from nglib.meshing import * +from nglib.geom2d import * + +geom = SplineGeometry() +SplineGeometry.Plot = plotgeom +SplineGeometry.ShowPoints = plotpointindex +SplineGeometry.ShowDomains = plotdomainindex + +# Define Points +pi1 = geom.AppendPoint(0,0) +pi2 = geom.AppendPoint(1,0) +pi3 = geom.AppendPoint(1,0.5) +pi4 = geom.AppendPoint(1,1) +pi5 = geom.AppendPoint(0.5,1) +pi6 = geom.AppendPoint(0,1) + +# Define Segments +geom.AppendSegment(pi1,pi2) +geom.AppendSegment(pi2,pi3) +geom.AppendSegment(pi3,pi4,pi5) +geom.AppendSegment(pi5,pi6) +geom.AppendSegment(pi6,pi1) + +# Plot Geometry +geom.Plot() + +# Plot Point Index +geom.ShowPoints() +# Plot Domain Numbers +geom.ShowDomains() + +# Set Meshing Parameters +mparam = MeshingParameters() +mparam.maxh = 0.1 + +mesh = geom.GenerateMesh(mparam) \ No newline at end of file diff --git a/python/geom2d.py b/python/geom2d.py new file mode 100644 index 00000000..cdffd337 --- /dev/null +++ b/python/geom2d.py @@ -0,0 +1,10 @@ +from nglib.meshing import * +from nglib.geom2d import * + +geom = SplineGeometry() +geom.Load("square.in2d") + +param = MeshingParameters() +param.maxh = 0.05 + +m1 = geom.GenerateMesh (param) \ No newline at end of file diff --git a/python/init_geom2d.py b/python/init_geom2d.py new file mode 100644 index 00000000..4e0f528e --- /dev/null +++ b/python/init_geom2d.py @@ -0,0 +1,73 @@ +print ("Hello from init.py") +# import ngfem_cf + +def mydir(x=None): + if x==None: + return [] + else: + return [i for i in dir(x) if not '__' in i] + +def execfile(fname): + exec(open(fname).read()) + + +def plotgeom(self): + coords = self.PlotData() + import matplotlib.pyplot as plt + plt.plot(coords[2],coords[3]) + plt.axis('equal') + plt.xlim(coords[0]) + plt.ylim(coords[1]) + plt.show(block=False) + +def plotpointindex(self): + pi = self.PointData() + import matplotlib.pyplot as plt + for i in range(0,len(pi[0])): + plt.text(pi[0][i],pi[1][i],str(pi[2][i])) + plt.show(block=False) + +def plotdomainindex(self): + segdata = self.SegmentData() + import matplotlib.pyplot as plt + for i in range(0,len(segdata[0])): + if segdata[0][i][2]: + horr = 'right' + horl = 'left' + else: + horr = 'left' + horl = 'right' + if segdata[0][i][3]: + vertr = 'top' + vertl = 'bottom' + else: + vertr = 'bottom' + vertl = 'top' + + plt.text(segdata[0][i][0],segdata[0][i][1],str(segdata[2][i]),horizontalalignment=horl,verticalalignment=vertl) + plt.text(segdata[1][i][0],segdata[1][i][1],str(segdata[3][i]),horizontalalignment=horr,verticalalignment=vertr) + plt.show(block=False) + + +def startConsole(): + import code + try: + import readline + import rlcompleter + readline.parse_and_bind("tab:complete") # autocomplete + except: + try: + import pyreadline as readline + import rlcompleter + readline.parse_and_bind("tab:complete") # autocomplete + except: + print('readline not found') + vars = globals() + vars.update(locals()) + shell = code.InteractiveConsole(vars) + shell.interact() + + +startConsole() + +