| 查看: 1639 | 回复: 7 | ||
markwu4铜虫 (著名写手)
|
[求助]
请有comsol license的人提供我Knowledgebase 103/952 已有2人参与
|
|
有license的人请提供我Knowledgebase 103, 952内容 http://www.comsol.com/support/knowledgebase/103/ http://www.comsol.com/support/knowledgebase/952/ 我算出负的浓度 听说里面有一些技巧可以解决这类问题 |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
上海工程技术大学【激光智能制造】课题组招收硕士
已经有6人回复
带资进组求博导收留
已经有11人回复
自荐读博
已经有5人回复
求个博导看看
已经有16人回复
上海工程技术大学张培磊教授团队招收博士生
已经有4人回复
求助院士们,这个如何合成呀
已经有4人回复
临港实验室与上科大联培博士招生1名
已经有9人回复
写了一篇“相变储能技术在冷库中应用”的论文,论文内容以实验为主,投什么期刊合适?
已经有6人回复
最近几年招的学生写论文不引自己组发的文章
已经有11人回复
中科院杭州医学所招收博士生一名(生物分析化学、药物递送)
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
comsol里面AC/DC模块-----Magnetic Fields(mf)仿真
已经有3人回复
地质地球所管理部门与仪器技术研发人员招聘启事
已经有0人回复
中国科学院地质与地球物理研究所 招聘
已经有0人回复
2楼2014-10-14 09:48:38
markwu4
铜虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 14530.5
- 红花: 2
- 帖子: 1311
- 在线: 254.2小时
- 虫号: 2301321
- 注册: 2013-02-26
- 专业: 电化学
3楼2014-10-14 16:05:33
albertwowwow
木虫 (小有名气)
- 应助: 80 (初中生)
- 金币: 3804.6
- 散金: 20
- 红花: 12
- 帖子: 211
- 在线: 83.4小时
- 虫号: 3292789
- 注册: 2014-06-26
- 性别: GG
- 专业: 煤炭地下开采
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
markwu4: 金币+10, ★★★★★最佳答案, 谢谢 因为一半已经分给第一个应助者 2014-10-16 06:48:48
markwu4: 金币+10, ★★★★★最佳答案, 谢谢 因为一半已经分给第一个应助者 2014-10-16 06:48:48
|
Description Stationary models with high reaction rates, Ri, or more generally, large source terms, may result in convergence problems. You can for instance get error messages such as "No convergence, even when using the minimum damping factor", "NaN repeatedly found in solution", or "Error: Failed to find a solution". Now what could you do to get around this problem? Try to solve the problem using reduced source terms, and then gradually increase them, using the previous solution when solving, until you reach the solution to your original problem. The following approach uses the parametric solver to gradually increase the source term. COMSOL Multiphysics 4 and later Multiply the reaction (source) term (Ri) by a multiplication factor variable, for example "k". Click the Stationary node and select the Auxiliary sweep (in version 4.4) or Continuation (in earlier versions) check box. Enter k as the Sweep parameter In Parameter values, enter a range of increasing values, starting at a low value and increasing to unity, for example "1e-3 1e-2 1e-1 1". Click Compute. COMSOL Multiphysics 3.5a and earlier Multiply the reaction (source) term (Ri) by a multiplication factor variable, for example "k". In the *'Solver Parameters** dialog box, select the Parametric Solver and specify Name of Parameter to that of the multiplication factor, k. Enter the List of Parameter Values as a range of increasing values, starting at a low value and increasing to unity, for example "1e-3 1e-2 1e-1 1". Click OK. Click Solve. COMSOL Multiphysics will now start to solve the problem using the first multiplication factor. Then, if that works, the solution will be used as the initial guess for the next parameter value. This process will continue until the last parameter value is reached. Because you specified the last parameter value to be unity, the last solution will correspond to your original problem formulation. Use the time dependent solver. By making the problem time dependent, you usually get a smoother convergence. COMSOL Multiphysics 4 and later Right-click the Model node and select Add Study. Select Time Dependent and click Finish. In the Times edit field, enter a range of times to solve for, for example "0 1e3". Click Compute. COMSOL Multiphysics 3.5a and earlier Open Solver Parameters. Select the Time dependent solver and specify a range of Times to solve for, for example 0 1e3". Click OK, then Solve. Make sure to solve the problem for large enough times, such that the solution does not vary any longer. This implies that the solution has reached steady-state. Thus, COMSOL Multiphysics has calculated the stationary solution! If the solution process never gets past t = 0, see Solution 964 for more information. If none of the previous methods would help, try using them in combination with refining the mesh in regions where the source term is large. 这个是103的 |
4楼2014-10-16 06:14:44
albertwowwow
木虫 (小有名气)
- 应助: 80 (初中生)
- 金币: 3804.6
- 散金: 20
- 红花: 12
- 帖子: 211
- 在线: 83.4小时
- 虫号: 3292789
- 注册: 2014-06-26
- 性别: GG
- 专业: 煤炭地下开采
【答案】应助回帖
|
Numerical errors The most common reason for negative concentrations is numerical noise: when the species concentration approaches zero, the numerical noise becomes significant in comparison to the concentration. If you are seeing negative concentrations of very small magnitude, numerical noise is probably the cause. In a pure convection-diffusion problem, the scale of the concentration does not matter, so in order to avoid the problem, you can add an arbitrary baseline concentration to keep the resulting overall concentration above zero. However, with a reaction term which depends on the concentration, the scale and origin do matter, which means that you need to think of other ways to keep the concentration strictly positive. Discontinuous concentrations Another common cause for slightly negative concentrations is a discontinuity in space or time, for instance in the initial condition. As an example, consider the one dimensional time dependent Convection and Diffusion equation where the convection is in the positive x-direction (i.e. the direction vector u=1), with a uniformly zero initial condition, and boundary conditions which set the concentration at the end nodes to one and zero respectively. The physical interpretation of this PDE is an initially sharp, gradually diffusing front moving in the positive x-direction. However, for the default shape function (second order Lagrange), only continuous functions are admissible as FEM solutions, for which reason the discontinuous initial value is modified before the time-iterations can begin. This often results in a small dip in the solution for t=0, and in the above example, the concentration will locally be slightly negative at t=0, as shown in the figure below. Solutions to the time-dependent Convection and diffusion equation at times t=0, 0.01, 0.1, 0.2, 0.3. This type of behavior can also result in wildly oscillating solutions and convergence problems. This problem can be avoided by using one of COMSOL Multiphysics's built in smoothed step functions in order to smooth out the initial discontinuity in a controlled manner. For example, in the Convection and Diffusion problem described above, you could, instead of the uniformly zero initial condition, use a smoothed step transition as the initial condition in order to avoid negative values for concentration at t=0. For more information please refer to Knowledge Base solution 905. Incorrect reaction term Usually a significantly negative concentration (i.e. not noise around zero) indicates that the underlying mathematical model does not correctly describe the physics. In this case "fixing" the numerics does not take care of the problem. One potential cause is that you have a constant sink in your reaction term, which is an approximation that only works for large concentrations. When the concentration reaches zero, the reaction term continues to consume the species, finally resulting in negative concentration. In order to avoid this problem you need to make sure that your reaction rate is such that when the concentration of the species approaches zero, then so does the species sink. This can be achieved for instance by writing max(eps^2,Q). eps is an internal COMSOL constant that is a very small number in the order or 10-15. This type of expression is also good if you want to avoid Q being 0, for example if you apply the logarithm to it somewhere, or if the symbolic derivative runs a risk of containing division by zero. Remember that COMSOL symbolically differentiates all expressions that contribute to the Jacobian. Mesh resolution One other thing that can be indicated by significantly negative concentrations is the lack of mesh resolution. The resulting convergence problems are often the underlying issue when negative concentrations are observed in high convection regimes (high Peclet number) and in those with large reaction terms or fast kinetics (high Damkohler number). In Knowledge Base entry 103 a few tricks are presented which may alleviate these types of problems without extensively refining the mesh. It can also be useful to investigate whether the negative concentration problem gets better or worse with mesh refinement. If better, then you know in which direction to go. If worse, then the physics of the model probably need to be checked. Formulate logarithmic concentrations A nice way of eliminating mesh resolution problems and negative dips is to use the logarithm of the concentration and not the concentration itself as the dependent variable. The reason for this is that a linearly varying mesh can sometimes not capture the exponential behavior of the concentration changes. In addition, modeling the logarithm of the concentration ensures that the real concentration can never become negative during the solution process. 这个是192的 |
5楼2014-10-16 06:15:31
6楼2015-03-20 22:06:42
小帆远航
木虫 (正式写手)
- 应助: 11 (小学生)
- 金币: 3953.7
- 散金: 20
- 红花: 4
- 帖子: 420
- 在线: 124.5小时
- 虫号: 3303719
- 注册: 2014-07-02
- 性别: GG
- 专业: 机械结构强度学

