Skip to content

Commit 7488f4d

Browse files
authored
Merge pull request #41 from ysimillides/master
mshr dependency removed
2 parents 2c4aa86 + d11e26d commit 7488f4d

File tree

4 files changed

+28
-27
lines changed

4 files changed

+28
-27
lines changed

src/FEniCS.jl

+6
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,10 @@ include("jmesh.jl") #this file contains the mesh functions
3636
include("jfem.jl") #this file contains the fem functions
3737
include("jmisc.jl") #this file contains various miscallaneous functions to assist with solving etc
3838
include("jsolve.jl") #this file contains the solver functions/routines
39+
try
40+
pyimport("mshr")
41+
include("fmshr.jl")
42+
catch ee
43+
print("mshr has not been included")
44+
end
3945
end #module

src/fmshr.jl

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
@pyimport mshr
2+
@fenicsclass Geometry
3+
4+
#functions necessary for creating meshes from geometrical objects.
5+
#2D objects below
6+
Circle(centre,radius) = Geometry(mshr.Circle(centre,radius))
7+
Rectangle(corner1,corner2)=Geometry(mshr.Rectangle(corner1,corner2))
8+
Ellipse(centre,horizontal_semi_axis,vertical_semi_axis,fragments)=Geometry(mshr.Ellipse(centre,horizontal_semi_axis,vertical_semi_axis,fragments))
9+
10+
#3d objects below
11+
Box(corner1,corner2) = Geometry(mshr.Box(corner1,corner2))
12+
Cone(top,bottom,bottom_radius,slices::Int)=Geometry(mshr.Cone(top,bottom,bottom_radius,slices))
13+
Sphere(centre,radius) = Geometry(mshr.Sphere(centre,radius))
14+
15+
generate_mesh(geom_object::Geometry,size::Int)=Mesh(mshr.generate_mesh(geom_object.pyobject,size))
16+
17+
+(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__add__](geom_object2.pyobject))
18+
-(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__sub__](geom_object2.pyobject))
19+
*(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__mul__](geom_object2.pyobject))
20+
21+
export Circle,Rectangle,Ellipse,Box,Cone,Sphere,generate_mesh

src/jfem.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ please refer to http://matplotlib.org/api/pyplot_api.html
107107
not all kwargs have been imported. Should you require any that are not imported
108108
open as issue, and I will attempt to add them.
109109
"""
110-
Plot(in_plot::Union{Mesh,FunctionSpace,Function,Geometry};alpha=1,animated=false,antialiased=true,color="grey"
110+
Plot(in_plot::Union{Mesh,FunctionSpace,Function};alpha=1,animated=false,antialiased=true,color="grey"
111111
,dash_capstyle="butt",dash_joinstyle="miter",dashes="",drawstyle="default",fillstyle="full",label="s",linestyle="solid",linewidth=1
112112
,marker="",markeredgecolor="grey",markeredgewidth="",markerfacecolor="grey"
113113
,markerfacecoloralt="grey",markersize=1,markevery="none",visible=true,title="") =fenics.common[:plotting][:plot](in_plot.pyobject,

src/jmesh.jl

-26
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
#These are the commands to define the Mesh class in Julia.
33
#Tests for these can be found in the test_create.jl and test_pycreate.jl
44

5-
#necessary imports for some specific mesh operations.
6-
@pyimport mshr
75

86
@fenicsclass Mesh #https://fenicsproject.org/olddocs/dolfin/1.5.0/python/programmers-reference/cpp/mesh/Mesh.html
97
#are converted automatically by PyCall
@@ -78,33 +76,9 @@ BoxMesh(p0, p1, nx::Int, ny::Int, nz::Int)= Mesh(fenics.BoxMesh(p0,p1,nx,ny,nz))
7876

7977
RectangleMesh(p0,p1,nx::Int,ny::Int,diagdir::Union{String,Symbol}="right") = Mesh(fenics.RectangleMesh(p0,p1,nx,ny))
8078

81-
82-
83-
8479
export UnitTriangleMesh, UnitTetrahedronMesh, UnitSquareMesh, UnitQuadMesh,
8580
UnitIntervalMesh, UnitCubeMesh, BoxMesh, RectangleMesh, Mesh
8681

87-
@fenicsclass Geometry
88-
89-
#functions necessary for creating meshes from geometrical objects.
90-
#2D objects below
91-
Circle(centre,radius) = Geometry(mshr.Circle(centre,radius))
92-
Rectangle(corner1,corner2)=Geometry(mshr.Rectangle(corner1,corner2))
93-
Ellipse(centre,horizontal_semi_axis,vertical_semi_axis,fragments)=Geometry(mshr.Ellipse(centre,horizontal_semi_axis,vertical_semi_axis,fragments))
94-
95-
#3d objects below
96-
Box(corner1,corner2) = Geometry(mshr.Box(corner1,corner2))
97-
Cone(top,bottom,bottom_radius,slices::Int)=Geometry(mshr.Cone(top,bottom,bottom_radius,slices))
98-
Sphere(centre,radius) = Geometry(mshr.Sphere(centre,radius))
99-
100-
generate_mesh(geom_object::Geometry,size::Int)=Mesh(mshr.generate_mesh(geom_object.pyobject,size))
101-
102-
+(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__add__](geom_object2.pyobject))
103-
-(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__sub__](geom_object2.pyobject))
104-
*(geom_object1::Geometry, geom_object2::Geometry) = Geometry(geom_object1.pyobject[:__mul__](geom_object2.pyobject))
105-
106-
export Circle,Rectangle,Ellipse,Box,Cone,Sphere,generate_mesh
107-
10882
function pyUnitTriangleMesh()
10983
pycall(fenics.UnitTriangleMesh::PyObject,PyObject::Type)
11084
end

0 commit comments

Comments
 (0)