Note: This discussion is about an older version of the COMSOL Multiphysics® software. The information provided may be out of date.
Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.
Iterative treatment of integration couplings or other implicit constraints?
Posted 21 juil. 2011, 19:33 UTC−4 Materials, Modeling Tools & Definitions, Parameters, Variables, & Functions, Studies & Solvers Version 4.1 5 Replies
Please login with a confirmed email address before reporting spam
Hello,
My model has an integration coupling -- one of the boundary conditions for a variable depends on the integration of the same variable over that domain. Of course, this makes the problem less sparse and slows down the calculation immensely. Therefore, I want to try to solve iteratively: Calculate the integral, then hold that fixed and solve the PDE, then re-calculate the integral, then hold it fixed and solve the PDE, etc. But I can't figure out how to do that in COMSOL. Does anyone know? Thanks in advance!
(I'm just doing a stationary solution.)
UPDATE: I realized that this is not just for computational efficiency, I actually want a different answer than you would get in the non-iterative approach. Here's another example:
Solve some ODE in a 1D domain (0,1) with Dirichlet boundary conditions f(0) = f(1) = B.
The self-consistency requirement is that B is determined by the value in the center of the domain: B = f(0.5).
The "iterative method" (which I want) would solve f with B=0, then set B=f(0.5), then solve f with the new boundary condition, etc.
The "direct method" would use global equations and/or extrusion couplings to solve f and B simultaneously.
These sound equivalent, but they actually don't give the same finite-element solution, because in the direct method, there is an extra direct force on the point (0.5) from its "contact" with (0) and (1). In my tests I got kinks in f(x) (discontinuities in the first derivative) at the point (0.5). The iterative method would never give a kink at (0.5), because you're always solving the normal ODE with no extra force at any particular point.
So again the question is: How do I do the iterative approach in COMSOL and get the iterative answer?
(Also, please correct me if I'm misunderstanding anything.)
UPDATE 2: Here are some related threads I found, but they have not led me towards an answer:
www.comsol.com/community/forums/general/thread/7198/
www.comsol.com/community/forums/general/thread/8479/
www.comsol.com/community/forums/general/thread/12701/
My model has an integration coupling -- one of the boundary conditions for a variable depends on the integration of the same variable over that domain. Of course, this makes the problem less sparse and slows down the calculation immensely. Therefore, I want to try to solve iteratively: Calculate the integral, then hold that fixed and solve the PDE, then re-calculate the integral, then hold it fixed and solve the PDE, etc. But I can't figure out how to do that in COMSOL. Does anyone know? Thanks in advance!
(I'm just doing a stationary solution.)
UPDATE: I realized that this is not just for computational efficiency, I actually want a different answer than you would get in the non-iterative approach. Here's another example:
Solve some ODE in a 1D domain (0,1) with Dirichlet boundary conditions f(0) = f(1) = B.
The self-consistency requirement is that B is determined by the value in the center of the domain: B = f(0.5).
The "iterative method" (which I want) would solve f with B=0, then set B=f(0.5), then solve f with the new boundary condition, etc.
The "direct method" would use global equations and/or extrusion couplings to solve f and B simultaneously.
These sound equivalent, but they actually don't give the same finite-element solution, because in the direct method, there is an extra direct force on the point (0.5) from its "contact" with (0) and (1). In my tests I got kinks in f(x) (discontinuities in the first derivative) at the point (0.5). The iterative method would never give a kink at (0.5), because you're always solving the normal ODE with no extra force at any particular point.
So again the question is: How do I do the iterative approach in COMSOL and get the iterative answer?
(Also, please correct me if I'm misunderstanding anything.)
UPDATE 2: Here are some related threads I found, but they have not led me towards an answer:
www.comsol.com/community/forums/general/thread/7198/
www.comsol.com/community/forums/general/thread/8479/
www.comsol.com/community/forums/general/thread/12701/
5 Replies Last Post 2 nov. 2011, 14:17 UTC−4