7楼2015-07-08 20:10:53
|
Solution Number: 952 Title: Avoiding negative concentrations [Requires COMSOL Access] Platform: All Platforms Applies to: All Products Versions: All versions Categories: Solver, Physics Keywords: convergence negative concentrations Problem Description Why do I get negative values of the concentration in my diffusion, convection and reaction model? Why do I see values that go below, or above, their lowest, or highest, possible values based upon the boundary conditions applied for problems involving diffusion and convection? It is clearly unphysical. Solution There are several possible reasons for, and ways to avoid the issue of over- and under-shoot of the solution: Numerical Errors A common reason is numerical noise: For example, when the variable for concentration approaches zero, the numerical noise may become significant in comparison to the value (which is close to zero). If you notice negative concentrations of very small magnitude, numerical noise is probably the cause and does not affect the problem much in diffusion/convection problems without reactions. Reacting Domains: Use Danckwerts inflow type If you have an Inflow condition at a domain containing a chemical reaction, or a domain with reactions on the walls, use Boundary Condition Type: Flux (Danckwerts), available in the Inflow settings. This inflow condition type is designed to avoid negative oscillations and also to speed up the solution of reacting flow problems. Danckwerts. For an example how to use this, see the Separation Through Dialysis example, and also the file provided for download below. Discontinuous Boundary and Initial Conditions: Smoothen the Settings Another cause for locally slightly negative concentrations is a discontinuity in space or time, for instance in the initial condition. As an example, consider the one dimensional time dependent Convection-Diffusion-Reaction equation The initial condition is zero concentration within the domain and the boundary conditions are set to 1 and 0 concentration at the left and right boundary, respectively. The physical interpretation of this is an initially sharp, gradually diffusing front moving in the positive x-direction. However, for finite element shape functions (second order Lagrange), only continuous functions are admissible as solutions, for which reason the discontinuous initial value is modified before the time-iterations can begin. This often results in a small dip in the solution for t=0. The dip traverses to the first time steps too. The concentration will locally be slightly negative at t=0, as shown in the figure. Negative concentrations Figure 1: Solutions to the time-dependent diffusion problem with a boundary condition at the left (c=1) that creates a discontinuity with the initial condition (c=0) at t=0. The finite element method gives rise to a swing below zero in the leftmost element. The dip close to t=0 sometimes results in oscillations and convergence problems. This problem can be avoided by using one of COMSOL Multiphysics's built in smoothed step functions smooths out the initial discontinuity in a controlled way. For instance, in the example above, you could, instead of the uniform zero initial condition, use a smoothed step transition as the initial condition. For more information please refer to Solution 905: Smoothed step transitions. Condition the Reaction Term to be Larger than Zero for Concentrations Approaching Zero A significant negative concentration often indicates that the underlying mathematical model does not correctly describe the physics. In this case the approach mentioned above does not take care of the problem. One potential cause is that you have a constant sink in your reaction term, which is an approximation that only works for large concentrations. When the concentration reaches zero, the reaction term continues to consume the species, finally resulting in negative concentration. This can be avoided by making sure that your reaction rate is such that when the concentration of the species approaches zero, then so does the species sink. This can be achieved for instance by writing max(eps^2,Q). eps is an internal COMSOL constant that is a very small number in the order or 10-15. This type of expression is also helpful if you want to avoid Q being 0, for example if you apply the logarithm to it somewhere within the geometry, or if the symbolic derivative runs a risk of containing division by zero. Make Sure the Mesh Resolves the Problem Insufficient mesh resolution can result in dips below zero. Convergence problems are often the underlying issue when negative concentrations are observed in high convection regimes (high Peclet number) and with large reaction terms or fast kinetics (high Damköhler number).It can also be useful to investigate whether the negative concentration gets better or worse with mesh refinement. If, better the problem is most likely mesh related. If worse, it is probably the mathematical model that causes the problem. In Knowledge Base solution 103 a few tricks are presented which may alleviate these types of problems without extensively refining the mesh. Note: The Danckwerts inflow condition requires any one of the add-on modules Chemical Reaction Engineering Module, Batteries & Fuel Cells Module, Corrosion MOdule, Electrodeposition Module, Electrochemistry Module, or the Subsurface Flow Module Module. |
8楼2015-11-10 21:41:56







回复此楼
tang6920