simulationapdl2.0 / simulators /fenics_simulation.py
karthikmn's picture
Create simulators/fenics_simulation.py
e3b871c verified
raw
history blame contribute delete
817 Bytes
from fenics import *
import pyvista as pv
import numpy as np
def run_fenics_simulation():
# Define mesh and function space
mesh = UnitSquareMesh(10, 10)
V = FunctionSpace(mesh, 'P', 1)
# Define boundary condition
u_D = Expression('x[0]*x[0] - x[1]*x[1]', degree=2)
bc = DirichletBC(V, u_D, 'on_boundary')
# Define variational problem
u = TrialFunction(V)
v = TestFunction(V)
f = Constant(-6.0)
a = inner(grad(u), grad(v)) * dx
L = f * v * dx
# Compute solution
u = Function(V)
solve(a == L, u, bc)
# Visualize with PyVista
u_array = np.array(u.vector())
grid = pv.StructuredGrid(mesh.coordinates())
grid.point_arrays['u'] = u_array
plot = grid.plot(show_edges=True, title='FEniCS Simulation Result')
return plot