On the error in multivariate polynomial interpolation C. de Boor
- 格式:pdf
- 大小:109.37 KB
- 文档页数:10
comsol错误提⽰及解决⽅法Diagnostics : Error MessagesError MessagesThis section summarizes the most common error messages and solver messages generated by COMSOL Multiphysics. All error messages are numbered and sorted in different categories according to the following table.TABLE 2-1: ERROR MESSAGE CATEGORIESNUMBERS CATEGORY1000–1999 Importing Models2000–2999 Geometry Modeling3000–3999 CAD Import4000–4999 Mesh Generation5000–5999 Point, Edge, Boundary, and SubdomainSpecification6000–6999 Assembly and Extended Mesh7000–7999 Solvers8000–8999 Postprocessing9000–9999 GeneralFor error messages that do not appear in the following lists, contact COMSOL’s support team for help.2000–2999 Geometry ModelingTABLE 2-2: GEOMETRY MODELING ERROR MESSAGESERRORNUMBERERROR MESSAGE EXPLANATION2118 Negative output fromempty inputIncorrect Geometry M-file.2119 Non scalar output fromempty inputIncorrect Geometry M-file.2120 Normal directions areinconsistentIncorrect input data from STL/VRML import.2138 Self intersections notsupported Curves resulting in self-intersections are not supported.2140 Singular extrusions notsupportedError in input parameters.2141 Singular revolutions notsupported The revolved mesh has a singularity at the z axis. If possible, create the cylinder using a 3D primitive or by revolving the geometry before meshing.2146 Subdomain mustbounded at least fourboundary segmentsIncorrect geometry for mapped mesh.2147 Subdomain must boundone connected edgecomponent onlyIncorrect geometry for mapped mesh. 2190 Invalid radius or distance Incorrect input parameters to fillet/chamfer.2197 Operation resulted inempty geometry object Geometry operation resulted in an empty geometry object which is not allowed. Make sure an empty geometry object is not created.2209 Geometry to revolve maynot cross axis ofrevolution The axis of revolution and the geometry intersect. Check the dimension of the geometry and the definition of the axis for the revolution.4000–4999 Mesh Generation TABLE 2-3: MESH GENERATION ERROR MESSAGESERRORNUMBERERROR MESSAGE EXPLANATION4002 A degeneratedtetrahedron wascreated The mesh generator ran into numerical difficulties while creating tetrahedrons with a size based on user-controlled parameters. Causes could be too small and narrow subdomains relative to the rest of the geometry or exceedingly short boundary segments. Try to avoid creating small and narrow subdomains and very short boundary segments that are adjacent to longer boundary segments.4003 A degeneratedtriangle wascreated The mesh generator ran into numerical difficulties while creating triangles with a size based on user-controlled parameters. Causes could be too small and narrow subdomains relative to the rest of the geometry or exceedingly short boundary segments. Try to avoid creating small and narrow subdomains and very short boundary segments that are adjacent to longer boundary segments.4012 Cannot createmapped mesh forthis geometry The geometry does not fulfill the topological requirements for a mapped mesh. Changes in input parameters or further subdomain division can possibly help this.4026 Failed creatematching edgediscretizations Cannot make mapped mesh with the given input parameters.4029 Failed to insertpoint Problems inserting point at given coordinate. Manually inserting a point there may help.4031 Failed to respectboundary elementon geometry edge The mesh generator failed in making the elements compatible with the geometry object’s edges. The reason for this could be that the face mesh is too coarse or contains adjacent elements with large differences in scale. Another reason can be that some subdomains in the geometry are too narrow with respect to the rest of the geometry.4032 Failed to respectboundary elementon geometry faceSee Error message 4031.4044 Internal errorboundaryrespectingSee Error message 4031.4054 Invalid topology ofgeometry The geometry object cannot be used for creating a mapped mesh. It must be subdivided.4055 Isolated entitiesfound Entities that are not connected to the boundaries of a geometry objects is found. The mapped mesh generator does not support such isolated entities.4119 Singular edgedetectedThe geometry object contains an edge of zero length. 6000–6999 Assembly and Extended MeshTABLE 2-4: ASSEMBLY AND EXTENDED MESH ERROR MESSAGESERRORNUMBERERROR MESSAGE EXPLANATION6008 Circularvariabledependencydetected A variable has been defined in terms of itself, possibly in a circular chain of expression variables. Make sure that variable definitions are sound. Be cautious with equation variables in equations.6063 Invalid degreeof freedomname The software does not recognize the name of a degree of freedom. Check the names of dependent variables that you have entered for the model. See also Error 7192.6139 Wrong numberof DOFs ininitial value The current solution or the stored solution has for some reason the wrong number of degrees of freedom, sometimes due to a change of the implementation of elements between two versions of the software. To overcome the problem, go to the Initial value area in the Solver Manager, and select Initial value expression. Then the initial value expressions is evaluated without using the current or stored solution.6140 Wrong numberof dofs inlinearizationpoint The current solution or the stored solution has for some reason the wrong number of degrees of freedom, sometimes due to a change of the implementation of elements between two versions of the software. To overcome the problem, go to the Value of variables not solved for and linearization point area in the Solver Manager, and click the Use setting from Initial value frame button or the Zero button.6163 Divide by zero A property in the model contains a divisor that becomes zero.Check to make sure that division by zero does not occur inany expression or coefficient.6164 Duplicatevariable name A variable name has two different definitions. For instance, the same variable name appears two or more times for a dependent variable, a constant, an expression variable, or acoupling variable. Remove or rename one of the variables.6170 Failed toevaluatevariable An error occurred when evaluating the variable. The domains in which COMSOL Multiphysics tried to evaluate the variable are indicated. Also, the error message shows the expression that COMSOL Multiphysics was unable to evaluate. Make sure that you have defined the variables correctly in the indicated domains.6176 Attempt toevaluate reallogarithm ofnegative number An expression contains log(a), where a becomes negative or zero. To make the logarithm well-defined, make sure that a>0. Often, a becomes only slightly negative (due to approximations in the solution process). Then, a possible solution is to use log(a+e), where e is a small constant. Another remedy is to use log(abs(a)). If you do want to have a complex logarithm, go to the Advanced tab of Solver Parameters and select the Use complex functions with real input check box.6177 Matrix has zeroon diagonal When the equations have a structure such that the stiffness matrix (Jacobian matrix) has zeros on the diagonal, it is not possible to use the following linear systemsolvers/preconditioners/smoothers: all versions of SOR and Diagonal scaling (Jacobi). Try the Vankapreconditioner/smoother instead.6188 Out of memoryduring assembly The software ran out of memory during assembly of the finite element model. See error 7144 regarding generalmemory-saving tips.6194 Attempt toevaluatenon-integralpower ofnegative number An expression contains a^b, where a becomes negative and b is not an integer. To make the power well-defined, make sure that a>0. Often, a becomes only slightly negative (due to approximations in the solution process). Then, a possible solution is to use (a+e)^b, where e is a small constant. Another remedy is to use abs(a)^b. If you do want to have a complex number a^b, go to the Advanced tab of Solver Parameters and select Use complex functions with real input.6199 Attempt toevaluate realsquare root ofnegative number The model contains a sqrt (square root) function that takes the square root of a negative number. Either make sure that the square-root argument is nonnegative or select the Use complex functions with real input check box on the Advanced tab in the Solver Parameters dialog box.6204 Undefinedfunction call An expression contains an undefined function name. Check that the function name is correct and that the function is in COMSOL Multiphysics’ or MATLAB’s path.6206 Internalevaluation error:unexpected NaNencountered Not-A-Number (NaN) appears unexpectedly. A possible cause is improperly defined coupling variables. As a first step, check that the definitions of the source and destination domains of any coupling variables or periodic boundary conditions are correct.6245 Unsupportedintegration order Integration order is too high. For triangular elements the order can be up to 10, and for tetrahedral elements the order can be up to 8. Find more information in the section “Numerical Quadrature” on page 505.6259 Failed toevaluatevariableJacobian An error occurred when evaluating the Jacobian of the indicated variable. The domains in which COMSOL Multiphysics tried to evaluate the variable are indicated. Make sure that you have defined the variable correctly in the indicated domains.7000—7999 Solvers and Preconditioners TABLE 2-5: SOLVER ERROR MESSAGESERRORNUMBERERROR MESSAGE EXPLANATION7001 Adaption onlyimplemented for It is only possible to use adaptive mesh refinement in 3D for models using tetrahedral mesh elements. tetrahedral meshes Either turn off adaptive mesh refinement or switchfrom brick or prism elements to tetrahedral elements.7002 Adaption onlyimplemented fortriangular meshes It is only possible to use adaptive mesh refinement in 2D for models using triangular mesh elements. Either turn off adaptive mesh refinement or switch from quadrilateral elements to triangular elements.7022 Segregated solver stepsdo not involve all ofsolcomp The groups for the segregated solver do not include all dependent variables. One reason for this error could be that some boundary conditions (for example, for laminar inflow in fluid-flow models) add dependent variables that are not initially in the model.7043 Initial guess leads toundefined function value This error message usually appears when you have set up an expression that returns “not a value,”that is, it is undefined, for the initial condition you have set. For instance, this happens if an expression contains a divisor that becomes zero or a logarithm of a negative value. To solve the problem, change the expression or the initial value so that the expression is well-defined when substituting the initial value of the variables. Also, watch out for warnings in the Log window.7067 System matrix is zero This error message appears if there are no volumeelements in the mesh. In the case that you have amapped surface mesh, try sweeping or extruding thesurface mesh to get a volume mesh.7069 Maximum number oflinear iterations reached The iterative linear system solver did not converge due to a bad initial guess or a bad preconditioner. Increase the limit on the number of linear iterations or use a better preconditioner. If possible, use a direct linear system solver.7081 No parameter namegiven The parametric solver does not find a name for the parameter. Check the Name of parameter edit field on the General page of the S olver Manager.7092 Out of memory inAlgebraic multigrid The Algebraic multigrid solver/preconditioner ran out of memory. See error 7144 regarding general memory-saving tips.7093 Out of memory duringback substitution The solver ran out of memory during back substitution. See error 7144 regarding general memory-saving tips.7094 Out of memory duringLU factorization The solver ran out of memory during LU factorization. See error 7144 regarding general memory-saving tips.7111 Singular matrix The system matrix (Jacobian matrix or stiffnessmatrix) is singular, so the solver cannot invert it.Usually this means that the system isunderdetermined. Check that all equations are fullyspecified and that the boundary conditions areappropriate. For instance, in a stationary model youusually need to have a Dirichlet condition on someboundary. A singular matrix could also occur if meshelements are of too low quality. If the minimumelement quality is less than 0.005 you might be introuble. Another reason for this error message is thatyou have different element orders for two variablesthat are coupled by, for example, a weak constraint.Use the same element order for all variables that arecoupled.7136 Very ill-conditionedpreconditioner. Therelative residual is morethan 1000 times largerthan the relativetolerance You need to improve the quality of the preconditioner to get an accurate solution. For the Incomplete LU preconditioner, lower the drop tolerance.7144 Out of memory inadaptive solver The adaptive solver ran out of memory. The adaptive mesh refinement has generated a too fine mesh. In general, when you run out of memory, try to use memory-efficient modeling techniques such asutilizing symmetries, solving models sequentially, and selecting memory-efficient solvers. See the chapter “Solving the Model” on page 377 in the COMSOL Multiphysics User’s Guide for more information. See also the COMSOL Installation and Operations Guide for information about system memory management.7145 Out of memory ineigenvalue solver The eigenvalue solver ran out of memory. See error 7144 regarding general memory-saving tips.7146 Out of memory instationary solver The stationary solver ran out of memory. See error 7144 regarding general memory-saving tips.7147 Out of memory intime-dependent solver The time-dependent solver ran out of memory. See error 7144 regarding general memory-saving tips. 7192 Invalid degree offreedom name in manualscaling The name of a dependent variable in the Manual scaling edit field on the Advanced page in the Solver Parameters dialog box does not match any of the dependent variables in the model.7199 Reordering failed One of the PARDISO reordering algorithms failed.Try a different reordering algorithm or try turning offrow preordering.7248 Undefined value found See the explanation of error 7043 for some possiblereasons as to why this error number appears. In mostsituations you get a more detailed description of theerror by pressing the Details button.7297 Undefined value found This error number appears if one of the linear systemsolvers encounters an undefined value (such valuesappear, for instance, if a division by zero has beenperformed or if some arithmetic operation results in alarger number than can be represented by thecomputer). For direct solvers this error might appearif the stiffness matrix (Jacobian matrix) is singular oralmost singular. For iterative solvers this error mightappear, for instance, if the iterative process diverges.Press the Details button to see which linear solvercaused the error.9000–9999 General ErrorsTABLE 2-6: GENERAL ERROR MESSAGESERRORNUMBERERROR MESSAGE EXPLANATION9037 Failed to initialize3D graphics.OpenGL not fullysupported OpenGL is not available on the computer. This can happen if your graphics card does not support OpenGL or if you have a Unix/Linux computer where OpenGL has not been configured.9040 Fatal error If you receive this error, click the Detail button. Copy andpaste the entire error message and send it tosupport@/doc/2c64f75dee06eff9aff80709.html along with your license file anddetails of how to reproduce the error.9052 Invalidaddress/port You did not enter the correct server name or server port when trying to connect a client to a server.9084 Server connectionerror The client somehow lost the connection to the server. For example, the server crashed unexpectedly, or the power saving mechanism on a laptop shut down the TCP/IP connection.9143 License error The most common reasons for this message:The license file license.dat has been removed from the rightdirectory in the COMSOL software installation. Thelicense.dat file must be located in the$COMSOL35a/license directory, where $COMSOL35a isthe COMSOL 3.5a installation directory.The license manager has not started properly. Please findthe FLEXlm log file (named by the person who started thelicense manager). Inspect this file to see the server status.Send it to support@/doc/2c64f75dee06eff9aff80709.html if you are in doubt abouthow to interpret this file.It is crucial that you use the correct license.dat file on boththe server and the clients9178 Error in callback An error occurred when calling a MATLAB function fromCOMSOL Multiphysics. Make sure that the M-file thatdefines the function is correct and exists in the current path.Check that the function is written so that all inputs arevectors of the same size and the output is a vector of thesame size.Solver Error MessagesThese error messages can appear during solution and appear on the Log tab in the Progress window.TABLE 2-7: SOLVER ERROR MESSAGES IN LOG WINDOWSOLVER ERRORMESSAGEEXPLANATIONCannot meet error tolerances. Increase absolute or relative tolerance. The time-dependent solver cannot solve the model to the specified accuracy.Error in residual computationError in Jacobian computation The evaluation of the residual or the Jacobian generated an error during a time-dependent solution. An additional message states the direct error. Some possible reasons are division by zero, range and overflow errors in mathematical functions, and interpolation failure in coupling variables withtime-dependent mesh transformation.Failed to find a solution The nonlinear solver failed to converge. An additional error message gives some more details. See the description for that message.Failed to find a solution for all parameters, even when using the minimum parameter step During a parametric solution, the nonlinear iteration did not converge despite reducing the parameter step length to the minimum allowed value. The solution may have reached a turning point or bifurcation point.Failed to find a solution for initial parameter The nonlinear solver failed to converge for the initial value of the parameter during a parametric solution. An additional error message gives some more details. See the description for that message. Failed to find consistent initial values The time-dependent solver could not modify the initial conditions given to a DAE system to satisfy the stationary equations at the initial time. Make sure the initial values satisfy the equations and boundary conditions. In many cases, this can be achieved by solving for only the algebraic variables using a stationary solver before starting thetime-dependent solver.Ill-conditioned preconditioner. Increase factor in error estimate to X The preconditioner is ill-conditioned. The error in the solution might not be within tolerances. To be sure to have a correct solution, open the Linear System Solver Settings dialog box from the General tab of Solver Parameters. Select Linear system solver in the tree, and increase Factor in error estimate to the suggested number X. Alternatively, use a better preconditioner or tune the settings for the preconditioner.Inf or NaN found, even when using the minimum damping factor Despite reducing the step size to the minimum value allowed, the solver cannot evaluate the residual or modified Newton direction at the new solution iterate. This essentially means that the currentapproximation to the solution is close to the boundary of the domain where the equations are well-defined. Check the equations for divisions by zero, powers, and other functions that can become undefined for certain inputs.Inverted mesh element near coordinates (x, y, z) In some mesh element near the given coordinates, the (curved) mesh element is (partially) warped inside-out. More precisely, the Jacobian matrix for the mapping from local to global coordinates has a negative determinant at some point. A possible reason is that the linear mesh contains a tetrahedron whose vertices all lie on a boundary. When improving the approximation of the boundary using curved mesh elements, the curved mesh element becomes inverted. To see whether this is the case, you can change Geometry shape order to 1 in the Model Settings dialog box, which means that curved mesh elements will not be used. You can usually avoid such bad tetrahedra by using a finer mesh around the relevant boundary. Another reason for this error message can be that the mesh becomes inverted when using a deformed mesh.Last time step is not converged. The last time step returned from the time-dependent solver is not to be trusted. Earlier time steps are within the specified tolerances.Matrix is singular When encountered during time-dependent solution:the linear system matrix (which is a linearcombination of the mass-, stiffness-, and possibly,damping-matrices) is singular. Usually the problemoriginates from the algebraic part of a DAE. Inparticular, the cause can often be found in weakconstraints or constraint-like equations like thecontinuity equation in incompressible flow.Maximum number of linear iterations reached The iterative linear system solver failed to compute a Newton direction in the specified maximum number of iterations.Maximum number of Newton iterations reached The nonlinear solver could not reduce the error below the desired tolerance in the specified maximum number of iterations. This is sometimes a sign that the Jacobian is not complete or badly scaled. It may even be almost singular, if the system is underdetermined. If the returned solution seems reasonable, it might be enough to restart the solver with this solution as the initial guess.No convergence, even when using the minimum damping factor The nonlinear solver reduced the damping factor below the minimum value allowed. The solver reduces the damping factor each time a computed step did not lead to a decrease in the error estimate. Make sure the model is well-posed, in particular that there are enough equations and boundary conditions to determine all degrees of freedom. If the model is well-posed, it should have one or more isolated solutions. In that case, the error is probably due to the initial guess being too far from any solution.Nonlinear solver did not converge During a time-dependent solution, the nonlinear iteration failed to converge despite reducing the time step to the minimum value allowed. Usually, the error is related to the algebraic part of a DAE. For example, the algebraic equations can have reached a turning point or bifurcation point. The error can also appear when the algebraic equations do not have a unique solution consistent with the given initial conditions. Make sure algebraic equations have consistent initial values and that they have a unique solution for all times and values reached by the other variables. Not all eigenvalues returned When the eigenvalue solver terminated (stopped by the user or due to an error), it had not found the requested number of eigenvalues. The eigenvalues returned can be trusted.Not all parameter After premature termination of the parametricsolver, only some of the requested solutions havesteps returned been computed.Predicted solution guess leads to undefined function value The solver computes the initial guess for the new parameter value based on the solution for the previous parameter value. This initial guess led to an undefined mathematical operation. Try using another Predictor on the Parametric tab of Solver Parameters.Repeated error test failures. May have reached a singularity. During a time-dependent solution, the error tolerances could not be met despite reducing the time step to the minimum value allowed.Returned solution has not converged. The solution returned by the stationary solver is not to be trusted. It might, however, be useful as initial guess after modifying equations or solver settings.The elasto-plastic solver failed to find a solution The Newton iteration loop for the computation of the plastic state at some point in the geometry did not converge.。
abaqus中the syntax error in the expression
在Abaqus 中,出现"the syntax error in the expression" 错误通常是由于表达式中存在语法错误。
以下是一些可能导致该错误的常见原因和解决方法:
1. 缺失运算符:检查表达式中是否缺失运算符,例如加号(+)、减号(-)、乘号(*)、除号(/)等。
确保每个操作数都有正确的运算符与其相匹配。
2. 括号不匹配:检查表达式中的括号是否匹配。
确保每个左括号都有相应的右括号与之对应。
3. 变量未定义:确保表达式中使用的变量在该上下文下已正确定义。
检查变量名是否拼写正确,并且在适当的位置进行了定义。
4. 函数调用错误:如果表达式中包含函数调用,确保函数名和参数的正确性。
检查函数的拼写、参数的数量和类型是否与函数定义匹配。
5. 语法错误:检查表达式的整体语法结构是否正确。
遵循编程语言的语法规则,确保表达式的格式正确。
解决此类错误的最佳方法是仔细检查表达式,并仔细比较代码与编程语言的语法规则。
如果仍然遇到问题,可以尝试在Abaqus 中使用调试工具来帮助定位和修复错误。
这是我建立的模型,4个钢球1个芯棒1个圆管把芯棒和钢球设为刚体圆管是柔性体,目标是芯棒带动管子向下压,管子和芯棒之间定义摩擦0.2 管子和钢球定义摩擦0.2,钢球用一般约束:xyz位移固定;xyz转动全可。
在芯棒所有面上施加运动副:向下运动、、、网格设置:这是分析设置求解不出来提示信息如下:An error occurred inside the POST PROCESSING module: Invalid or missing result file.The solver engine was unable to converge on a solution for the nonlinear problem as constrained. :Please see the Troubleshooting section of the Help System for more information.The solution failed to solve completely at all time points. Restart points are available to continuethe analysis.The unconverged solution (identified as Substep 999999) is output for analysis debug purposes. Results at this time should not be used for any other purpose.One or more Contact Region(s) contains a friction value larger than .2. To aid in convergence, an unsymmetric solver has been used.Solver pivot warnings have been encountered during the solution. This is usually a result of an ill conditioned matrix possibly due to unreasonable material properties, an under constrained model, or contact related issues. Check results carefully.Contact status has experienced an abrupt change. Check results carefully for possible contact separation.Although the solution failed to solve completely at all time points, partial results at some points have been able to be solved. Refer to Troubleshooting in the Help System for more details.翻译版:无效或缺失的结果文件:后处理模块内部发生错误。
1. FlUENT1.1 求解方面1.1.1 floating point error是什么意思?怎样避免它?Floating point error已经提过很多次了并且也已经对它讨论了许多。
下面是在Fluent论坛上的一些答案:从数值计算方面看,计算机所执行的运算在计算机内是以浮点数(floating point number)来表示的。
那些由于用户的非法数值计算或者所用计算机的限制所引起的错误称为floating point error。
1)非法运算:最简单的例子是使用Newton Raphson方法来求解f(x)=0的根时,如果执行第N次迭代时有,x=x(N),f’(x(N))=0,那么根据公式x(N+1)=x(N)-f(x(N))/ f’(x(N))进行下一次迭代时就会出现被0除的错误。
2)上溢或下溢:这种错误是数据太大或太小造成的,数据太大称为上溢,太小称为下溢。
这样的数据在计算机中不能被处理器的算术运算单元进行计算。
3)舍入错误:当对数据进行舍入时,一些重的数字会被丢失并且不可再恢复。
例如,如果对0.1进行舍入取整,得到的值为0,如果再对它又进行计算就会导致错误。
避免方法计算和迭代我认为设一个比较小的时间步长会比较好的。
或者改成小的欠松驰因子也会比较好。
从我的经验来看,我把欠松驰因子设为默认值的1/3;降低欠松驰因子或使用耦合隐式求解;改变欠松驰因子,如果是非稳态问题可能是时间步长太大;改善solver-control-limits 比例或许会有帮助;你需要降低Courant数;如果仍然有错误,不选择compute from初始化求解域,然后单击init。
再选择你想从哪个面初始化并迭代,这样应该会起作用。
另外一个原因可能是courant数太大,就样就是说两次迭代之间的时间步太大并且计算结果变化也较大(残差高)。
网格问题当我开始缩放网格时就会发生这个错误。
在Gambit中,所有的尺寸都是以mm 为单位,在fluent按scale按钮把它转换成m,然后迭代几百次时就会发生这种错误。
Ambiguous operators need parentheses -----------不明确的运算需要用括号括起Ambiguous symbol ''xxx'' ----------------不明确的符号Argument list syntax error ----------------参数表语法错误Array bounds missing ------------------丢失数组界限符Array size toolarge -----------------数组尺寸太大Bad character in paramenters ------------------参数中有不适当的字符Bad file name format in include directive --------------------包含命令中文件名格式不正确Bad ifdef directive synatax ------------------------------编译预处理ifdef有语法错Bad undef directive syntax ---------------------------编译预处理undef有语法错Bit field too large ----------------位字段太长Call of non-function -----------------调用未定义的函数Call to function with no prototype ---------------调用函数时没有函数的说明Cannot modify a const object ---------------不允许修改常量对象Case outside of switch ----------------漏掉了case 语句Case syntax error ------------------ Case 语法错误Code has no effect -----------------代码不可述不可能执行到Compound statement missing{ --------------------分程序漏掉"{"Conflicting type modifiers ------------------不明确的类型说明符Constant expression required ----------------要求常量表达式Constant out of range in comparison -----------------在比较中常量超出范围Conversion may lose significant digits -----------------转换时会丢失意义的数字Conversion of near pointer not allowed -----------------不允许转换近指针Could not find file ''xxx'' -----------------------找不到XXX 文件Declaration missing ; ----------------说明缺少";" Declaration syntax error -----------------说明中出现语法错误Default outside of switch ------------------ Default 出现在switch语句之外Define directive needs an identifier ------------------定义编译预处理需要标识符Division by zero ------------------用零作除数Do statement must have while ------------------ Do-while语句中缺少while部分Enum syntax error ---------------------枚举类型语法错误Enumeration constant syntax error -----------------枚举常数语法错误Error directive :xxx ------------------------错误的编译预处理命令Error writing output file ---------------------写输出文件错误Expression syntax error -----------------------表达式语法错误Extra parameter in call ------------------------调用时出现多余错误File name too long ----------------文件名太长Function call missing -----------------函数调用缺少右括号Fuction definition out of place ------------------函数定义位置错误Fuction should return a value ------------------函数必需返回一个值Goto statement missing label ------------------ Goto语句没有标号Hexadecimal or octal constant too large ------------------16进制或8进制常数太大Illegal character ''x'' ------------------非法字符x Illegal initialization ------------------非法的初始化Illegal octal digit ------------------非法的8进制数字houjiumingIllegal pointer subtraction ------------------非法的指针相减Illegal structure operation ------------------非法的结构体操作Illegal use of floating point -----------------非法的浮点运算Illegal use of pointer --------------------指针使用非法Improper use of a typedefsymbol ----------------类型定义符号使用不恰当In-line assembly not allowed -----------------不允许使用行间汇编Incompatible storage class -----------------存储类别不相容Incompatible type conversion --------------------不相容的类型转换Incorrect number format -----------------------错误的数据格式Incorrect use of default --------------------- Default使用不当Invalid indirection ---------------------无效的间接运算Invalid pointer addition ------------------指针相加无效Irreducible expression tree -----------------------无法执行的表达式运算Lvalue required ---------------------------需要逻辑值0或非0值Macro argument syntax error -------------------宏参数语法错误Macro expansion too long ----------------------宏的扩展以后太长Mismatched number of parameters in definition---------------------定义中参数个数不匹配Misplaced break ---------------------此处不应出现break语句Misplaced continue ------------------------此处不应出现continue语句Misplaced decimal point --------------------此处不应出现小数点Misplaced elif directive --------------------不应编译预处理elifMisplaced else ----------------------此处不应出现else Misplaced else directive ------------------此处不应出现编译预处理elseMisplaced endif directive -------------------此处不应出现编译预处理endifMust be addressable ----------------------必须是可以编址的Must take address of memory location ------------------必须存储定位的地址No declaration for function ''xxx'' -------------------没有函数xxx的说明No stack ---------------缺少堆栈No type information ------------------没有类型信息Non-portable pointer assignment --------------------不可移动的指针(地址常数)赋值Non-portable pointer comparison --------------------不可移动的指针(地址常数)比较Non-portable pointer conversion ----------------------不可移动的指针(地址常数)转换Not a valid expression format type ---------------------不合法的表达式格式Not an allowed type ---------------------不允许使用的类型Numeric constant too large -------------------数值常太大Out of memory -------------------内存不够用Parameter ''xxx'' is never used ------------------能数xxx没有用到Pointer required on left side of -> -----------------------符号->的左边必须是指针Possible use of ''xxx'' before definition -------------------在定义之前就使用了xxx(警告)Possibly incorrect assignment ----------------赋值可能不正确Redeclaration of ''xxx'' -------------------重复定义了xxx Redefinition of ''xxx'' is not identical ------------------- xxx的两次定义不一致Register allocation failure ------------------寄存器定址失败Repeat count needs an lvalue ------------------重复计数需要逻辑值Size of structure or array not known ------------------结构体或数给大小不确定Statement missing ; ------------------语句后缺少";" Structure or union syntax error --------------结构体或联合体语法错误Structure size too large ----------------结构体尺寸太大Sub scripting missing ] ----------------下标缺少右方括号Superfluous & with function or array ------------------函数或数组中有多余的"&"Suspicious pointer conversion ---------------------可疑的指针转换Symbol limit exceeded ---------------符号超限Too few parameters in call -----------------函数调用时的实参少于函数的参数不Too many default cases ------------------- Default太多(switch 语句中一个)Too many error or warning messages --------------------错误或警告信息太多Too many type in declaration -----------------说明中类型太多Too much auto memory in function -----------------函数用到的局部存储太多Too much global data defined in file ------------------文件中全局数据太多Two consecutive dots -----------------两个连续的句点Type mismatch in parameter xxx ----------------参数xxx类型不匹配Type mismatch in redeclaration of ''xxx'' ---------------- xxx 重定义的类型不匹配Unable to create output file ''xxx'' ----------------无法建立输出文件xxxUnable to open include file ''xxx'' ---------------无法打开被包含的文件xxxUnable to open input file ''xxx'' ----------------无法打开输入文件xxxUndefined label ''xxx'' -------------------没有定义的标号xxx Undefined structure ''xxx'' -----------------没有定义的结构xxxUndefined symbol ''xxx'' -----------------没有定义的符号xxx Unexpected end of file in comment started on line xxx----------从xxx行开始的注解尚未结束文件不能结束Unexpected end of file in conditional started on line xxx ----从xxx 开始的条件语句尚未结束文件不能结束Unknown assemble instruction ----------------未知的汇编结构Unknown option ---------------未知的操作Unknown preprocessor directive: ''xxx'' -----------------不认识的预处理命令xxxUnreachable code ------------------无路可达的代码Unterminated string or character constant -----------------字符串缺少引号User break ----------------用户强行中断了程序Void functions may not return a value ----------------- Void类型的函数不应有返回值Wrong number of arguments -----------------调用函数的参数数目错''xxx'' not an argument ----------------- xxx不是参数''xxx'' not part of structure -------------------- xxx不是结构体的一部分xxx statement missing ( -------------------- xxx语句缺少左括号xxx statement missing ) ------------------ xxx语句缺少右括号xxx statement missing ; -------------------- xxx缺少分号xxx'' declared but never used -------------------说明了xxx 但没有使用xxx'' is assigned a value which is never used----------------------给xxx赋了值但未用过Zero length structure ------------------结构体的长度为零。
编号报错提示1dat文件中出现----ERROR: 85 elements have missing property definitions. The elements have been identified in element set ErrElem Missing Section.2dat文件中出现----ERROR: in keyword *BEAMSECTION, file "1.inp", line 434056: OdbError: Material name is missing for this section.3dat文件中出现:***ERROR: The volume of 360 elements is zero, small, or negative. Checkcoordinates or node numbering, or modify the mesh seed. In the case of a tetrahedron this error may indicate that all nodes are locatedvery nearly in a plane. The elements have been identified in elementset ErrElemVolSmallNegZero.4dat文件中出现:***ERROR: THE DISTRIBUTING COUPLING WEIGHTS FOR COUPLING NODES LOCATED ON THE NODE-BASED SURFACE HM_COUPDIS_SURFACE_E1530 ARE ALL 0.0000. PLEASE SPECIFY A COUPLING WEIGHT ON THE SURFACE DEFINITION OPTION.5在单元上施加重力加速度的时候,报错如下。
navicat floating point division by zero Title: Troubleshooting Navicat's Floating Point Division by Zero ErrorIntroduction:Navicat is a popular database management tool that offers a range of features to simplify database administration tasks. Among these features is its ability to perform calculations, including division operations. However, a common issue that Navicat users encounter is the "Floating Point Division by Zero" error. In this article, we will explore the possible reasons for this error and provide step-by-step instructions on how to troubleshoot and resolve it.Section 1: Understanding the "Floating Point Division by Zero" Error:1.1 What is a Floating Point Division by Zero error?- A Floating Point Division by Zero error occurs when a program attempts to divide a number by zero, which is undefined in mathematics.- This error can be triggered in Navicat when executing a calculation or query that involves division.1.2 Why does Navicat generate this error?- The error may occur due to various reasons, such as the presence of zero in the denominator or an error in the calculation formula.- Invalid data in the database, such as NULL values or inappropriate formatting, can also cause the error.Section 2: Troubleshooting Steps for Navicat's Floating Point Division by Zero Error:2.1 Check for zero values or NULLs in your dataset:- Examine the dataset you are working with and identify any instances where a zero value or NULL may be present.- Replace or remove the zero or NULL values to prevent division by zero errors.2.2 Verify the calculation formula:- Review the formula being used for the division calculation.- Ensure that the formula is correct and that all necessary fields have been included.- Double-check the order of operations and parentheses to avoid any calculation discrepancies.2.3 Use IFNULL or ISNULL functions:- If your dataset contains NULL values that cannot be removed, consider using IFNULL or ISNULL functions to handle these values during calculations.- These functions allow you to replace NULL values with a predefined value (e.g., zero) or perform an alternative calculation altogether.2.4 Cast data types and enforce data integrity:- Ensure that the data types of the fields involved in the division calculation are appropriately cast.- For example, if a field is expected to contain a decimal value, verify that it is stored as a floating-point number.2.5 Perform a step-by-step execution:- Execute each component of the calculation individually to identify which part generates the error.- This process helps pinpoint and isolate the error-causing components, facilitating targeted troubleshooting.2.6 Check for database engine settings:- Confirm that your database engine settings permit division byzero operations.- Depending on the database engine being used, certain settings may restrict divisions involving zero.Section 3: Best Practices to Avoid Floating Point Division by Zero Errors:3.1 Validate input data:- Implement appropriate data validation measures to prevent the entry of invalid data, such as zero values in fields where division calculations occur.3.2 Use conditional statements:- Incorporate conditional statements in your calculations to handle scenarios where zero or NULL values are encountered.- This allows for customized handling of such cases, preventing division by zero errors.3.3 Regularly update and maintain your database:- Perform regular data maintenance tasks, including cleaning and updating your database, to ensure accurate data entry and eliminate potential division-related errors.Conclusion:The "Floating Point Division by Zero" error in Navicat can be a frustrating issue for users. This article has provided a detailed explanation of the error's causes and step-by-step instructions for troubleshooting and resolving it. By following these guidelines and implementing best practices, you can avoid this error and ensure smooth and accurate calculations in Navicat.。
在没有考虑vdw作用之前,算Bi2Se3材料soc中出现的错误汇总V ASP自旋轨道耦合计算错误汇总静态计算时,报错:VERY BAD NEWS! Internal内部error in subroutine子程序IBZKPT:Reciprocal倒数的lattice and k-lattice belong to different class of lattices. Often results are still useful (48)INCAR参数设置:对策:根据所用集群,修改INCAR中NPAR。
将NPAR=4变成NPAR=1,已解决!错误:sub space matrix类错误报错:静态和能带计算中出现警告:W ARNING: Sub-Space-Matrix is not hermitian共轭in DA V结构优化出现错误:WARNING: Sub-Space-Matrix is not hermitian in DA V 4 -4.681828688433112E-002对策:通过将默认AMIX=0.4,修改成AMIX=0.2(或0.3),问题得以解决。
以下是类似的错误:WARNING: Sub-Space-Matrix is not hermitian in rmm -3.00000000000000RMM: 22 -0.167633596124E+02 -0.57393E+00 -0.44312E-01 1326 0.221E+00BRMIX:very serious problems the old and the new charge density differ old charge density: 28.00003 new 28.06093 0.111E+00错误:WARNING: Sub-Space-Matrix is not hermitian in rmm -42.5000000000000ERROR FEXCP: supplied Exchange-correletion table is too small, maximal index : 4794错误:结构优化Bi2Te3时,log文件:WARNING in EDDIAG: sub space matrix is not hermitian 1 -0.199E+01RMM: 200 0.179366581305E+01 -0.10588E-01 -0.14220E+00 718 0.261E-01BRMIX: very serious problems the old and the new charge density differ old charge density: 56.00230 new 124.70394 66 F= 0.17936658E+01 E0= 0.18295246E+01 d E =0.557217E-02curvature: 0.00 expect dE= 0.000E+00 dE for cont linesearch 0.000E+00ZBRENT: fatal error in bracketingplease rerun with smaller EDIFF, or copy CONTCAR to POSCAR and continue但是,将CONTCAR拷贝成POSCAR,接着算静态没有报错,这样算出来的结果有问题吗?对策1:用这个CONTCAR拷贝成POSCAR重新做一次结构优化,看是否达到优化精度!对策2:用这个CONTCAR拷贝成POSCAR,并且修改EDIFF(目前参数EDIFF=1E-6),默认为10-4错误:WARNING: Sub-Space-Matrix is not hermitian in DA V 1 -7.626640664998020E-003网上参考解决方案:对策1:减小POTIM: IBRION=0,标准分子动力学模拟。
matlab程序报错意思释疑1.Subscript indices must either be real positive integers or logicals中⽂解释:下标索引必须是正整数类型或者逻辑类型出错原因:在访问矩阵(包括向量、⼆维矩阵、多维数组,下同)的过程中,下标索引要么从 0 开始,要么出现了负数。
注:matlab 的语法规定矩阵的索引从 1 开始,这与 C 等编程语⾔的习惯不⼀样。
解决办法:⾃⼰调试⼀下程序,把下标为 0 或者负数的地⽅修正。
2.Undefined function or variable "a"中⽂解释:函数或变量 a 没有定义3.Input argument "x" is undefined中⽂解释:输⼊变量 x 没有定义4.Matrix dimensions must agreeInner matrix dimensions must agree中⽂解释:矩阵的维数必须⼀致出错原因:这是由于运算符(= + - / * 等)两边的运算对象维数不匹配造成的,典型的出错原因是错⽤了矩阵运算符。
matlab 通过“.”来区分矩阵运算和元素运算5.Function definitions are not permitted at the prompt or in scripts中⽂解释:不能在命令窗⼝或者脚本⽂件中定义函数出错原因:⼀旦在命令窗⼝写 function c = myPlus(a,b),此错误就会出现,因为函数只能定义在 m ⽂件中6. 1) X must have one or two columns2.)Vectors must be the same lengths中⽂解释:1. X 必须是 1 或者 2 列2. 向量长度必须⼀致7.One or more output arguments not assigned during call to '...'中⽂解释:在调⽤...函数过程中,⼀个或多个输出变量没有被赋值8. Error using ==> mpowerMatrix must be square中⽂解释:错误使⽤mpwoer函数,要求矩阵必须是⽅阵9.Explicit integral could not be found.中⽂解释:显式解没有找到10.Index exceeds matrix dimensions.Attempted to access b(3,2); index out of bounds because size(b)=[2,2].中⽂解释:索引超出矩阵的范围附本⼈遇到的问题:Attempted to access x(3); index out of bounds because numel(x)=2.表⽰x矩阵元素不够,导致x(3)⽆法索引。
在没有考虑vdw作用之前,算Bi2Se3材料soc中出现的错误汇总1.I nternal内部的、内在的ERROR RSPHER:running out of buffer缓冲0 013 1 0nonlr.F:Out of buffer RSPHER.....ran an NPAR optimisation最优test and found that if NCPU is too high and NPAR too low the job will quit with ERROR RSPHER. On the other hand if NCPU is too low and NPAR too high the job will hang during iterations迭代次数and cease to停止write any output. There is an optimum value of NCPU/NPAR which can be determined by running a series of 1 or 2 hour jobs with NPAR=1,2,4,8,16,32 for a given number of CPUs. NPAR must always be a factor因子of NCPU and I believe optimum is usually close to NCPU/16, although this is probably cluster集群dependant相关、依赖and possibly also dependant on the type of calculation being performed.得到的CONTCAR是空文件:说明结构优化部分出现了问题。
2.Logscfrunning on 32 total coresdistrk: each k-point on 32 cores, 1 groupsdistr: one band on 32 cores, 1 groupsusing from now: INCARvasp.5.3.3 18Dez12 (build May 19 2015 15:36:57) complexLogbands...vasp.5.3.3 18Dez12 (build May 19 2015 15:36:57) complexPOSCAR found : 0 types and 0 ions对策1:修改KPOINTS 测试771 881 991 10101 11111对策2:修改NPAR=1,测试NPAR=1,2,3,4,5,6验证结果:修改NPAR=2,NPAR=4计算都没有出错,但算出来能带结构与文献不符:在此基础上,调整其他参数,得到正确的结果。
Proceedings of the IASTED International ConferenceParallel and Distributed Computing and SystemsNovember3-6,1999,MIT,Boston,USAParallel Refinement of Unstructured MeshesJos´e G.Casta˜n os and John E.SavageDepartment of Computer ScienceBrown UniversityE-mail:jgc,jes@AbstractIn this paper we describe a parallel-refinement al-gorithm for unstructuredfinite element meshes based on the longest-edge bisection of triangles and tetrahedrons. This algorithm is implemented in P ARED,a system that supports the parallel adaptive solution of PDEs.We dis-cuss the design of such an algorithm for distributed mem-ory machines including the problem of propagating refine-ment across processor boundaries to obtain meshes that are conforming and non-degenerate.We also demonstrate that the meshes obtained by this algorithm are equivalent to the ones obtained using the serial longest-edge refine-ment method.Wefinally report on the performance of this refinement algorithm on a network of workstations.Keywords:mesh refinement,unstructured meshes,finite element methods,adaptation.1.IntroductionThefinite element method(FEM)is a powerful and successful technique for the numerical solution of partial differential equations.When applied to problems that ex-hibit highly localized or moving physical phenomena,such as occurs on the study of turbulence influidflows,it is de-sirable to compute their solutions adaptively.In such cases, adaptive computation has the potential to significantly im-prove the quality of the numerical simulations by focusing the available computational resources on regions of high relative error.Unfortunately,the complexity of algorithms and soft-ware for mesh adaptation in a parallel or distributed en-vironment is significantly greater than that it is for non-adaptive computations.Because a portion of the given mesh and its corresponding equations and unknowns is as-signed to each processor,the refinement(coarsening)of a mesh element might cause the refinement(coarsening)of adjacent elements some of which might be in neighboring processors.To maintain approximately the same number of elements and vertices on every processor a mesh must be dynamically repartitioned after it is refined and portions of the mesh migrated between processors to balance the work.In this paper we discuss a method for the paral-lel refinement of two-and three-dimensional unstructured meshes.Our refinement method is based on Rivara’s serial bisection algorithm[1,2,3]in which a triangle or tetrahe-dron is bisected by its longest edge.Alternative efforts to parallelize this algorithm for two-dimensional meshes by Jones and Plassman[4]use randomized heuristics to refine adjacent elements located in different processors.The parallel mesh refinement algorithm discussed in this paper has been implemented as part of P ARED[5,6,7], an object oriented system for the parallel adaptive solu-tion of partial differential equations that we have devel-oped.P ARED provides a variety of solvers,handles selec-tive mesh refinement and coarsening,mesh repartitioning for load balancing,and interprocessor mesh migration.2.Adaptive Mesh RefinementIn thefinite element method a given domain is di-vided into a set of non-overlapping elements such as tri-angles or quadrilaterals in2D and tetrahedrons or hexahe-drons in3D.The set of elements and its as-sociated vertices form a mesh.With theaddition of boundary conditions,a set of linear equations is then constructed and solved.In this paper we concentrate on the refinement of conforming unstructured meshes com-posed of triangles or tetrahedrons.On unstructured meshes, a vertex can have a varying number of elements adjacent to it.Unstructured meshes are well suited to modeling do-mains that have complex geometry.A mesh is said to be conforming if the triangles and tetrahedrons intersect only at their shared vertices,edges or faces.The FEM can also be applied to non-conforming meshes,but conformality is a property that greatly simplifies the method.It is also as-sumed to be a requirement in this paper.The rate of convergence and quality of the solutions provided by the FEM depends heavily on the number,size and shape of the mesh elements.The condition number(a)(b)(c)Figure1:The refinement of the mesh in using a nested refinement algorithm creates a forest of trees as shown in and.The dotted lines identify the leaf triangles.of the matrices used in the FEM and the approximation error are related to the minimum and maximum angle of all the elements in the mesh[8].In three dimensions,the solid angle of all tetrahedrons and their ratio of the radius of the circumsphere to the inscribed sphere(which implies a bounded minimum angle)are usually used as measures of the quality of the mesh[9,10].A mesh is non-degenerate if its interior angles are never too small or too large.For a given shape,the approximation error increases with ele-ment size(),which is usually measured by the length of the longest edge of an element.The goal of adaptive computation is to optimize the computational resources used in the simulation.This goal can be achieved by refining a mesh to increase its resolution on regions of high relative error in static problems or by re-fining and coarsening the mesh to follow physical anoma-lies in transient problems[11].The adaptation of the mesh can be performed by changing the order of the polynomi-als used in the approximation(-refinement),by modifying the structure of the mesh(-refinement),or a combination of both(-refinement).Although it is possible to replace an old mesh with a new one with smaller elements,most -refinement algorithms divide each element in a selected set of elements from the current mesh into two or more nested subelements.In P ARED,when an element is refined,it does not get destroyed.Instead,the refined element inserts itself into a tree,where the root of each tree is an element in the initial mesh and the leaves of the trees are the unrefined elements as illustrated in Figure1.Therefore,the refined mesh forms a forest of refinement trees.These trees are used in many of our algorithms.Error estimates are used to determine regions where adaptation is necessary.These estimates are obtained from previously computed solutions of the system of equations. After adaptation imbalances may result in the work as-signed to processors in a parallel or distributed environ-ment.Efficient use of resources may require that elements and vertices be reassigned to processors at runtime.There-fore,any such system for the parallel adaptive solution of PDEs must integrate subsystems for solving equations,adapting a mesh,finding a good assignment of work to processors,migrating portions of a mesh according to anew assignment,and handling interprocessor communica-tion efficiently.3.P ARED:An OverviewP ARED is a system of the kind described in the lastparagraph.It provides a number of standard iterativesolvers such as Conjugate Gradient and GMRES and pre-conditioned versions thereof.It also provides both-and -refinement of meshes,algorithms for adaptation,graph repartitioning using standard techniques[12]and our ownParallel Nested Repartitioning(PNR)[7,13],and work mi-gration.P ARED runs on distributed memory parallel comput-ers such as the IBM SP-2and networks of workstations.These machines consist of coarse-grained nodes connectedthrough a high to moderate latency network.Each nodecannot directly address a memory location in another node. In P ARED nodes exchange messages using MPI(Message Passing Interface)[14,15,16].Because each message has a high startup cost,efficient message passing algorithms must minimize the number of messages delivered.Thus, it is better to send a few large messages rather than many small ones.This is a very important constraint and has a significant impact on the design of message passing algo-rithms.P ARED can be run interactively(so that the user canvisualize the changes in the mesh that results from meshadaptation,partitioning and migration)or without directintervention from the user.The user controls the systemthrough a GUI in a distinguished node called the coordina-tor,.This node collects information from all the other processors(such as its elements and vertices).This tool uses OpenGL[17]to permit the user to view3D meshes from different angles.Through the coordinator,the user can also give instructions to all processors such as specify-ing when and how to adapt the mesh or which strategy to use when repartitioning the mesh.In our computation,we assume that an initial coarse mesh is given and that it is loaded into the coordinator.The initial mesh can then be partitioned using one of a num-ber of serial graph partitioning algorithms and distributed between the processors.P ARED then starts the simulation. Based on some adaptation criterion[18],P ARED adapts the mesh using the algorithms explained in Section5.Af-ter the adaptation phase,P ARED determines if a workload imbalance exists due to increases and decreases in the num-ber of mesh elements on individual processors.If so,it invokes a procedure to decide how to repartition mesh el-ements between processors;and then moves the elements and vertices.We have found that PNR gives partitions with a quality comparable to those provided by standard meth-ods such as Recursive Spectral Bisection[19]but which(b)(a)Figure2:Mesh representation in a distributed memory ma-chine using remote references.handles much larger problems than can be handled by stan-dard methods.3.1.Object-Oriented Mesh RepresentationsIn P ARED every element of the mesh is assigned to a unique processor.V ertices are shared between two or more processors if they lie on a boundary between parti-tions.Each of these processors has a copy of the shared vertices and vertices refer to each other using remote ref-erences,a concept used in object-oriented programming. This is illustrated in Figure2on which the remote refer-ences(marked with dashed arrows)are used to maintain the consistency of multiple copies of the same vertex in differ-ent processors.Remote references are functionally similar to standard C pointers but they address objects in a different address space.A processor can use remote references to invoke meth-ods on objects located in a different processor.In this case, the method invocations and arguments destined to remote processors are marshalled into messages that contain the memory addresses of the remote objects.In the destina-tion processors these addresses are converted to pointers to objects of the corresponding type through which the meth-ods are invoked.Because the different nodes are inher-ently trusted and MPI guarantees reliable communication, P ARED does not incur the overhead traditionally associated with distributed object systems.Another idea commonly found in object oriented pro-gramming and which is used in P ARED is that of smart pointers.An object can be destroyed when there are no more references to it.In P ARED vertices are shared be-tween several elements and each vertex counts the number of elements referring to it.When an element is created, the reference count of its vertices is incremented.Simi-larly,when the element is destroyed,the reference count of its vertices is decremented.When the reference count of a vertex reaches zero,the vertex is no longer attached to any element located in the processor and can be destroyed.If a vertex is shared,then some other processor might have a re-mote reference to it.In that case,before a copy of a shared vertex is destroyed,it informs the copies in other processors to delete their references to itself.This procedure insures that the shared vertex can then be safely destroyed without leaving dangerous dangling pointers referring to it in other processors.Smart pointers and remote references provide a simple replication mechanism that is tightly integrated with our mesh data structures.In adaptive computation,the struc-ture of the mesh evolves during the computation.During the adaptation phase,elements and vertices are created and destroyed.They may also be assigned to a different pro-cessor to rebalance the work.As explained above,remote references and smart pointers greatly simplify the task of creating dynamic meshes.4.Adaptation Using the Longest Edge Bisec-tion AlgorithmMany-refinement techniques[20,21,22]have been proposed to serially refine triangular and tetrahedral meshes.One widely used method is the longest-edge bisec-tion algorithm proposed by Rivara[1,2].This is a recursive procedure(see Figure3)that in two dimensions splits each triangle from a selected set of triangles by adding an edge between the midpoint of its longest side to the opposite vertex.In the case that makes a neighboring triangle,,non-conforming,then is refined using the same algorithm.This may cause the refinement to prop-agate throughout the mesh.Nevertheless,this procedure is guaranteed to terminate because the edges it bisects in-crease in length.Building on the work of Rosenberg and Stenger[23]on bisection of triangles,Rivara[1,2]shows that this refinement procedure provably produces two di-mensional meshes in which the smallest angle of the re-fined mesh is no less than half of the smallest angle of the original mesh.The longest-edge bisection algorithm can be general-ized to three dimensions[3]where a tetrahedron is bisected into two tetrahedrons by inserting a triangle between the midpoint of its longest edge and the two vertices not in-cluded in this edge.The refinement propagates to neigh-boring tetrahedrons in a similar way.This procedure is also guaranteed to terminate,but unlike the two dimensional case,there is no known bound on the size of the small-est angle.Nevertheless,experiments conducted by Rivara [3]suggest that this method does not produce degenerate meshes.In two dimensions there are several variations on the algorithm.For example a triangle can initially be bisected by the longest edge,but then its children are bisected by the non-conforming edge,even if it is that is not their longest edge[1].In three dimensions,the bisection is always per-formed by the longest edge so that matching faces in neigh-boring tetrahedrons are always bisected by the same com-mon edge.Bisect()let,and be vertices of the trianglelet be the longest side of and let be the midpoint ofbisect by the edge,generating two new triangles andwhile is a non-conforming vertex dofind the non-conforming triangle adjacent to the edgeBisect()end whileFigure3:Longest edge(Rivara)bisection algorithm for triangular meshes.Because in P ARED refined elements are not destroyed in the refinement tree,the mesh can be coarsened by replac-ing all the children of an element by their parent.If a parent element is selected for coarsening,it is important that all the elements that are adjacent to the longest edge of are also selected for coarsening.If neighbors are located in different processors then only a simple message exchange is necessary.This algorithm generates conforming meshes: a vertex is removed only if all the elements that contain that vertex are all coarsened.It does not propagate like the re-finement algorithm and it is much simpler to implement in parallel.For this reason,in the rest of the paper we will focus on the refinement of meshes.5.Parallel Longest-Edge RefinementThe longest-edge bisection algorithm and many other mesh refinement algorithms that propagate the refinement to guarantee conformality of the mesh are not local.The refinement of one particular triangle or tetrahedron can propagate through the mesh and potentially cause changes in regions far removed from.If neighboring elements are located in different processors,it is necessary to prop-agate this refinement across processor boundaries to main-tain the conformality of the mesh.In our parallel longest edge bisection algorithm each processor iterates between a serial phase,in which there is no communication,and a parallel phase,in which each processor sends and receives messages from other proces-sors.In the serial phase,processor selects a setof its elements for refinement and refines them using the serial longest edge bisection algorithms outlined earlier. The refinement often creates shared vertices in the bound-ary between adjacent processors.To minimize the number of messages exchanged between and,delays the propagation of refinement to until has refined all the elements in.The serial phase terminates when has no more elements to refine.A processor informs an adjacent processor that some of its elements need to be refined by sending a mes-sage from to containing the non-conforming edges and the vertices to be inserted at their midpoint.Each edge is identified by its endpoints and and its remote ref-erences(see Figure4).If and are sharedvertices,(a)(c)(b)Figure4:In the parallel longest edge bisection algo-rithm some elements(shaded)are initially selected for re-finement.If the refinement creates a new(black)ver-tex on a processor boundary,the refinement propagates to neighbors.Finally the references are updated accord-ingly.then has a remote reference to copies of and lo-cated in processor.These references are included in the message,so that can identify the non-conforming edge and insert the new vertex.A similar strategy can be used when the edge is refined several times during the re-finement phase,but in this case,the vertex is not located at the midpoint of.Different processors can be in different phases during the refinement.For example,at any given time a processor can be refining some of its elements(serial phase)while neighboring processors have refined all their elements and are waiting for propagation messages(parallel phase)from adjacent processors.waits until it has no elements to refine before receiving a message from.For every non-conforming edge included in a message to,creates its shared copy of the midpoint(unless it already exists) and inserts the new non-conforming elements adjacent to into a new set of elements to be refined.The copy of in must also have a remote reference to the copy of in.For this reason,when propagates the refine-ment to it also includes in the message a reference to its copies of shared vertices.These steps are illustrated in Figure4.then enters the serial phase again,where the elements in are refined.(c)(b)(a)Figure5:Both processors select(shaded)mesh el-ements for refinement.The refinement propagates to a neighboring processor resulting in more elements be-ing refined.5.1.The Challenge of Refining in ParallelThe description of the parallel refinement algorithm is not complete because refinement propagation across pro-cessor boundaries can create two synchronization prob-lems.Thefirst problem,adaptation collision,occurs when two(or more)processors decide to refine adjacent elements (one in each processor)during the serial phase,creating two(or more)vertex copies over a shared edge,one in each processor.It is important that all copies refer to the same logical vertex because in a numerical simulation each ver-tex must include the contribution of all the elements around it(see Figure5).The second problem that arises,termination detection, is the determination that a refinement phase is complete. The serial refinement algorithm terminates when the pro-cessor has no more elements to refine.In the parallel ver-sion termination is a global decision that cannot be deter-mined by an individual processor and requires a collabora-tive effort of all the processors involved in the refinement. Although a processor may have adapted all of its mesh elements in,it cannot determine whether this condition holds for all other processors.For example,at any given time,no processor might have any more elements to re-fine.Nevertheless,the refinement cannot terminate because there might be some propagation messages in transit.The algorithm for detecting the termination of parallel refinement is based on Dijkstra’s general distributed termi-nation algorithm[24,25].A global termination condition is reached when no element is selected for refinement.Hence if is the set of all elements in the mesh currently marked for refinement,then the algorithmfinishes when.The termination detection procedure uses message ac-knowledgments.For every propagation message that receives,it maintains the identity of its source()and to which processors it propagated refinements.Each prop-agation message is acknowledged.acknowledges to after it has refined all the non-conforming elements created by’s message and has also received acknowledgments from all the processors to which it propagated refinements.A processor can be in two states:an inactive state is one in which has no elements to refine(it cannot send new propagation messages to other processors)but can re-ceive messages.If receives a propagation message from a neighboring processor,it moves from an inactive state to an active state,selects the elements for refinement as spec-ified in the message and proceeds to refine them.Let be the set of elements in needing refinement.A processor becomes inactive when:has received an acknowledgment for every propa-gation message it has sent.has acknowledged every propagation message it has received..Using this definition,a processor might have no more elements to refine()but it might still be in an active state waiting for acknowledgments from adjacent processors.When a processor becomes inactive,sends an acknowledgment to the processors whose propagation message caused to move from an inactive state to an active state.We assume that the refinement is started by the coordi-nator processor,.At this stage,is in the active state while all the processors are in the inactive state.ini-tiates the refinement by sending the appropriate messages to other processors.This message also specifies the adapta-tion criterion to use to select the elements for refinement in.When a processor receives a message from,it changes to an active state,selects some elements for refine-ment either explicitly or by using the specified adaptation criterion,and then refines them using the serial bisection algorithm,keeping track of the vertices created over shared edges as described earlier.When itfinishes refining its ele-ments,sends a message to each processor on whose shared edges created a shared vertex.then listens for messages.Only when has refined all the elements specified by and is not waiting for any acknowledgment message from other processors does it sends an acknowledgment to .Global termination is detected when the coordinator becomes inactive.When receives an acknowledgment from every processor this implies that no processor is re-fining an element and that no processor is waiting for an acknowledgment.Hence it is safe to terminate the refine-ment.then broadcasts this fact to all the other proces-sors.6.Properties of Meshes Refined in ParallelOur parallel refinement algorithm is guaranteed to ter-minate.In every serial phase the longest edge bisectionLet be a set of elements to be refinedwhile there is an element dobisect by its longest edgeinsert any non-conforming element intoend whileFigure6:General longest-edge bisection(GLB)algorithm.algorithm is used.In this algorithm the refinement prop-agates towards progressively longer edges and will even-tually reach the longest edge in each processor.Between processors the refinement also propagates towards longer edges.Global termination is detected by using the global termination detection procedure described in the previous section.The resulting mesh is conforming.Every time a new vertex is created over a shared edge,the refinement propagates to adjacent processors.Because every element is always bisected by its longest edge,for triangular meshes the results by Rosenberg and Stenger on the size of the min-imum angle of two-dimensional meshes also hold.It is not immediately obvious if the resulting meshes obtained by the serial and parallel longest edge bisection al-gorithms are the same or if different partitions of the mesh generate the same refined mesh.As we mentioned earlier, messages can arrive from different sources in different or-ders and elements may be selected for refinement in differ-ent sequences.We now show that the meshes that result from refining a set of elements from a given mesh using the serial and parallel algorithms described in Sections4and5,re-spectively,are the same.In this proof we use the general longest-edge bisection(GLB)algorithm outlined in Figure 6where the order in which elements are refined is not spec-ified.In a parallel environment,this order depends on the partition of the mesh between processors.After showing that the resulting refined mesh is independent of the order in which the elements are refined using the serial GLB al-gorithm,we show that every possible distribution of ele-ments between processors and every order of parallel re-finement yields the same mesh as would be produced by the serial algorithm.Theorem6.1The mesh that results from the refinement of a selected set of elements of a given mesh using the GLB algorithm is independent of the order in which the elements are refined.Proof:An element is refined using the GLBalgorithm if it is in the initial set or refinementpropagates to it.An element is refinedif one of its neighbors creates a non-conformingvertex at the midpoint of one of its edges.Therefinement of by its longest edge divides theelement into two nested subelements andcalled the children of.These children are inturn refined by their longest edge if one of their edges is non-conforming.The refinement proce-dure creates a forest of trees of nested elements where the root of each tree is an element in theinitial mesh and the leaves are unrefined ele-ments.For every element,let be the refinement tree of nested elements rooted atwhen the refinement procedure terminates. Using the GLB procedure elements can be se-lected for refinement in different orders,creating possible different refinement histories.To show that this cannot happen we assume the converse, namely,that two refinement histories and generate different refined meshes,and establish a contradiction.Thus,assume that there is an ele-ment such that the refinement trees and,associated with the refinement histories and of respectively,are different.Be-cause the root of and is the same in both refinement histories,there is a place where both treesfirst differ.That is,starting at the root,there is an element that is common to both trees but for some reason,its children are different.Be-cause is always bisected by the longest edge, the children of are different only when is refined in one refinement history and it is not re-fined in the other.In other words,in only one of the histories does have children.Because is refined in only one refinement his-tory,then,the initial set of elements to refine.This implies that must have been refined because one of its edges became non-conforming during one of the refinement histo-ries.Let be the set of elements that are present in both refinement histories,but are re-fined in and not in.We define in a similar way.For each refinement history,every time an ele-ment is refined,it is assigned an increasing num-ber.Select an element from either or that has the lowest number.Assume that we choose from so that is refined in but not in.In,is refined because a neigh-boring element created a non-conforming ver-tex at the midpoint of their shared edge.There-fore is refined in but not in because otherwise it would cause to be refined in both sequences.This implies that is also in and has a lower refinement number than con-。
turbulent viscosity limited to viscosity ratio of1.000 000e+005in2cellsError:Floating point error: invalid number 1 这个应该是湍流模型的选取与第一层网格高度之间不满足近壁处理关系而产生的问题,如果你没有使用壁面函数的话,第一层网格高度尽可能地小点儿,比如取为弦长的百万分之一左右;另外,边界条件中关于湍流量的设置不合理也会导致这个警告。
2 (不推荐)solve-controls-limits Maximum Turb. Viscosity Ratio 加多两个0,估计是一些单元的最大Turb. Viscosity Ratio超出了限定值()恕我直言,你的这个方法只是治标不治本,他这个问题多数是由于网格尺度太大引起的。
也可能是边界条件上的湍流相关参数不合理导致的。
[br][br][以下内容由larky 在2007年06月23日00:00am 时添加] [br]调大限制值可能导致发散3 这是一个办法,能够解决一部分问题,有一些问题无论你怎么调整都没有用,如果出现这种情况可以通过调整初始流场,找到合适的初始值大部分能够解决,其实如果只是一开始初现这个问题,可以不作调整,除非影响到收敛性4 在别的论坛上看到的:为了尽快收敛对异值进行的限制,对最后收敛结果无影响1)如果边界条件设置合理,一般来说会在收敛后自动消除。
2)为了加快收敛对异常的数值进行的限制(以引用2楼),是加快收敛的一种措施。
3)但是如果你的问题中流场变化很大,有可能在最后还会有。
4)如果网格不好会经常出现这种现象。
5)如果不想看见它总是报告而影响计算速度(写屏会降低计算速度),可以在下面把它关闭:solve->control->flow limit....具体记不住了,自己看看就知道了。
5 我也遇到这种情况,不过是在叠代求解的前一百多步,后面就没有了.因此我想是否是因为前面计算的误差大引起?而随着计算误差的减少,就消失了.如果是这样,就可以放心啦.6 一般是边界上或是网格质量差的地方出现了奇点.由于是数值耗散,随着迭代次数越多,影响整个流场的范围越大,最终可能导致这个流场发散.如果是网格质量差的地方出现,就只能重划网格了如果是在边界上,一般是湍流相关参数设置不合理造成的,改成固定湍流比可能能解决7 Why don't you try as follows (If you still have the same warning, please go to the next step. Usually, the initial flow condition used for the RSM run is obtained from the RNG k-e model result);First step:Solve - Controls - Solution -Default => iterationSecond Step:Dicrase "Under-relaxation factors" => iterationThird Step:Adaptation of cells : I usaually use y+ and velocity gradient conditions => iterationFourth Step:Regenerate mesh, goto step 1If your solution stats to converge, you can increase under-relaxation factors.If you have converged solutions, you can increase the order of the discretizatio n parameters (for ex. 1st -> 2nd -> QUICK etc.)8. Once I posted a big message on this issue, I am pasting that message again, you can read this:{well this is one common problem lot of people have asked about it before. i will try to summarize the approach i take to solve this problem.first of allthe very basic cause of this warning is the wrong set up of boundary conditio ns.So if you are sure that nothing is wrong with the set up of the problem, you can follow the following things.The origin of the problem lies in the fact that if the solver calculates the valu e of k and e or omega (in two equation models) wrongly, it’s very likely it will calculate turbulent viscosity wrongly and thus we get the warning. In the ideal condition, as the solution converges the warning should go away and we all live happily ever after. But generally this does not have so happy ending. The reason is mainly we have a case which is very large and convergence is already difficult and which is exacerbated by the wrong calculations of turbul ent quantities. So what are the remedies for it.The usual remedy is to switch to coupled solver,and work with it, and this u sually solves the problem. But my personal thinking is that if the case is inco mpressible the coupled solver may not work well there. But yes this is one so lution. The second solution which is far more stable is, and if you fail to get the solution from coupled solver too, switch to FAS,increase the number of p re post iterations, make the coarsening levels to 4, (4 is more than enough). A nd this converges almost every problem, but there are case where you might f ail to get convergence.Anyway if you are stuck with segregated solver (like me), what are the option s.First of all if we consider that the divergence is because of turbulence quantiti es, we may want to force the convergence on these quantities before we move to next iteration.The way I do is this, I change the multigrid options for k, e to V cycle, mak e the pres sweeps to 1 post sweeps to 2, and chose Bicgstab as smoother. An d let it run.盲目,默认值一般是最佳值。
A list of error messages and possible solutions Gaussian calculations can fail with various error messages. Some error messages from .out and .log files - and possible solutions - have been compiled here to facilitate problem solving.These are divided into:Syntax and similar errors语法类错误Memory and similar errors内存类错误Convergence problems 不收敛错误Errors in solvent calculations 溶剂中的计算错误Errors in log files错误文件ERROR MESSAGES IN OUTPUT FILESSyntax and similar errors:End o f file in ZSymb.Error termination via Lnk1e in /global/apps/gaussian/g03/: The blank line after the coordinate section in the .inp file is missing. (输入文件空行丢失)Unrecognized layer "X".(不识别层X)Error termination via Lnk1e in /global/apps/gaussian/g03/: Error due to syntax error(s) in coordinate section (check carefully). If error is "^M", it is caused by DOS end-of-line characters . if coordinateswere written under Windows). Remove ^M from line ends using . emacs. To process .inp files from command line, use sed -i 's/^MQPERR --- A SYNTAX ERROR WAS DETECTED IN THE INPUT LINE.Solution: Check .inp carefully for syntax errors in keywords RdChkP: Unable to locate IRWF=0 Number= 522.Error termination via Lnk1e in /global/apps/gaussian/g03/ orFileIO operation on non-existent file.[...] Error termination in NtrErr:NtrErr Called from : Operation on .chk file was specified . geom=check, opt=restart), but .chk was not found. Check that:%chk= was specifed in .inp.chk has the same name as .inp.chk is in the same directory as .inp run script transports .chk to temporary folder upon job start. Run scripts downloaded here should do this. The combination of multiplicity N and M electrons is impossible.(多重性)Error termination via Lnk1e in /global/apps/gaussian/g03/: Either the charge or the multiplicity of the molecule was not specified correctly in .inp.(电荷和多重性指定错误)Memory and similar errors: Out-of-memory error in routine RdGeom-1 (IEnd= 1200001 MxCore= 2500)Use %mem=N MW to provide the minimum amount of memory required to complete this stepError termination via Lnk1e in /global/apps/gaussian/g03/ orNot enough memory to run CalDSu, short by 1000000 words.Error termination via Lnk1e in /global/apps/gaussian/g03/ or[...] allocation failure: (表示配分失败)Error termination via Lnk1e in /global/apps/gaussian/g03/: Specify more memory in .inp (%mem=Nmb). Possibly, also increase pvmem value in run script. Especially solvent calculations can exhibit allocation failures and expl icit amounts of memory should be specified.galloc: could not allocate memory.(无法分配内存)Solution: The %mem value in .inp is higher than pvmem value in run script. Increase pvmem or decrease %mem. Probably out of disk space(磁盘空间). Write error in NtrExt1 Solution: /scratch space is most likely full. Delete old files in temporary folder. Convergence problems: Density matrix is not changing but DIIS error= CofLast= .(收敛问题)The SCF is confused. Error termination via Lnk1e in /global/apps/gaussian/g03/linda-exe/: Problem with DIIS. Turn it off completely, . using SCF=qc, or partly by using SCF=(maxconventionalcycles=N,xqc), where N is the number of steps DIIS should be used (see SCF keyword). Convergence criterion not met. SCF Done: E(RHF) = NNNNNNN . after 129 cycles [...] Convergence failure -- run terminated. Error termination via Lnk1e in /global/apps/gaussian/g03/linda-exe/: One SCF cycle has a default of maximum 128 steps, and this was exceeded without convergence achieved. Possible solution: In the route section of input file, specify SCF=(MaxCycle=N), where N is the number of steps per SCF cycles. Alternatively, turn of DIIS . by SCF=qc) (see SCF keyword).Problem with the distance matrix.(距离矩阵)Error termination via Lnk1e in /pkg/gaussian/g03/ Solution: Try to restart optimization from a different input geometry. (重新不同几何异构体的输入优化)New curvilinear step not converged(新曲线步骤不收敛). Error imposing constraintsError termination via Lnk1e in /pkg/gaussian/g03/Solution: Problem with constrained coordinates . in OPT=modredun calculation). Try to restart optimization from a slightly different input geometry. (一种稍微不同的输入几何)Optimization stopped. -- Number of steps exceeded, NStep= N[..] Error termination request processed by link 9999.Error termination via Lnk1e in /global/apps/gaussian/g03/ Solution: Maximum number of optimization steps is twice the number of variables to be optimized. Try increasing the value by specifying OPT=(MaxCycle=N) in .inp file, where N is the number of optimization steps (see OPT keyword). Alternatively, try to start optimization from different geometry.Errors in solvent calculations: AdVTs1: ISph= 2543 is engulfed by JSph= 2544 but Ae( 2543) is not yet zero!Error termination via Lnk1e in /global/apps/gaussian/g03/: Problem is related to building of the cavity in solvent calculations(溶剂效应优化计算错误). One possible solution is to change the cavity(腔)model (default in g03 is UAO, can be changed by adding RADII keyword in section below coordinates in the .inp file, . RADII=UFF, see SCRF keyword).Hydrogen X has 2 bounds. Keep it explicit at all point on thepotential energy surface to get meaningful : In UAO cavity model, spheres are placed on groups of atoms, with hydrogens assigned to the heavy atom, they are bound to. If assignment fails . because heavy atom-H bond is elongated), cavity building fails. Possible solutions: a) use cavity model that also assigns spheres to hydrogens . RADII=UFF) or b) Assign a sphere explicity on problematic H atom (use SPHEREONH=N, see SCRF keyword)ERROR MESSAGES IN LOGFILES =>> PBS: job killed: wall time N exceeded limit Msignal number 15 received. Solution: Job did not finish within specified wall time. Retrieve .out and .chk files from temporary folder /global/work/$USER/$JOB (or $PBS_JOBID) and restart calculation if possible (using . opt=restart or scf=restart). cp: cannot stat $: No such file or directory Solution: The .inp file is not in the directory from where the job was submitted (or its name was misspelled during submission. If error reads: cp: cannot stat $JOB .inp .inp, the .inp file was submitted with extension).ntsnet: unable to schedule the minimum N workers Solution: The value of %N proc Linda=N in the .inp file is higher than the number of nodes asked for during submission. Make sure these values match. Connection refused [...] died without ever signing inSign in timed out after 0 worker connections. Did not reach minimum (N), shutting downSolution: Error appears if you run parallel calculations but did not add this file to your $HOME directory: . containing only the line: ssh (see also guidelines for submission). Density matrix is not changing but DIIS error - Suggested solutions1/- SCF=qc will probably solve the problem, albeit at a cost- Change the SCF converger to either SD, Quadratic or Fermi2/- lower the symmetry of optimize with and optimizewith the "nosymm" keywordI solved the problem using a variation on the first suggestion. Normally the scf took less than 80 cycles to converge. So i used scf=(Maxconventionalcycles=100,xqc) which resulted in a good compromise between using scf=qc and optimisation speed. In the case of the DIIS error the scf always took more than 100 cycles before the error, so by adding scf=(Maxconventionalcycles=100,xqc) the scf switched to qc after 100 cycles in the standard DIIS mode.l9999错误是优化圈数不够,把out文件保存成gjf,修改后接着优化。
关于有限交换环上多项式函数的一个注记(英文)Polynomial function in finite exchange ringPolynomial function, also known as algebraic function or rational function, is an important research content in mathematics. It appears in many important fields such as calculus, linear algebra and engineering mathematics, which directly affects the development of modern science and technology. In this paper, finite exchange ring on polynomial function annotation.In abstract algebra, finite exchange ring refers to the algebraic structure composed of a finite number of elements, in which each element is associated with a corresponding action and is composed of a set of elements under some binaryoperations. It is one of the most important abstract algebra systems.As one of the special forms of finite exchange ring, polynomial function refers to the mathematical expression of the algebraic expression of the finite exchange ring, whichis the execution result corresponding to a certain amount of interest. Specifically, polynomial function is the polynomial expression of the element in the finite exchange ring, andits specific form is the sum of the coefficients multiplied by the multiple base elements of the finite exchange ring.For example, if the finite exchange ring has only two basis elements, 0 and 1, then the polynomial expression of an element in the finite exchange ring is 0 + 0x + 1x^2. That is to say, the coefficient of the finite exchange ring is 0 and the coefficient of 1 is 1.In summary, the polynomial function in the finite exchange ring is a special way of representation of theelement in the finite exchange ring. It is the execution result corresponding to a certain amount of interest, and its specific expression is the sum of the coefficients multiplied by the base elements in the finite exchange ring.。
UNIVERSITY OF WISCONSIN-MADISONCENTER FOR THE MATHEMATICAL SCIENCESOn the error in multivariate polynomial interpolationC.de Boor1Abstract.Simple proofs are provided for two properties of a new multivariate poly-nomial interpolation scheme,due to Amos Ron and the author,and a formula for the interpolation error is derived and discussed.AMS(MOS)Subject Classifications:41A63,41A05;41A10Author’s affiliation and address:Center for the Mathematical SciencesUniversity of Wisconsin-Madison610Walnut St.Madison WI537051supported by the National Science Foundation under Grant No.DMS-9000053and by the United States Army under Contract No.DAAL03-90-G-0090On the error in multivariate polynomial interpolationC.de Boor1Dedicated to Garrett Birkhoffon the occasionof his80th birthdayIn interpolation,one hopes to determine,for g defined(at least)on a given pointsetΘ, a function f from a given collection F which agrees with g onΘ.If,for arbitrary g,there is exactly one f∈F with f=g onΘ,then one calls the pair F,Θ correct.(Birkhoff[Bi79]and others would say that,in this case,the problem of interpolating from F to data onΘis well set.)Assuming that F is afinite-dimensional linear space,correctness of F,Θ is equivalent to having(0.1)dim F=#Θ=dim F|Θ(with F|Θ:={f|Θ:f∈F}the set of restrictions of f∈F toΘ).Multivariate interpolation has to confront what one might call‘loss of Haar’,i.e., the fact that,for every linear space F of continuous functions on I R d with d>1and 1<dim F<∞,there exist pointsetsΘ⊂I R d with dim F=#Θ>dim F|Θ.This observation rests on the following argument(see,e.g.,the cover of[L66]or p.25therein): For any basisΦ=(φ1,...,φn)for F,and any continuous curveγ:[0d1]→(I R d)n: t→(γ1(t),...,γn(t)),the function g:t→det(φj(γi(t)))is continuous.Since n>1and d>1,we can so choose the curveγthat,e.g.,γ(1)=(γ2(0),γ1(0),γ3(0),...,γn(0)),while, for any t,the n entries ofγ(t)are pairwise distinct.Since then g(1)=−g(0),we must have g(t)=0for some t∈[0d1],hence F is of dimension<n when restricted to the corresponding pointsetΘ:={γ1(t),...,γn(t)}.As a consequence,it is not possible for n,d>1(as it is for n=1or d=1)tofind an n-dimensional space of continuous functions which is correct for every n-point setΘ∈I R d. Rather,one has to choose such a correct interpolating space in dependence on the pointset.A particular choice of such a polynomial spaceΠΘfor givenΘhas recently been proposed in[BR90],a list of its many properties has been offered and proved in[BR90-92],its computational aspects have been detailed in[BR91],and its generalization,from interpolation at a set of n points in I R d to interpolation at n arbitrary linearly independent linear functionals on the spaceΠ=Π(I R d)of all polynomials on I R d,has been treated in much detail in[BR92].The present short note offers some discussion concerning the error in this new poly-nomial interpolation scheme,and provides a short direct proof of two relevant properties of the interpolation scheme,whose proof was previously obtained,in[BR91-92],as part of more general results.1.The interpolation schemeTo recall from[BR90-91],the interpolation scheme is stated in terms of a pairing, betweenΠand the spaceA0of all functions on I R d with a convergent power series(in fact,the larger spaceΠ′of all formal power series would work as well).Here is the pairing:(1.1) p,g :=p(D)g(0)=α∈Z d+Dαp(0)Dαg(0)/α!.The sum is over all multi-indicesα,i.e.,over all d-vectors with nonnegative integer en-tries,Dαdenotes the partial derivative Dα(1)1···Dα(d)d,andα!:=α(1)!···α(d)!.Further,we will use the standard abbreviation|α|:=α(1)+···+α(d),α∈Z Z d+,and the nonstandard,but convenient,notation()α:I R d→I R:x→xα:=x(1)α(1)···x(d)α(d)for theα-power function orα-monomial.E.g.,if p is the polynomial αc(α)()α,then p(D)is the constant coefficient differential operator αc(α)Dα.The pairing is set up so that the linear functionalδ(θ):Π→I R:p→p(θ)of evaluation atθis represented with respect to this pairing by the exponential with frequencyθ∈I R d,i.e.,by the functioneθ:I R d→I R:x→eθx(withθx:= jθ(j)x(j)the usual scalar product).Indeed,since Dαeθ(0)=θα,one computes(1.2) p,eθ = αDαp(0)θα/α!=p(θ).Further,the pairing is graded,in the following sense.For g∈A0⊃Πand k∈Z Z+, denote byg[k]:=|α|=kDαg(0)()α/α!its k th order term,i.e.,the sum of all terms of exact order k in its power series expansion. In these terms,p[k]interacts in p,g only with the corresponding g[k].In particular,if we denote by p↑the leading term of p∈Π,i.e.,the nonzero term p[k]with maximal k,thenp↑,p = p↑,p↑ >0,except when p=0,in which case,by convention,p↑:=0.Correspondingly,we denote by g↓the least or initial term of g∈A0,i.e.,the nonzero term g[k]with minimal k,and conclude correspondingly thatg↓,g = g↓,g↓ >0,except when g=0,in which case,by convention,g↓:=0.Set now(as in[BR90])ΠΘ:=span{g↓:g∈ExpΘ},with ExpΘ:=span{eθ:θ∈Θ}.ThenΠΘ→I RΘ:p→p|Θis1-1:For,if p|Θ=0,then,by(1.2), p,g =0for all g∈ExpΘ. If now p=0,then necessarily p↑=g↓for some g∈ExpΘ\0,and then0= p,g = p↑,g↓ = p↑,p↑ >0,a contradiction.It follows that dimΠΘ=dim(ΠΘ)|Θ≤#Θ.On the other hand,it is possible to show,by a variant of the Gram-Schmidt orthog-onalization process started from the basis(eθ)θ∈Θfor ExpΘ,the existence of a sequence (g1,...,g n)in ExpΘ(with n:=#Θ),for which(1.3) g i↓,g j =0⇐⇒i=j.This shows,in particular,that(g1↓,...,g n↓)is independent(and inΠΘ),hence that dimΠΘ≥n=#Θ.Consequently, ΠΘ,Θ is correct.More than that,for arbitrary f∈Π,(1.4)IΘf:= j g j↓ f,g jg j↓,g jis the unique element inΠΘwhich agrees with f atΘ.Indeed,it follows from(1.3)that, for i=1,...,n, IΘf,g i = f,g i .Since(g1,g2,...,g n)is independent(by(1.3)),hence a basis for ExpΘ(as ExpΘis spanned by n elements),we conclude with(1.2)that,for all θ∈Θ,IΘf(θ)= IΘf,eθ = f,eθ =f(θ).Remark.Since ExpΘ,as the span of n=#Θfunctions,is trivially of dimension ≤#Θ,we seem to have just proved that(1.5)dim ExpΘ=#Θ.This is misleading,though,since the proof of the existence of that sequence(g1,g2,...,g n) in ExpΘsatisfying(1.3)uses(1.5).Note that,with g j=: θ∈ΘB(j,θ)eθ,(1.6) f,g j = θ∈ΘB(j,θ)f(θ).Thus,with(1.6)as a definition for f,g j in case f∈Π,(1.4)provides the polynomial interpolant fromΠΘatΘto arbitrary f defined(at least)onΘ.2.Simple proofs of some properties of IΘAs shown in[BR90-92],the interpolation scheme IΘhas many desirable properties. Some of these follow directly from the definition ofΠΘ:For example,ΠΘ⊂ΠΘ′in case Θ⊂Θ′(leading to a Newton form for the interpolant).Also,for any r>0and any c∈I R d,ΠrΘ+c=ΠΘ.The translation-invariance,ΠΘ+c=ΠΘ,implies thatΠΘis D-invariant,i.e.,(2.1)∀{p∈ΠΘ,α∈Z Z d+}Dαp∈ΠΘ.Further,for any invertible matrix C,ΠCΘ=ΠΘ◦C t(with C t the transposed of C).Also,ΠΘdepends continuously onΘ(to the extent possible,limits on this being imposed by ‘loss of Haar’),and IΘconverges to appropriate Hermite interpolation if elements ofΘare allowed to coalesce in a sufficiently nice manner.Perhaps the two most striking properties are that(i)IΘis degree-reducing,and(ii)ΠΘ=∩p|Θ=0ker p↑(D).These properties are proved in[BR90-92]as part of more generalresults.Because of the evident and expected importance of these results,it seems useful to provide direct proofs,which I now do.The minimum-degree property:(2.2)∀{p∈Π}deg IΘp≤deg p,follows immediately from(1.4)since p,g j =0whenever deg p<deg g j↓.(It is stressed in[Bi79]that univariate Lagrange interpolation has this property.)In fact,the inequality in(2.2)is strict if and only if p↑⊥ΠΘ,as will be established during the proof of the second property.Here and below,Ifind it convenient to write p⊥G(and say that‘p is perpendicular to G’)in case p,g =0for all g∈G,with p∈Πand G⊂A0.(2.3)Proposition([BR91-92]).ΠΘ=∩p|Θ=0ker p↑(D).Proof:I begin with a proof of the following string of equivalences and implications:(2.4)p|Θ=0⇐⇒p⊥ExpΘ=⇒p↑⊥ΠΘ⇐⇒∀{q∈ΠΘ}p↑(D)q(0)=0⇐=∀{q∈ΠΘ}∀{α}p↑(D)Dαq(0)=0⇐⇒∀{q∈ΠΘ}p↑(D)q=0.Thefirst equivalence follows from(1.2),the second relies on the definition of orthogonality, and the third uses the facts that p(D)Dα=Dαp(D)(for any p∈Π),and that the polynomial p↑(D)q is the zero polynomial iffall its Taylor coefficients are zero.The‘=⇒’follows from the observation that if p,g =0,then p↑,g↓ =0,either because deg p↑=deg g↓,or else because,in the contrary case, p,g = p↑,g↓ .Finally, the‘⇐=’is trivial.The‘⇐=’can actually be replaced by‘⇐⇒’sinceΠΘis D-invariant,by(2.1).Also, the‘=⇒’can be reversed in the following way:(2.5)∀{Π∋f⊥ΠΘ}∃{p⊥ExpΘ}p↑=f↑.For,if f is a polynomial perpendicular toΠΘ,of degree k say,then IΘf is necessarily of degree<k,since,in the formula(1.4),the terms f,g j for deg g j↓>k are trivially zero while,for deg g j↓=k,we have f,g j = f,g j↓ and this vanishes since f⊥ΠΘ.Conse-quently p:=f−IΘf is a polynomial with the same leading term as f and perpendicular to ExpΘ.In any case,the argument given so far shows thatΠΘ⊂∩p|Θ=0ker p↑(D).To showequality,note that dimΠΘ=#Θ<∞,henceΠΘ⊂Πk for some k.Thus,for any |α|=k+1,deg IΘ()α<deg()α=k+1,hence()α−IΘ()α ↑=()α,therefore p|Θ=0ker p↑(D)⊂ |α|=k+1ker Dα=Πk⊂Π.Further,if q∈Π,then p:= q−IΘq is a polynomial of degree≤deg q(by(2.2))and p↑(D)(ΠΘ)=0(since p|Θ=0),therefore p↑(D)p=p↑(D)q.Hence,if q∈∩p|Θ=0ker p↑(D),then p↑(D)p=0,hence p=0,i.e.,q∈ΠΘ.3.ErrorThe standard error formula for univariate polynomial interpolation is based on the Newton form,i.e.,on the‘correction’term[θ1,θ2,...,θk,x]f k j=1(·−x j)which is added to the polynomial interpolating to f atθ1,θ2,...,θk in order to obtain the polynomial interpolating to f atθ1,θ2,...,θk,x.An analogous formula is available for the error f−IΘf in our multivariate polynomial interpolant.For its description,it is convenient to use the dual of IΘwith respect to the pairing(1.1),i.e.,the mapI∗Θ:A0→A0:g→ j g j g j↓,gg j↓,g j.(3.1)Proposition.For any x∈I R d and any f∈Π,(3.2)f(x)−(IΘf)(x)= f,εΘ,xwith(3.3)εΘ,x:=e x−I∗Θe x=e x− j g j g j↓,e xg j↓,g j.Proof:Since e x represents the linear functionalδ(x)of evaluation at x with re-spect to(1.1),I∗Θe x is the exponential which represents the linear functionalδ(x)IΘwith respect(1.1).(3.4)Corollary.The exponentialεΘ,x representsδ(x)on the idealideal(Θ):=ker IΘ={f∈Π:f|Θ=0},and is orthogonal toΠΘ,hence so are all its homogeneous componentsε[k]Θ,x.Proof:If f|Θ=0,then f(x)=f(x)−IΘf(x)= f,εΘ,x .Since I∗Θis the dual to the linear projector of interpolation fromΠΘ,its interpolation conditions are of the form p,· with p∈ΠΘ.HenceεΘ,x,as the error e x−I∗Θe x,must be perpendicular toΠΘ,and this,incidentally,can also be written asp(D)εΘ,x(0)=0,∀p∈ΠΘ.Finally,sinceΠΘis spanned by homogeneous polynomials,f⊥ΠΘimplies that f[k]⊥ΠΘfor all k∈Z Z+.(3.5)Lemma([BR90]).For any x∈Θ,ΠΘ∪x=ΠΘ+span{pΘ,x},with(3.6)pΘ,x:=(e x−I∗Θe x)↓the initial term ofεΘ,x.Proof:First,pΘ,x∈ΠΘ∪x since it is the initial term of some element of ExpΘ∪x. Further,pΘ,x=0since pΘ,x=0would imply that e x∈ExpΘ,hence x∈Θby(1.5). Therefore(3.7)0< pΘ,x,pΘ,x = pΘ,x,εΘ,x = pΘ,x−IΘpΘ,x,e x =(pΘ,x−IΘpΘ,x)(x), showing that pΘ,x−IΘpΘ,x=0,hence pΘ,x∈ΠΘ.(3.8)Corollary.For any orderingΘ=(θ1,θ2,...,θn)and withΘj:=(θ1,θ2,...,θj),(3.9)IΘf=nj=1pΘj−IΘj−1pΘj f,εΘjpΘj,pΘj.Proof:The proof is by induction on#Θ,starting with the case n=0,i.e.,Θ={}, for which the definition I{}:=0is suitable.For anyfiniteΘand x∈Θand any f,we know from the lemma that(3.10)p:=IΘf+ pΘ,x−IΘpΘ,x f,εΘ,xpΘ,x,pΘ,xis inΠΘ∪x,and from(3.7)and Proposition3.1,that p(x)=f(x),while evidently p=f onΘ,hence p must be the polynomial IΘ∪x f.Thus if(3.9)holds forΘ,it also holds for Θ∪x.Such a Newton form for IΘf was derived in a somewhat different manner in[BR90].Note thatqΘ,x:=(pΘ,x−IΘpΘ,x)/ pΘ,x,pΘ,xis the unique element ofΠΘ∪x which vanishes atΘand takes the value1at x.But there does not appear to be in general(as there is in the univariate case)a scaling sqΘ,x which makes its coefficient f,εΘ,x /s in(3.10)independent of the wayΘ∪x has been split into Θand x.The only obvious exception to this is the case whenΠΘ=Πk:=the collection of polynomials of total degree≤k.Thus,only for this case does one obtain from IΘa ready multivariate divided difference.Unless the ordering(θ1,θ2,...,θn)is carefully chosen(e.g.,as in the algorithm in[BR91]),there is no reason for the corresponding sequence(deg pΘ1,...,deg pΘn)to benondecreasing.In particular,deg pΘ,x may well be smaller than deg IΘf.For example, if x is not in the affine hull ofΘ,then deg pΘ,x=1.This means that the order of the interpolation error,i.e.,the largest integer k for which f(x)−IΘf(x)=0for all f∈Π<k,may well change with x,since it necessarily equals deg pΘ,x.The only exception to this occurs whenΠΘ=Πk for some k.More generally,deg pΘ,x is a continuous function of x,hence constant,in some neighborhood of the pointξif the pointsetΘ∪ξis regular in the sense of[BR90],i.e.,ifΠ<k⊆ΠΘ∪ξ⊂Πkfor some k.(To be precise,[BR90]calls ExpΘ∪ξrather thanΘ∪ξregular in this case.)(3.11)Proposition.k:=deg pΘ,x=min{deg p:p(x)=0,p∈ideal(Θ)}.Proof:Let k′:=min{deg p:p(x)=0,p∈ideal(Θ)}.If p∈ideal(Θ),then p(x)= p,εΘ,x by Corollary3.4,therefore p(x)=0implies k≤deg p.Thus k≤k′.On the other hand,q:=pΘ,x−IΘpΘ,x has degree≤deg pΘ,x(by(2.2);in fact,we already know from the proof of Proposition2.3that deg q=deg pΘ,x,but we don’t need that here) and does not vanish at x,by(3.7),hence also k′≤deg q≤k.The derivation from(3.2)of useful error bounds requires suitable bounds for expres-sions like|α|≥k|Dαf(0)|2/α!in terms of norms like |α|=k Dαf (L p(B)),with k=deg pΘ,x and B containingΘ∪x. Presumably,one wouldfirst shift the origin to lie in B,in order to keep the constants small,and so as to benefit from the fact thatεΘ,x vanishes to order k at0.In view of Proposition2.3,integral representations for the interpolation error f−IΘf should be obtainable from the results of K.Smith,[K70],using as differential operators the collection p↑(D),p∈P,with P a minimal generating set for ideal(Θ).4.A generalization and Birkhoff’s ideal interpolation schemesIn[Bi79],Birkhoffgives the following abstract description of interpolation schemes. With X some space of function on some domain T into somefield F and closed under pointwise multiplication,andΦa collection of functionals(i.e.,F-valued functions)on X, there is associated the data mapδ(Φ):X→FΦ:g→(φg)φ∈Φ(for which Birkhoffuses the letterα).Birkhoffcalls any right inverse I ofδ(Φ)an inter-polation scheme onΦ.(To be precise,Birkhofftalks about maps I:Φ→X which are to be right inverses forδ(Φ),and uses F Y with Y⊂T as an example forΦ,but the intent is clear.)He observes that P:=Iδ(Φ)is necessarily a projector,i.e.,idempotent.He calls the pair(δ(Φ),I),or,better,the resulting projector P:=Iδ(Φ),an ideal interpolation scheme in case(i)δ(Φ)I=id;(ii)bothδ(Φ)and I are linear(hence P is linear);(iii)ker P is an ideal,i.e.,closed under pointwise multiplication by any element from X.For linearδ(Φ)and I,(δ(Φ),I)is ideal if and only if kerδ(Φ)is an ideal(since ker P=kerδ(Φ)regardless of I).Thus any linear scheme for which the data map is a restriction map f→f|Θ(such as the map IΘdiscussed in the preceding sections)is trivially ideal.In these terms,the generalization of IΘtreated in[BR92]deals with the situation when T=I R d and X=Π=Π(I R d),andΦ:f→(φf)φ∈Φfor somefinite,linearly independent,collection of linear functionals onΠ(with a further extension,to infiniteΦ, also analysed).The algebraic dualΠ′can be represented by the space of formal power series(in d indeterminates),and the pairing(1.1)has a natural extension toΠ×Π′.In this setting,kerδ(Φ)=Λ⊥:={p∈Π:p⊥Λ},withΛ:=spanΦ.(4.1)Proposition([BR92]).kerδ(Φ)is an ideal if and only ifΛis D-invariant.The proof uses nothing more than the observation that()αp,φ = p,Dαφ .As an example,ifΦis a linearly independent subset of∪θ∈ΘeθΠ,thenφ∈Φis of the formf→p(D)f(θ)for someθ∈Θand p∈Π.Correspondingly,Λ=spanΦ= θ∈ΘeθPθfor certain polynomial spaces Pθ.Hence,kerδ(Φ)is an ideal iffeach Pθis D-invariant.In particular, Hermite interpolation atfinitely many points is ideal,while G.D.Birkhoffinterpolation is, in general,not.References[B]G.Birkhoff(1979),“The algebra of multivariate interpolation”,in Constructive ap-proaches to mathematical models(C.V.Coffman and G.J.Fix,eds),Academic Press (New York),345–363.[B]C.de Boor and A.Ron(1990),“On multivariate polynomial interpolation”,Constr.Approx.6,287–302.[BR91]C.de Boor and Amos Ron(199x),“Computational aspects of polynomial interpolation in several variables”,p.xx,xxx–xxx.[BR92]C.de Boor and A.Ron(1992),“The least solution for the polynomial interpolation problem”,Math.Z.xx,xxx–xxx.[L66]G.G.Lorentz(1966),Approximation of Functions,Holt,Rinehart and Winston(New York).[K70]K.T.Smith(1970),“Formulas to represent functions by their derivatives”,Math.Ann.188,53–77.。