Итерация коэффициентов в линейной задаче ФениксаPython

Программы на Python
Гость
Итерация коэффициентов в линейной задаче Феникса

Сообщение Гость »

Здравствуйте, я хотел выполнить итерацию для решения линейных задач в Fenics, но она продолжает давать сбой, я не могу понять, почему.
Вот код, который я пробовал:

Код: Выделить всё

 for (i,t) in enumerate(tps):
print("increment", i+1"time increment", t)
alpha=-5*t**2+2*t+2

f = fem.Constant(msh, default_scalar_type((0, -F)))
T = fem.Constant(msh, default_scalar_type((0, 0)))
a = inner(E_young*sigma(u),epsilon(v))*dx
L = alpha*(ufl.dot(f, v)*dx +ufl.dot(T,v)*ds)
Compute solution
u = fem.Function(V)

problem = LinearProblem(a, L, bcs=[bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"})

uh=problem.solve()
s = sigma(uh) - 1. / 3 * ufl.tr(sigma(uh)) * ufl.Identity(len(uh))
von_Mises = ufl.sqrt(3. / 2 * ufl.inner(s, s))
V_von_mises = fem.FunctionSpace(msh, ("DG", 0))
stress_expr = fem.Expression(von_Mises, V_von_mises.element.interpolation_points())

stresses = fem.Function(V_von_mises)
stresses.interpolate(stress_expr)
vtk_d.write_function(uh,i)
vtk_e.write_function(stresses,i)
И сообщение об ошибке, которое я получил:
приращение 1 t = 0
Исключение игнорируется в:
Traceback (последний последний вызов):
Файл "/usr/lib/petsc/lib/python3/dist-packages/dolfinx/fem/petsc.py", строка 627, в del
self._solver.destroy()
^^^^^^^^^^^
AttributeError: у объекта «LinearProblem» нет атрибута «_solver»
инкремент 2 t = 1
Traceback (последний вызов последний):
Файл /usr/lib/python3/dist-packages/spyder_kernels/py3compat.py:356 в compat_exec
exec(код, глобальные значения, локальные значения)
Файл ~/Téléchargements/élasticité/upperboundlimit.py:130
problem = LinearProblem(a, L, bcs=[ bc], petsc_options={"ksp_type": "preonly", "pc_type": "lu"})
Файл /usr/lib/petsc/lib/python3/dist-packages/ dolfinx/fem/petsc.py:589 в init
self._A = create_matrix(self._a)
Файл /usr/lib/petsc /lib/python3/dist-packages/dolfinx/fem/petsc.py:139 в create_matrix
return _cpp.fem.petsc.create_matrix(a._cpp_object)
RuntimeError: Невозможно создать шаблон разреженности. Форма не билинейна.

Подробнее здесь: https://stackoverflow.com/questions/781 ... ar-problem

Вернуться в «Python»