Henrik Sönnerlind
COMSOL Employee
Please login with a confirmed email address before reporting spam
Posted:
9 years ago
2016年1月15日 GMT-5 13:15
Hi,
Selecting an iterative solver only defines how you solve the system of linear equations which forms the innermost loop of the Newton method. The choice of direct versus iterative solver should be based on speed vs. memory considerations, numerical conditioning of the matrix etc.
When a problem is nonlinear, the software automatically switches to a nonlinear algorithm (usually a Newton-Raphson method).
A circular dependency error message is something else. A model with a circular dependency is in some way ill formulated. Please see
www.comsol.com/community/forums/general/thread/48995
for a longer discussion on this topic.
Regards,
Henrik
Hi,
Selecting an iterative solver only defines how you solve the system of linear equations which forms the innermost loop of the Newton method. The choice of direct versus iterative solver should be based on speed vs. memory considerations, numerical conditioning of the matrix etc.
When a problem is nonlinear, the software automatically switches to a nonlinear algorithm (usually a Newton-Raphson method).
A circular dependency error message is something else. A model with a circular dependency is in some way ill formulated. Please see
http://www.comsol.com/community/forums/general/thread/48995
for a longer discussion on this topic.
Regards,
Henrik
Please login with a confirmed email address before reporting spam
Posted:
9 years ago
2016年1月26日 GMT-5 09:47
Thank you for the reply Henrik,
Thank you for the explanation of the iterative solver, I have put that back to a direct solver, but that leaves the circular dependency error.
So of the two suggestions offered in the linked thread the first is unfortunately not an option since using the flow velocity to calculate the hydraulic conductivity (to in turn calculate the flow velocity again) is the entire premise of what I intend to do. So I looked at the stress dependent elasticity model and tried to incorporate the weak contribution in the exact same manner to create an intermediate value for dl.u . I switched my model from time dependent to stationary (Even in time dependent it is supposed to trend to a stationary solution anyway, so I can still work with that). Since COMSOL wants an intrinsic permeability (kappa) in in the material properties and my equation solves for hydraulic conductivity I tried to get around this issue by instead of putting what is defined as E0(p) in the example model in my parameters section and used that in turn as the input in my storage model for hydraulic conductivity (I use 'q' by the way and not 'p' because p is already used by pressure). This time however it does not know E0 as an operator when I try to compute. I am suspecting that E0 is some kind of operator in the solid mechanics module that is not present in the darcy module (structural mechanics is a completely unknown field to me). Even if i remove E0 and just leave q there it fails to find q as a variable.
Any suggestions on how to fix this? I feel as if I am very close but just not there yet.
Thank you for the reply Henrik,
Thank you for the explanation of the iterative solver, I have put that back to a direct solver, but that leaves the circular dependency error.
So of the two suggestions offered in the linked thread the first is unfortunately not an option since using the flow velocity to calculate the hydraulic conductivity (to in turn calculate the flow velocity again) is the entire premise of what I intend to do. So I looked at the stress dependent elasticity model and tried to incorporate the weak contribution in the exact same manner to create an intermediate value for dl.u . I switched my model from time dependent to stationary (Even in time dependent it is supposed to trend to a stationary solution anyway, so I can still work with that). Since COMSOL wants an intrinsic permeability (kappa) in in the material properties and my equation solves for hydraulic conductivity I tried to get around this issue by instead of putting what is defined as E0(p) in the example model in my parameters section and used that in turn as the input in my storage model for hydraulic conductivity (I use 'q' by the way and not 'p' because p is already used by pressure). This time however it does not know E0 as an operator when I try to compute. I am suspecting that E0 is some kind of operator in the solid mechanics module that is not present in the darcy module (structural mechanics is a completely unknown field to me). Even if i remove E0 and just leave q there it fails to find q as a variable.
Any suggestions on how to fix this? I feel as if I am very close but just not there yet.
Please login with a confirmed email address before reporting spam
Posted:
9 years ago
2016年1月27日 GMT-5 07:30
Sorry for the double post.
With some rewriting I managed to use an intermediate value for dl.u to calculate intrinsic permeability, to in turn calculate the end result with the help of the linked tutorial. It all works like a charm now. Thank you very much!
Sorry for the double post.
With some rewriting I managed to use an intermediate value for dl.u to calculate intrinsic permeability, to in turn calculate the end result with the help of the linked tutorial. It all works like a charm now. Thank you very much!