i have been struggling to find out what is the equivalent sympy method in Julia. actually i made finite element method solver (numerical method to solve partial differential equation, parabolic, elliptical and hyperbolic in 2D) and it is working fine in python. but, i am facing the speed issue, as this solver contain very large number of string operation i mean string expression. i will mention brief steps involved in solver as follows:

- make string shape functions for each rectangular element in array
- making functional of above string shape function as per Residual Galerkin method
- find jacobian of given physical element in standard rectangular element
- taking differentiation (symbolically and not numerically)–here i am facing problem in julia
- taking integration of each functional element wise (numerically)
- obtaining Stiff, Mass, and Load vectors
- solving matrices equation using linear aljebra
- post processing

end

i want to make same solver in Julia to increase the speed. please help to make solver in Julia.

i am sending some snippet from solver.

def vectorshapes(p):

“”" Return vector shape functions of edges for order p, first all horizontal edges then vertical edges

-return list of touple [(ux,uy)…]

“”"

s,t=symbols(‘s t’)

shape=masterRectShapes(p)# gives Lagrange shape functions in string format containg s and t variables.

HorizontalEdges =[(i+(p+1)*j,i+(p+1)*(j+1)) for i in range(p+1) for j in range(p)]

VerticalEdges =[((p+1)*i+j,(p+1) i+(j+1)) for i in range(p+1) for j in range(p)]*(({shape[i]}

HorizontalEdges.extend(VerticalEdges)

del VerticalEdges

edges=HorizontalEdges

edges=[(f’(2/{pp})

*({diff(shape[j],s)}))-({shape[j]}*({diff(shape[i],s)})))‘,f’(2/{p

*p})*(({shape[i]}

*({diff(shape[j],t)}))-({shape[j]}*({diff(shape[i],t)})))') for i,j in edges]

return edges

here i have to differentiate shape fuction wrt s for x components and wrt t for y components