Solver/Preconditioner for the gauged vector potential formulation (curl curl equation)
4 months ago by
I'm currently working on a nonlinear, Coulomb gauged vector potential formulation (curl curl equation) for three‐dimensional magnetostatics. Gauging is imposed via a penalty term.
Furthermore I'm using H(curl)-conforming edge elements. But I'm facing convergence problems trying to solve the nonlinear variational problem.
The convergence criterion is set to 1e-09 (absolute tolerance). I have tried direct solvers and different combinations of iterative solver/ preconditioners but i was not able to
Varying the penalty parameter also had not that much of an impact on the convergence behavior.
Here is a simplified working example to reproduce the problem:
from dolfin import * # Create mesh and define function space mesh = UnitCubeMesh(10, 10, 10) V = FunctionSpace(mesh, "N1curl", 1) # Dirichlet boundary: def E0_boundary(x, on_boundary): return on_boundary c = Expression(("0.0", "10*x", "0.0"), degree=1) bc = DirichletBC(V, c, E0_boundary) # Define functions du = TrialFunction(V) v = TestFunction(V) u = Function(V) # parameters mu0 = 4.0*pi*1e-7 alpha= 1/mu0 # Magnetic field strength H= 1/mu0*curl(u) # Variational Formulation (in this special case: linear) F = inner(curl(v), H)*dx + alpha*div(v)*div(u)*dx # Compute Jacobian of F J = derivative(F, u, du) # Solve variational problem problem = NonlinearVariationalProblem(F, u, bc, J) solver = NonlinearVariationalSolver(problem) solver.parameters['newton_solver']['absolute_tolerance'] = 1E-9 solver.parameters['newton_solver']['relative_tolerance'] = 1E-35 solver.parameters['newton_solver']['maximum_iterations'] = 10 solver.parameters['newton_solver']['linear_solver'] = 'gmres' solver.parameters['newton_solver']['preconditioner'] = 'hypre_amg' solver.solve()
Does anyone have experience regarding this convergence problem for the gauged vector potential formulation?
I will be grateful for any help.
Community: FEniCS Project
Please login to add an answer/comment or follow this question.