Hi All,
Hope you are great. I am a little bit confused about writing my formulation in polar coordinates with C++. I am trying to write the following expressions in my code as essential boundary conditions for displacement:
u_{1} = \frac{K_{I}}{2\mu} \times \sqrt{\frac{2\times r}{\pi}} \times \cos(\frac{\theta}{2}) \times (1-2\nu + \sin^{2}(\frac{\theta}{2}))
u_{2} = \frac{K_{II}}{2\mu} \times \sqrt{\frac{2\times r}{\pi}} \times \sin(\frac{\theta}{2}) \times (2-2\nu - \cos^{2}(\frac{\theta}{2}))
The way that I tried to write it (only u_{1}) is given as below:
x = SpatialCoordinate(mesh)
r = Expression('sqrt(x[0]*x[0]+x[1]*x[1])', degree = 2)
thetta = Expression('atan2(x[1],x[0])', degree = 2)
BoundaryU1 = Expression('K1/(2*mu)*sqrt((2*r/pi)*cos(thetta/2)*(1-2*nu+sin(thetta/2)**2))', r = r, thetta = thetta, degree = 2)
Running the code gave the following error:
File "/usr/lib/petsc/lib/python3/dist-packages/dolfin/function/expression.py", line 400, in __init__
self._cpp_object = jit.compile_expression(cpp_code, params)
File "/usr/lib/petsc/lib/python3/dist-packages/dolfin/function/jit.py", line 158, in compile_expression
expression = compile_class(cpp_data, mpi_comm=mpi_comm)
File "/usr/lib/petsc/lib/python3/dist-packages/dolfin/jit/jit.py", line 173, in compile_class
raise RuntimeError("Unable to compile C++ code with dijitso")
RuntimeError: Unable to compile C++ code with dijitso
Any help regarding this would be highly appreciated.
Thanks,
Ben