Home

MCLITE: AN ADAPTIVE MULTILEVEL FINITE ELEMENT

image

Contents

1. 1597 1615 R Bank and M Holst A new paradigm for parallel adaptive mesh refinement SIAM J Sci Statist Comput Accepted to appear R E Bank PLTMG A software package for solving elliptic partial differential equations users guide 8 0 Software Environments and Tools Vol 5 SIAM Philadelphia PA 1998 R E Bank and H D Mittelmann Stepsize selection in continuation procedures and damped Newton s method J Compu tational and Applied Mathematics 26 1989 67 77 R E Bank and D J Rose Parameter selection for Newton like methods applicable to nonlinear partial differential equa tions SIAM J Numer Anal 17 1980 no 6 806 822 Global Approximate Newton Methods Numer Math 37 1981 279 295 Analysis of a multilevel iterative method for nonlinear finite element equations Math Comp 39 1982 no 160 453 465 R E Bank and R K Smith A posteriori error estimates based on hierarchical bases SIAM J Numer Anal 30 1993 no 4 921 935 Mesh smoothing using a posteriori error estimates SIAM J Numer Anal 34 1997 979 997 R E Bank and A Weiser Some a posteriori error estimators for elliptic partial differential equations Math Comp 44 1985 no 170 283 301 20 14 15 16 17 18 19 20 21 22 23 24 25 M HOLST 100 120 140 160 180 200 220 nz 1187
2. FIGURE 4 MCLite graphical output E Bansch An adaptive finite element strategy for the three dimsional time dependent Navier Stokes equations Journal of Computional and Applied Mathematics 36 1991 3 28 Local mesh refinement in 2 and 3 dimensions Impact of Computing in Science and Engineering 3 1991 181 191 P Bastian K Birken K Johannsen S Lang N Neuss H Rentz Reichert and C Wieners UG a flexible software toolbox for solving partial differential equations 1998 R Beck B Erdmann and R Roitzsch KASKADE 3 0 An ojbect oriented adaptive finite element code Tech Report TR95 4 Konrad Zuse Zentrum for Informationstechnik Berlin 1995 J Bey Adaptive grid manager AGM8D manual Tech Report 50 SFB 382 Math Inst Univ Tubingen 1996 S C Brenner and L R Scott The mathematical theory of finite element methods Springer Verlag New York NY 1994 P G Ciarlet The finite element method for elliptic problems North Holland New York NY 1978 P J Davis Interpolation and approximation Dover Publications Inc New York NY 1963 R S Dembo S C Eisenstat and T Steihaug Inezact Newton Methods SIAM J Numer Anal 19 1982 no 2 400 408 R A DeVore and G G Lorentz Constructive approximation Springer Verlag New York NY 1993 S C Eisenstat and H F Walker Globally Convergent Inezact Newton Methods Tech report Dept of Mathematics and Statistics Utah State University 1992 S Fu
3. If it is necessary to improve element shape which effects finite element approximation quality MCLite attempts to optimize the following simplex shape measure 8 M HOLST FIGURE 3 Polyhedral mesh representation The figure on the left shows the overlapping support regions of two vertex based global basis functions The polyhedral mesh topology is represented by MCLite using a ringed vertex datastructure illustrated in the figure on the right the topology primitives are vertices and d simplices Edges are temporarily created during subdivision but are then destroyed a similar ring datastructure is used to represent the edge topology function for a given d simplex s in an iterative fashion similar to the approach taken in 12 2 1 4 3 S 5 4 n s d D o lt i lt j lt a leis The quantity s represents the possibly negative volume of the d simplex s and e represents the length of the edge that connects vertex 7 to vertex j in the simplex For d 2 this is the shape measure used in 12 with a slightly different normalization For d 3 this is the shape measure given in 31 again with a slightly different normalization 5 3 Discretization error estimation and adaptivity in MCLite MCLite uses piecewise linear ele ments to discr
4. hhh area integral if evalKey 0 hhh coefficients atilde ones L 1 the first order coefficient function hhh Source term chosen to give one analytical solution utilde 1 L 1 sin pi xm sin pi ym ftilde 1 L 1 2 pixpi atilde 1 L 1 utilde 1 L 1 lambda exp utilde 1 L 1 16 M HOLST hhh nonlinear residual of the given FEM function u thetam 1 L 1 atilde 1 L 1 ux 1 L 1 prx 1 L 1 uy 1 L 1 pry 1 L 1 lambda exp u 1 L 1 ftilde 1 L 1 pr hhh edge integral for natural boundary condition else if evalKey 1 hhh apply appropriate condition based on which boundary we are on thetam zeros L 1 for k 1 L if xm k 0 thetam k pi cos pi xm k sin pi ym k pr elseif xm k 1 thetam k pi cos pi xm k sin pi ym k pr elseif ym k 0 thetam k pi sin pi xm k cos pi ym k pr elseif ym k 1 thetam k pi sin pi xm k cos pi ym k pr else thetam k 0 end end hhh error else assert 0 fu_v 1 end end function thetam dfu_wv evalKey parm L xm ym u ux uy ps psx psy pr prx pry Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh Prototype thetam dfu_wv evalKey parm L xm ym u ux uy PS psSx psy pr prx pry Purpose Evaluate the bilinear form by providing the value of the quantity under the integral sign at a particular quadrature point Because we do
5. HOLST hhh some i o elc clf fprintf n fprintf 5 rn ns sr ns ss n fprintf MCLite version 1 0 Copyright C 1998 Michael Holst n fprintf This is free software and you are welcome to redistribute it n fprintf under certain conditions see the file COPYING for details n fprintf Note that MCLite comes with ABSOLUTELY NO WARRANTY n fprintf n fprintf For MCLite documentation In MATLAB type help filename n fprintf 0 ors ns ss se n fprintf n fprintf MAIN STARTING MCLite MC Lite Code n hhh controlling parameters levels 23 4 num of refinements plus one refkey 1 4 refinement type 0 bisection 1 quadrasection estkey 1 4 estimator O mark all 1 geometric 2 a posteriori solkey 1 4 solve key 0 no 1 yes chkkey 0 4 conformity check the mesh 0 no 1 yes check is slow iplotMan 1 4 MATLAB plot of manifold mesh O none 1 manifold iplotMesh 1 4 MATLAB plot of mesh O none 1 mesh igraphA 1 4 MATLAB graph of matrix 0 none 1 graph ispyA 1 4 MATLAB spy of matrix 0 none 1 spy iplotSol 1 4 MATLAB plot of solution 0 none 1 soln igenPS 1 4 MATLAB generate postscript 0 no 1 yes gv 0 MCgl or Geomview plot of manifold mesh 0 none 1 yes gvs 0 amp 4 MCgl or Geomview plot of solution mesh 0 none 1 yes socktype 0 44 U
6. Xu and A Zhou Local error estimates and parallel adaptive algorithms 1997 Preprint DEPARTMENT OF MATHEMATICS UNIVERSITY OF CALIFORNIA AT SAN DIEGO LA JOLLA CA 92093 USA E mail address mholst math ucsd edu
7. dx f cwv ds Q u dnQ This scalar valued function of the three arguments u v and w is linear in w and v but possibly nonlinear in u For fixed or frozen u it is referred to as a bilinear form linear in each of the remaining arguments w and v We will see shortly that the nonlinear weak form lt F u v gt and the associated bilinear linearization form lt DF u w v gt together with a continuous piecewise polynomial subspace of the solution space Hj p Q are all that are required to employ the finite element method for numerical solution of the original elliptic equation 3 A NONLINEAR POISSON EQUATION EXAMPLE WEAK FORM AND LINEARIZATION Here is an example derivation of the weak formulation of a nonlinear Poisson like equation along with an associated bilinear linearization form both of which are required to use MCLite to produce a adaptive finite element approximation In the case of a nonlinear Poisson like equation PE on finite domain 2 C R the strong form is 3 1 V a x Vi x O a u z 0 inQ 3 2 x g x on OQ where DQ OQ i e the entire boundary of the domain is of Dirichlet type in this case so that measq 1 9pQ gt 0 holds In this case we denote space Ho p Q as simply Hy Q The corresponding weak formulation then follows from the previous discussion where a x u Vu a x Iox2 O a u Vu b a u and c x 0 leading to 3 3 Find u Hj Q such that lt F u v gt 0
8. exists between two vertices file getnabor m get the unique simplex if exists sharing a face file longedge m determine the longest edge of a single simplex file vneum m yes no answer about whether tri edge vert is neumann yes no answer about whether tri edge vert is dirichlet file vdiri m misc untilities and plotting tools file assert m an assertion macro for verifying correctess debugging file mypaus m pause until the return key is pressed file drawi m draw a mesh of vertices and simplices mode 1 file draw2 m draw a mesh of vertices and simplices mode 2 file draw3 m draw a mesh of vertices and simplices mode 3 file drawf m draw a function over a mesh of vertices and simplices file u m move the plot up file d m move the plot down file r m move the plot right file l m move the plot left problem specification user defined file fu_v m nonlinear weak form defining the pde file dfu_wv m linearization bilinear form for the pde file u_d m dirichlet boundary function file u_t m optional analytical solution for testing purposes file edgsplit m user defined procedure to bisect edges in the mesh There is usually a very descriptive header block in each MATLAB routine one can view this documentation for the routine by either editing the MATLAB routine or by typing e g help read at the MATLAB MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 11 prompt to view the d
9. for given arguments u and v then we can evaluate the nonlinear discrete residual of the finite element approximation Uuh as n ri lt F X onde Vi gt E ER A k 1 Since the form lt F u v gt involves an integral in this setting if we employ quadrature then we can simply sample the integrand at quadrature points this is a standard technique in finite element technology Given the local support nature of the functions and y all but a small constant number of terms in the sum yy Orbe are zero at a particular spatial point in the domain so that the residual r is inexpensive to evaluate when quadrature is employed In many cases the discrete polynomial test subspace is taken to be the same as the solution space or Vp Un in which case the method is referred to as a Galerkin rather than a Petrov Galerkin method The two primary issues in applying this approximation method are then 1 The approximation error u up x for various norms X 2 The computational complexity of solving the n algebraic equations The first of these issues represents the core of finite element approximation theory which itself rests on the results of classical approximation theory Classical references to both topics include 20 23 21 The second issue is addressed by the complexity theory of direct and iterative solution methods for sparse systems of linear and nonlinear algebraic equations cf 28 42 4 2 Error estimation ada
10. is always finite 1 2 EE iver jut In other words the space of functions H Q is defined as Hp p Q U lull ao lt ts To be precise all integrals here and below must be interpreted in the Lebesgue rather than Riemann sense but we will ignore the distinction here It is important that the test space satisfy a zero boundary condition on the part of the boundary OpQ on which the Dirichlet boundary condition 2 3 holds so that in fact we choose as the test space the following subspace of H1 Q H p Q uc H Q u 00n dpQ Now multiplying our elliptic equation by a test function v Hj p Q produces V a x Vi B x G V v dx 0 Q which becomes after applying Green s integral identities 2 4 oe a 98 Vvu dx valz t Vi n ds b x i Vu u dx 0 0Q Q The boundary integral above is reformulated using the Robin boundary condition 2 2 as follows II 2 5 J va x t Va n ds J va x i Va n ds f va a t Va n ds n D OnQD 2 6 o f uc a Vu ds NNQN If the boundary function gp is smooth enough there is a mathematical result called the Trace Theorem 1 which guarantees the existence of a function up H Q such that gp up po We will not be able to construct such a trace function up in practice but we will be able to approximate it as accurately as necessary in order to use this weak formulation in finite element methods Employing
11. posteriori error estimation adaptive simplex subdivision global inexact Newton methods and numerical continuation methods for the highly accurate numerical solution of this class of problems The MC ANSI C implementation extends the MCLite MATLAB capabilities to both two and three dimensional nonlinear elliptic systems of tensor equations on two and three manifolds by employing unstructured algebraic mul tilevel methods for the linear systems which arise cf 29 5 1 The overall design of MCLite The MCLite code is an implementation of Algorithm 4 1 employing Algorithm 4 2 for nonlinear elliptic equations that arise in Step 1 of Algorithm 4 1 The linear Newton equations in each iteration of Algorithm 4 2 are solved with MATLAB s builtin sparse direct solvers The Newton equations are supplemented with a continuation algorithm when necessary Several of the features of MCLite which are inherited from MC are somewhat unusual allowing for the treatment of very general nonlinear elliptic operators and general domains In particular some of these features are e Abstraction of the elliptic equation The elliptic equation is defined only through a nonlinear weak form over the domain along with an associated linearization form also defined everywhere on the domain precisely the forms lt F u v gt and lt DF u w v gt in the discussions above e Abstraction of the domain manifold The domain manifold is specified by giving a polyhedra
12. the manual is as follows In 2 we look at general formulations of scalar elliptic equations deriving the nonlinear weak form and its linearization bilinear form that play key roles in MCLite and MC As an example in 3 we derive the weak form and the linearization form for a nonlinear Poisson like scalar equation In 4 we outline the structure of adaptive multilevel finite element methods in general and discuss the overall structure of the MCLite and MC implementations In 5 we describe the MCLite implementation in more detail including the core geometry datastructures and design features that are common to both MC and MCLite We point to the web site where MCLite may be found in 6 In the Appendix we list the primary MCLite routines and give an example illustrating the use of MCLite to solve a problem We also and describe how the geometry datastructures and the algorithms for traversing and modifying the datastructures are implemented in MATLAB 2 NONLINEAR ELLIPTIC EQUATIONS WEAK FORMS AND LINEARIZATIONS In this section we will first give an overview of weak formulations of nonlinear elliptic equations as required for use of finite element methods Some standard references for this material are 25 27 Let Q C R be an open set and let OQ denote the boundary which can be thought of as a set in R4 more accurately it is a d manifold We will consider the case where Q is formed as the union of two disjoint sets OpQ and yQ
13. up v dx Q f oe u up V u up v ds Clearly the weak formulation of the problem given by equation 2 8 imposes only one order of differentia bility on the solution u and only in the weak sense under an integral Under suitable growth restrictions on the nonlinearities b and c it can be shown that this weak formulation makes sense in that the form lt F gt is finite for all arguments Moreover it can be shown under somewhat stronger assumptions including the condition that measg_1 OpQ gt 0 that the weak formulation is well posed in that there exists a unique solution depending continuously on the problem data To apply a Newton iteration to solve this nonlinear problem numerically we will need a linearization of some sort Rather than discretize and then linearize the discretized equations we will exploit the fact that with projection type discretizations such as the finite element method these operations actually commute we can first linearize the differential equation and then discretize the linearization in order to employ a Newton iteration To linearize the weak form operator lt F u v gt a bilinear linearization form lt DF u w v gt is produced as its directional variational Gateaux derivative as follows d lt DF u u v gt T lt F u tw v gt t 0 d A aV u up tw Vv b zx u up tw v fv a cju up tw gn v ds t 0 Q anQ f avu Vvu Petun wo
14. up to constants For reasons of efficiency in the case of elliptic systems in spatial dimension three we employ the first approach in MC referred to as estimation by strong residuals In MCLite the error estimator is user specified the user is given all of the information about an element and the current discrete solution in the element and is asked to produce an error estimate for the element This can be as simple as computing the average of the jumps in the normal derivatives of the solution gradient across the edges shared with neighboring elements or the complete calculation of a bound on the strong form of the residual 43 In particular one employs the linearization theorem above together with some derived but computable upper and lower bounds on the nonlinear residual F un y given by the following pair of inequalities A lt Flua lly lt B There exact forms of A and B and their efficient calculation is quite problem dependent in the nonlinear case cf 43 5 4 Solution of of linear and nonlinear systems with MCLite When a system of nonlinear finite element equations must be solved in MCLite the global inexact Newton Algorithm 4 2 is employed where the linearization systems are solved by MATLAB s builtin sparse direct solver When necessary the Newton procedure in Algorithm 4 2 is supplemented with a user defined normalization equation for performing an augmented system continuation algorithm Coupled with the superl
15. which can be summarized mathematically as OpQU NQ OQ OpQAN AnD For technical reasons it will be important that one of the boundary sets be of non trivial size written mathematically as measg_1 OpQ gt 0 This condition is related to the type of boundary condition that will be imposed on the set OpQ and it will always hold for the boundary conditions arising in typical boundary value problems Consider now the following nonlinear scalar elliptic equation on Q 2 1 V a x ii x V lx b 2 G x Vi z 0 inQ 2 2 n x alx a x Va x c a G x Va x 0 on nQ 2 3 l x gp on dpQ 1 2 M HOLST where n x NQ R is the unit normal to N and where a QxRxR R bce QxRxR R gp dpQrR The above form of the equation is sometimes referred to as the strong form in that the solution is required to be twice differentiable for the equation to hold in the classical sense To produce a weak formulation which is more suitable for finite element methods in that it will require that fewer derivatives of the solution exist we first choose or construct a test space of functions For second order scalar elliptic equations of this form the appropriate test space is H Q the Sobolev space of functions which are differentiable one time under the integral This function space is simply the set of all scalar valued functions over the domain 2 for which the following integral the energy norm or Ht norm
16. C 29 and PLTMG 6 and similar simplex based adaptive codes 29 37 17 18 16 enforce conformity using the above finite queue swapping strategy or a similar approach 4 3 Inexact Newton methods and linear multilevel methods Addressing the complexity of Step 1 of the algorithm above Newton methods are often the most effective Algorithm 4 2 Damped inexact Newton e Given an initial u e While lt F u v gt gt TOL Vu do 1 Find w such that lt DF u w v gt lt F u v gt r Vu 2 Set u u aw e end while The bilinear form lt DF u w v gt in the algorithm above is the Gateaux linearization of the nonlinear form lt F u v gt defined earlier This form is easily computed from most nonlinear forms lt F u v gt which arise from second order nonlinear elliptic problems The possibly nonzero residual term r is to allow for inexactness in the Jacobian solve for efficiency which is quite effective in many cases cf 10 22 24 The parameter a brings robustness to the algorithm 8 9 24 If folds or bifurcations are present then the iteration is modified to incorporate path following 7 30 As was the case for the nonlinear residual lt F gt the matrix representing the bilinear form in the Newton iteration is easily assembled regardless of the complexity of the bilinear form lt DF gt In particular the matrix equation for w Dja 8 0 has the form AU F where n n Aij
17. MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE FOR SCALAR NONLINEAR ELLIPTIC EQUATIONS IN THE PLANE M HOLST ABSTRACT This paper is a user s manual for MCLite an adaptive multilevel finite element MATLAB package for solving scalar nonlinear elliptic equations in the plane MCLite is a two dimensional MATLAB prototype of a more complete two and three dimensional ANSI C code called MC which expends MCLite s capabilities to elliptic systems of tensor equations on 2 and 3 manifolds Both codes share the same core geometry datastructures and overall design they even share the same input file format This allows a user to work with both codes perhaps prototyping ideas in MCLite using MATLAB and then reimplementing the idea more carefully in MC using ANSI C 1 INTRODUCTION This paper is a user s manual for MCLite an adaptive multilevel finite element MATLAB package for solving scalar nonlinear elliptic equations in the plane MCLite is a two dimensional MATLAB prototype of a more complete two and three dimensional ANSI C code called MC which expends MCLite s capabilities to elliptic systems of tensor equations on 2 and 3 manifolds Both codes share the same core geometry datastructures and overall design they even share the same input file format This allows a user to work with both codes perhaps prototyping ideas in MCLite using MATLAB and then reimplementing the idea more carefully in MC using ANSI C The outline of
18. NIX domain or INET sockets O UNIX domain 1 INET hhh Construct operators for the nested sequence of spaces for level 1 levels fprintf MAIN n fprintf MAIN LEVEL g n level fprintf MAIN n if level 1 hhh create the initial coarse mesh fprintf MAIN defining the mesh tO clock VERT SIMP read 0 the_time etime clock t0 N eight size VERT L seventeen size SIMP fprintf done N g L g time g n N L the_time else hhh error estimate and the mark mesh some uniform refinements first fprintf MAIN marking the mesh tO clock SIMP QUE mark VERT SIMP estkey MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE the_time etime clock t0 N eight size VERT L seventeen size SIMP fprintf done N g L g time g n N L the_time hhh adaptively refine the mesh based on the marking fprintf MAIN refining the mesh tO clock VERT SIMP refin VERT SIMP QUE refkey the_time etime clock t0 N eight size VERT L seventeen size SIMP fprintf done N g L g time g n N L the_time end Ahh check the mesh for correctness if chkkey gt 0 chkmesh VERT SIMP end hhh plot the mesh if gv gt 0 writeoff socktype 2 VERT SIMP mypaus end if iplotMan gt 0 fprintf MAIN plotting the manifold
19. Q z y amp T ya x dI 9 eee 3 2 y Z 2 For a simplex mesh with n vertices a set of n global basis functions y z i 1 n are defined as in the right most picture in Figure 1 by combining the support regions around a given vertex and extending the unit simplex basis functions to each arbitrary simplex using affine coordinate transformations The above basis functions clearly do not form any subspace of C Q the space of twice continuously differentiable functions on Q which is the natural function space in which to look for the solutions to second order elliptic equations written in the strong form such as equation 2 1 This is due to the fact that they are discontinuous along simplex faces and simplex vertices in the disjoint simplex covering of Q However one can show that in fact 20 Vi span 1 dn C H p Q Q CRI so that these continuous piecewise defined low order polynomial spaces do in fact form a subspace of the solution space to the weak formulation of the problems we are considering here Taking then Up MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 5 span 1 2 n Vh span y Y2 Yn equation 4 1 reduces to a set of n nonlinear algebraic relations implicitly defined for n coefficients ax in the expansion n un gt andr k 1 In particular regardless of the complexity of the form lt F u v gt as long as we can evaluate it
20. Wu HG Q 4 M HOLST FIGURE 1 Reference and arbitrary 2 and 3 simplex elements and a global 2D basis function where 3 4 lt F u v gt aovtu up Vv a u up v dz The bilinear linearization form lt DF u w v gt in the case of the PE is again produced as the Gateaux derivative of the nonlinear form lt F u v gt above b lt DF u w v gt a lt F u tw v gt f aov Vv ae up wr dx dt t 0 Q Ou 4 MULTILEVEL ADAPTIVE FINITE ELEMENT METHODS 4 1 The finite element method for nonlinear elliptic equations A Petrov Galerkin approximation of the solution to 2 8 is the solution to the following subspace problem 4 1 Find u Un C H p such that lt F u un gt 0 Von Va C H p for some chosen subspaces Up and Vp of Hj p Q A finite element method is simply a Petrov Galerkin approximation method in which the subspaces U and Vp are chosen to have the extremely simple form of continuous piecewise low degree polynomials with local support defined over a disjoint covering of the domain Q by elements typically simple polyhedra For example in the case of continuous piecewise linear polynomials defined over a disjoint covering with 2 or 3 simplices cf Figure 1 the basis functions are easily defined element wise using the unit 2 simplex triangle and unit 3 simplex tetrahedron as follows tne ce h j 1 G 2 do 9 Lao y a i 9 Seras z Q Y a WU
21. alent in a certain sense 43 1 Residual estimates strong and weak 33 34 43 44 2 Solution of local problems Dirichlet or Neumann 13 11 Most existing work on a posteriori estimates has been for linear problems nonlinear extensions through linearization For example consider the nonlinear problem F u 0 F C X Y X Y Banach spaces and a discretization Falun 0 Fp E C X Y7 Xp C X Yn CY MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 9 Nonlinear residuals F u can be used to estimate the error u un x using linearization theorems here is an example of such a theorem due to Veriirth 43 Theorem 5 1 Letu X be a regular solution of F u 0 so that DF u is a linear homeomorphism of X onto Y Assume DF is Lipschitz continuous at u so that there exists Ro such that A DF u DF un lecx y sup un B u Ro lu uallx Let R min Ro DF u tleo x 21 DF w lley Then for all un B u R 1 slPFOllexys F un ily lt llu uallx lt BIDE leox Eun lly The effect of linearization is swept under the rug somewhat by the choice of R sufficiently small However since we typically construct highly refined meshes where needed such local linear estimates are reasonable Note that F un y can be estimated in several ways including 1 Approximation by Fh un ly 2 Solution of local problems The two approaches are often equivalent
22. at the I O produced by MCLite while it is running and then will show the graphical output such as the refined meshes the graph of the linearized stiffness matrix the nonzero structure of the matrix and the plots of the solutions over the two dimensional domain After looking at this example you should be ready to use MCLite gt gt go MCLite version 1 0 Copyright C 1998 Michael Holst This is free software and you are welcome to redistribute it under certain conditions see the file COPYING for details Note that MCLite comes with ABSOLUTELY NO WARRANTY For MCLite documentation In MATLAB type help filename MAIN STARTING MCLite MC Lite Code MAIN sS5 gt MAIN LEVEL 1 MAING gt MAIN defining the mesh done N 16 L 18 time 0 062056 MAIN plotting the manifold done N 16 L 18 press return done N 16 L 18 press return MAIN plotting the mesh done N 16 L 18 press return MAIN nonlinear solve starting N 16 L 18 NEWTON iter 0 F u 2 54987 NEWTON iter 1 F u 6 67866e 16 MAIN nonlinear solve finished time 0 893346 MAIN discretization error is 0 151521 MAIN graphing matrix done N 16 L 18 press return MAIN showing nonzero structure done N 16 L 18 press return MAIN plotting FEM solution done N 16 L 18 MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 19 press return MAIN mar
23. ate the ringed vertex datastructure the simplex and edge rings around a vertex The actual ring datastructures are built by the routines bldsring m addsring m and addering m The routine bldsring m is called just before a mesh is refined in the routine refin m bldsring m simply calls addsring m for each simplex which adds each simplex to the simplex rings that start at each of its vertices The routine addering m adds an edge to the edge rings that start at each of its two vertices There are several advantages to using the ringed vertex datastructure the primary one as far as MCLite is concerned is that all vertices edges and simplices have fixed size so that an array based implementation in MATLAB is possible This also makes for a faster ANSI C implementation in MC compared to linked lists of variable sized datastructures Here are a few additional guidelines and pointers to help you get started The user tells MCLite about the particular PDE to solve by specifying the nonlinear weak form in the file fu_v m along with its linearization weak form dfu_wv m We will look more closely at these two files below The user also specifies the Dirichlet boundary condition function as the function u_d m The function u_t m is a function that is provided as a slot for an analytical solution to the PDE for testing purposes if available otherwise u_t m can simply return with no action The specification of the domain over which to solve the PDE adapti
24. awf VERT SIMP U Ug view 30 30 if igenPS gt 0 print depsc sol eps end fprintf done N g L g n N L mypaus end end hhh solve discrete system end 4 solve estimate refine loop Finally regarding the weak form routines f_uv m and dfu_wv m with which you specify completely your PDE along with the Dirichlet function u_d m these two routines must return the value of the integrand in the weak form integral evaluated at the list of points that are passed into the routines This is because MCLite assembles the nonlinear residual and the linearized stiffness matrix using Gaussian quadrature MCLite assembles all of the elements at once so that what is passed to the three routines f_uv m dfu_wv m and u_d m is basically the list of all of the quadratures points required to approximate the integrals need to assemble all of the element matrices at once For a clear example of how to specify these three routines consider the Bratu problem for constant a ER V aVu e f inQ 0 1 x 0 1 u 0 oQ MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 15 The weak form lt F u v gt is lt F u v aVu Vv e v fv dv Q and the bilinear linearization form lt DF u w v gt is lt DF u w v gt I aVw Vvu e wv dv Q If we choose f x y 27 asin rx sin ry A S sin y then the analytical solution to this problem is u x y sin 7x si
25. cik and A Kufner Nonlinear differential equations Elsevier Scientific Publishing Company New York NY 1980 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 21 W Hackbusch Multi grid methods and applications Springer Verlag Berlin Germany 1985 Elliptic differential equations Springer Verlag Berlin Germany 1992 Iterative solution of large sparse systems of equations Springer Verlag Berlin Germany 1994 M Holst Adaptive multilevel finite element methods on manifolds and their implementation in MC In preparation currently available as a technical report and User s Guide to the MC software H B Keller Numerical methods in bifurcation problems Tata Institute of Fundamental Research Bombay India 1987 A Liu and B Joe Relationship between tetrahedron shape measures BIT 34 1994 268 287 Quality local refinement of tetrahedral meshes based on bisection SIAM J Sci Statist Comput 16 1995 no 6 1269 1291 J L Liu and W C Rheinboldt A posteriori finite element error estimators for indefinite elliptic boundary value problems Numer Funct Anal and Optimiz 15 1994 no 3 335 356 A posteriori finite element error estimators for parametrized nonlinear boundary value problems Numer Funct Anal and Optimiz 17 1996 no 5 605 637 J M Maubach Local bisection refinem
26. drawi VERT SIMP fprintf done N g L g n N L mypaus draw2 VERT SIMP fprintf done N g L g n N L mypaus end if iplotMesh gt 0 fprintf MAIN plotting the mesh draw3 VERT SIMP if igenPS gt 0 print depsc mesh eps end fprintf done N g L g n N L mypaus end hhh Solve discrete system if solkey gt 0 hhh Solve discrete system fprintf MAIN nonlinear solve starting N g L g n N L tO clock U Ug A F newton VERT SIMP the_time etime clock t0 fprintf MAIN nonlinear solve finished time g n the_time hhh discretization error test U_t zeros N 1 U_t 1 N 1 u_t VERT 1 N 1 VERT 1 N 2 error norm U_t U Ug norm U_t fprintf MAIN discretization error is g n error 13 14 M HOLST hhh graph the matrix if igraphA gt 0 fprintf MAIN graphing matrix gplot A VERT b if igenPS gt 0 print depsc graph eps end fprintf done N g L g n N L mypaus end hhh Show matrix structure if ispyA gt 0 fprintf MAIN showing nonzero structure clf hold off spy A if igenPS gt 0 print depsc spy eps end fprintf done N g L g n N L mypaus end hhh Plot the solution if gvs gt 0 writeoffs socktype 2 VERT SIMP U Ug mypaus end if iplotSol gt 0 fprintf MAIN plotting FEM solution dr
27. ent for N simplicial grids generated by relection SIAM J Sci Statist Comput 16 1995 no 1 210 277 E P Mucke Shapes and implementations in three dimensional geometry Ph D thesis Dept of Computer Science Univer sity of Illinois at Urbana Champaign 1993 A Mukherjee An adaptive finite element code for elliptic boundary value problems in three dimensions with applications in numerical relativity Ph D thesis Dept of Mathematics The Pennsylvania State University 1996 M C Rivara Algorithms for refining triangular grids suitable for adaptive and multigrid techniques International Journal for Numerical Methods in Engineering 20 1984 745 756 Local modification of meshes for adaptive and or multigrid finite element methods Journal of Computational and Applied Mathematics 36 1991 79 89 I G Rosenberg and F Stenger A lower bound on the angles of triangles constructed by bisecting the longest side Math Comp 29 1975 390 395 M Stynes On faster convergence of the bisection method for all triangles Math Comp 35 1980 1195 1201 R S Varga Matrix iterative analysis Prentice Hall Englewood Cliffs NJ 1962 R Verf rth A posteriori error estimates for nonlinear problems Finite element discretizations of elliptic equations Math Comp 62 1994 no 206 445 475 A review of a posteriori error estimation and adaptive mesh refinement techniques John Wiley amp Sons Ltd New York NY 1996 J
28. etize the elliptic equation The equations is the solved using MATLAB s builtin sparse direct solver and a posteriori error estimates are computed from the discrete solution to drive adaptive mesh refine ment The idea of adaptive error control in finite element methods is to estimate the behavior of the actual solution to the problem using only a previously computed numerical solution and then use the estimate to build an improved numerical solution by upping the polynomial order p refinement or refining the mesh h refinement where appropriate Note that this approach to adapting the mesh or polynomial order to the local solution behavior affects not only approximation quality but also solution complexity if a target solution accuracy can be obtained with fewer mesh points by their judicious placement in the domain the cost of solving the discrete equations is reduced sometimes dramatically because the number of unknowns is reduced again sometimes dramatically Generally speaking if an elliptic equation has a solution with local singular behavior such as would result from the presence point loads delta functions in the forcing function right hand side of equation 2 1 then adaptive methods tend to give dramatic improvements over non adaptive methods There are several approaches to adaptive error control although the following two approaches based on a posteriori error estimation are usually the most effective and are in fact equiv
29. inear convergence properties of the outer inexact Newton iteration in Algorithm 4 2 this leads to an overall complexity of O N for the solution of the discrete nonlinear problems in Step 1 of Algorithm 4 1 Combining this low complexity solver with the judicious placement of unknowns only where needed due to the error estimation in Step 2 and the subdivision algorithm in Steps 3 6 of Algorithm 4 1 leads to an effective low complexity approximation technique for solving this general class of elliptic problems 6 AVAILABILITY OF MCLITE MCLite and various supporting tools are available under the GNU copyleft license and may be found at the following website http www scicomp ucsd edu mholst codes mclite APPENDIX ACTUALLY USING MCLITE Here are is a brief description of all routines in the package this information is also contained in the README file distributed with the package documentation files file README THIS FILE description of the package file COPYING the GNU license which governs package distribution file QUICKSTART if you have no patience 10 M HOLST primary controlling routines file go m main MCLite driver program file assem m assemble the discrete system solve the discrete system with newton s method get master element information file newton m file mastr m file read m read in a mesh from a standard MCSF mesh file file write m write out a mesh to a standard MCSF mesh file file writemc
30. ired to produce a globally conforming mesh described below at the end of a refinement step is guaranteed to terminate in a finite number of steps cf 38 39 so that the refinements remain local Element shape is crucial for approximation quality the bisection procedure in step 4 is guaranteed to produce nondegenerate families if the longest edge is bisected is used in 2D 40 41 and if marking or homogeneity methods are used in 3D 2 15 14 32 35 37 Whether longest edge bisection is nondegenerate in 3D apparently remains an open question Figure 2 shows a single subdivision of a 2 simplex or a 3 simplex using either 4 section first figure from left 8 section fourth figure from left or bisection third and sixth figures from left The paired triangle in the 2 simplex case of Figure 2 illustrates 6 M HOLST Subdividing 2 simplices triangles Subdividing 3 simplices tetrahedra SAD FIGURE 2 Refinement of 2 and 3 simplices using 4 section 8 section and bisection the nature of conformity and its violation during refinement A globally conforming simplex mesh is defined as a collection of simplices which meet only at vertices and faces for example removing the dotted bisection in the third figure from the left in Figure 2 produces a non conforming mesh Non conforming simplex meshes create several theoretical as well as practical implementation difficulties and the algorithms in MCLite as well as those in M
31. king the mesh done N 16 L 18 time 0 014956 MAIN refining the mesh done N 19 L 22 time 0 153644 MAIN plotting the manifold done N 19 L 22 press return MAIN marking the mesh done N 117 L 206 time 0 099601 MAIN refining the mesh done N 219 L 406 time 5 64105 MAIN plotting the manifold done N 219 L 406 press return done N 219 L 406 press return MAIN plotting the mesh done N 219 L 406 press return MAIN nonlinear solve starting N 219 L 406 NEWTON iter 0 IF u 1 NEWTON iter 1 IF u 1 1 91734 2 9574e 15 MAIN nonlinear solve finished time 3 25056 MAIN discretization error is 0 106009 MAIN graphing matrix done N 219 L 406 press return MAIN showing nonzero structure done N 219 L 406 press return MAIN plotting FEM solution done N 219 L 406 jaa press return ACKNOWLEDGMENTS The author thanks R Bank for many enlightening discussions REFERENCES R A Adams Sobolev spaces Academic Press San Diego CA 1978 2 D N Arnold A Mukherjee and L Pouly Locally adapted tetrahedral meshes using bisection 1997 10 11 12 13 I Babu ka and W C Rheinboldt Error estimates for adaptive finite element computations SIAM J Numer Anal 15 1978 736 754 A posteriori error estimates for the finite element method Int J Numer Meth Engrg 12 1978
32. l rep resentation of the topology along with a set of coordinate labels MCLite works primarily with the topology of the domain i e the connectivity of the polyhedral representation The geometry of the domain manifold is provided primarily through the form definitions MC carries this a bit further allowing for the use of 2 and 3 manifolds with multiple coordinate systems as PDE domains e Dimension independence While MCLite is a two dimensional implementation all of the algorithms extend immediately to three and higher dimensions To achieve this dimension independence MCLite employs the simplex as its fundamental geometrical object for defining finite element bases This allows MCLite to be used as a prototype code for trying things out that will later be imple mented in the ANSI C code MC The abstract weak form approach to defining the problem allows for the complete definition of a problem in MCLite by writing only a few lines of MATLAB to define the two weak forms Changing to a different problem involves providing only a different definition of the forms and a different domain description 5 2 Topology and geometry representation in MCLite A datastructure referred to as the ringed vertex cf 29 is used to represent meshes of d simplices of arbitrary topology This datastructure illustrated in Figure 3 is similar to the winged edge quad edge and edge facet datastructures commonly used in the computational geometry commu
33. lt DFO Ak Ok D3 pi gt F lt FO ark pi gt U pi k 1 k 1 As long as the integral based forms lt F gt and lt DF gt can be evaluated at individual points in the domain then quadrature can be used to build the Newton equations regardless of the complexity of the forms This is one of the most powerful features of the finite element method and is exploited to an extreme in the code MCLite and MC see 29 It can be shown that the Newton iteration above is dominated by the computational complexity of solving the n linear algebraic equations in each iteration cf 10 26 We use MATLAB s builtin sparse direct solver in MCLite for the solution of these equations which is know to have complexity of O n for model problems in two dimensions However the complexity of sparse direct methods decays to O n in three dimensions and as a result we employ algebraic multilevel methods in the MC implementation cf 29 MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 7 5 THE COMPUTER PROGRAM MCLITE MCLite is an adaptive multilevel finite element MATLAB code developed by M Holst over several years at Caltech and UC San Diego It is a two dimensional MATLAB prototype of the two and three dimensional ANSI C code MC 29 5 also written by M Holst MCLite is designed to produce provably accurate nu merical solutions to two dimensional scalar nonlinear elliptic equations in an efficient way MCLite employs a
34. n zy For this problem The correct specification of the two forms the Dirichlet function and the analytical solution which is available in this particular case are as follows function thetam fu_v evalKey parm L xm ym u ux uy pr prx pry Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh Prototype VA thetam fu_v evalKey parm L xm ym u ux uy pr prx pry Purpose Evaluate the nonlinear form by providing the value of the quantity under the integral sign at a particular quadrature point Because we do this for all of the elements at one time to make things reasonably fast we pass some arrays around Input hh h evalKey gt area or surface integral h L gt number of elements to do all at once h xm 1 L 1 gt x coordinates of quadrature points one per element h ym 1 L 1 gt y coordinates of quadrature points one per element VA u 1 L 1 gt u evaluated on master element h ux 1 L 1 gt partial w r t x of u one per element h uy 1 L 1 gt partial w r t x of u one per element h pr gt phi r evaluated on master element h prx 1 L 1 gt partial w r t x of phi r one per element h pry 1 L 1 gt partial w r t x of phi r one per element Output h thetam gt the integrand for the area or surface integral h not including the jacobian of transformation Author Michael Holst lambda parm 1
35. nity for representing 2 manifolds 36 but it can be used more generally to represent arbitrary d manifolds d 2 3 It maintains a mesh of d simplices with near minimal storage yet for shape regular non degenerate meshes it provides O 1 time access to all information necessary for refinement un refinement and discretization of an elliptic operator The ringed vertex datastructure also allows for dimension independent implementations of mesh refinement and mesh manipulation with one implementation covering arbitrary dimension d An interesting feature of this datastructure is that the structures used for vertices simplices and edges are all of fixed size so that a fast array based imple mentation is possible as opposed to a less efficient list based approach commonly taken for finite element implementations on unstructured meshes A detailed description of the ringed vertex datastructure along with a complexity analysis of various traversal algorithms can be found in 29 Since MCLite is based entirely on the d simplex for adaptive refinement it employs simplex bisection using one of the simplex bisection strategies outlined earlier Bisection is first used to refine an initial subset of the simplices in the mesh selected according to some error estimates discussed below and then a closure algorithm is performed in which bisection is used recursively on any non conforming simplices until a conforming mesh is obtained outlined above
36. ocumentation for the routine read m This documentation will be your best guide to understanding and using the MCLite package I stress again read the documentation in the header blocks of the routines and also read the documentation in the code itself it is quite well documented throughout that is the only way I can write code and expect to understand it the next day The most confusing thing about the MCLite package is usually the ringed vertex datastructure that is used to represent the simplex mesh By reading the documentation in the file read m you will understand exactly what the basic datastructure is The simplex rings are simply linked lists of simplices that begin at vertices from any vertex you can walk this list to find all simplices triangles in MCLite which use that vertex By using this single structure you can assemble information such as which simplices are edge neighbors and so forth Similarly the edge rings are linked lists of edges which begin at vertices from any vertex you can find all edges which use that vertex By using this single structure you can assemble information such as which vertices share edges and so forth The routines getnabor m and sinring m do some of these things again start reading the documentation in the routines and you will begin to understand the overall structure The routines in the low level simplex ring manipulation routines section above simply build destroy traverse and manipul
37. ptive simplex subdivision and conformity A priori error analysis for the finite element method for addressing the first issue is now a well understood subject 19 20 Much activity has recently been centered around a posteriori error estimation and its use in adaptive mesh refinement algorithms 4 3 6 43 44 45 These estimators include weak and strong residual based estimators 4 3 43 as well as estimators based on the solution of local problems 11 13 The challenge for a numerical method is to be as efficient as possible and a posteriori estimates are a basic tool in deciding which parts of the solution require additional attention While the majority of the work on a posteriori estimates has been for linear problems nonlinear extensions are possible through linearization theorems cf 43 44 The solve estimate refine structure in MCLite similar to that in MC exploiting these a posteriori estimators is as follows Algorithm 4 1 Adaptive multilevel finite finite element approximation e While u unal x gt TOL do 1 Find un E Un such that lt F un un gt 0 Vun Vn Estimate u un x over each element set Q1 Q2 9 Place simplices with large error in refinement Q1 Bisect all simplices in Q1 removing them from Q1 and place any nonconforming simplices created in Q2 5 Q1 is now empty set Q1 Q2 Q2 9 6 If Q1 is not empty goto 4 e end while The conformity loop 4 6 requ
38. s m low level routine to write an MCSF mesh file file writeoff m write out mesh to standard OFF file or socket file writeoffs m write out solution to standard OFF file or socket file zedgmesh m file mcin m builds an MCEF mesh by treating a matrix as the graph a sample MCSF mesh file the unit square a sample MCSF mesh file a torus a sample MCSF mesh file another torus a sample OFF mesh file file mcinTOR m file writemce m low level routine to write an MCEF mesh file file mcout m file mcout off high level error estimation and refinement routines file mark m tag simplices for refinement e g error estimation file refin m refine a set of marked simplices until conformity file refinbis m one pass through simplices bisecting marked ones file refinqud m one pass through simplices quadrasecting marked ones low level simplex ring manipulation routines file bldsring m build simplex rings for all simplices in the mesh file kilring m destroy simplex rings for all simplices in the mesh file chkmesh m extensive consistency conformity check of entire mesh file addsring m add a single simplex to all of its simplex rings file delsring m delete a single simplex from all of its rings file sinring m is a particular simplex in a particular simplex ring file addering m add a single edge to all of its edge rings file getedge m get the unique edge if
39. such a function up H Q we define the following affine or translated Sobolev space H p Q GE HQ utup we Hb p 9 gp udlapa It is easily verified that the solution amp to the problem 2 1 2 3 if one exists lies in H a p Q although unfortunately Hj p Q is not a vector space since it is not linear Consider that if u v H p Q it holds that u v H p Q It is important that the problem be phrased in terms of vector spaces such as Hy p Q in order that certain analysis tools and concepts be applicable Therefore we will do some additional transformation of the problem So far we have shown that the solution to the original problem 2 1 2 3 also solves the following problem 2 7 Find H p Q such that lt F a v gt 0 Wu Hi p MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE 3 where from equations 2 4 and 2 5 the scalar valued function of and v also called a form nonlinear in w but linear in v is defined as lt F ii v gt T a x Va Vv b x V v dx f c x i Va u ds Q anQ Since we can write the solution to equation 2 7 as u up for a fixed up satisfying gp up lana we can rewrite the equations completely in terms of u and a new nonlinear form lt F gt as follows 2 8 Find u Ho p Q such that lt F u v gt 0 W H p Q 2 9 lt F u v gt a x u up V u up Vu b x u up V u
40. thetam 1 L 1 zeros L 1 hhh error else assert 0 dfu_wv 1 end end function gxy u_d x y hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh hhh hhh Prototype gxy u_d x y Purpose Essential boundary condition function Author Michael Holst L one size x gxy zeros L 1 gxy u_t x y function uxy u_t x y thhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhht th loll 17 18 M HOLST Prototype VA uxy u_t x y Purpose VA True solution for testing Author Michael Holst L one size x uxy zeros L 1 uxy sin pi x sin pi ty To control the adaptivity in MCLite the user provides an error estimator routine called mark m Given all of the information about an element and the current discrete solution in the element this routine decides whether or not the element should be refined in order to reduce the element wise error The default mark m routine provided with MCLite marks elements for refinement based on a simple geometric condition if an element crosses the unit circle then it is marked for refinement Placing the error estimator in user land allows for quite a bit of flexibility for trying out various error indicators Let s look at the behavior of MCLite when given the Bratu problem above over the unit square and given the simple geometric element marker as an error estimator We will look
41. this for all of the elements at one time to make things reasonably fast we pass some arrays around Input evalKey gt area or surface integral L gt number of elements to do all at once xm 1 L 1 gt x coordinates of quadrature points one per element ym 1 L 1 gt y coordinates of quadrature points one per element u 1 L 1 gt u evaluated on master element ux 1 L 1 gt partial w r t x of u one per element uy 1 L 1 gt partial w r t x of u one per element ps gt phi s evaluated on master element psx 1 L 1 gt partial w r t x of phi s one per element MCLITE AN ADAPTIVE MULTILEVEL FINITE ELEMENT MATLAB PACKAGE T psy 1 L 1 gt partial w r t x of phi s one per element h pr gt phi r evaluated on master element h prx 1 L 1 gt partial w r t x of phi r one per element h pry 1 L 1 gt partial w r t x of phi r one per element Output h thetam gt the integrand for the area or surface integral h not including the jacobian of transformation Author Michael Holst lambda parm 1 hhh area integral if evalKey 0 hhh coefficients atilde ones L 1 the first order coefficient function hhh linearized operator evaluated at the FEM function u thetam 1 L 1 atilde 1 L 1 psx 1 L 1 prx 1 L 1 psy 1 L 1 pry 1 L 1 lambda exp u 1 L 1 ps pr hhh edge integral for natural boundary condition else if evalKey 1
42. vely is effected by providing a simplex mesh input file mcin m in MCSF format along with a single routine edgsplit m which tells MCLite how to bisect edges in the mesh when doing refinement The exact specification of the MCSF format is described in detail in the header to the mesh read routine read m The edgsplit m file can be simply the usual bisection of a line in the plane the average of the two input points or it can be more complicated to reflect the correct refinement of boundary edges or to allow for the underlying domain to be a 2 manifold this is done in a more sophisticated manor in MC to handle tensor equations correctly cf 29 MCLite is used by beginning a MATLAB session and then executing the script go m This script is a simple driver that first reads in a mesh in MCSF format the simplex mesh input file format that MCLite and MC share and then goes into the discretize solve estimate refine loop in Algorithm 4 1 The script can be completely controlled by editing it and changing the various parameters that appear in the controlling parameters section of the driver Along with the PDE and mesh specification routines described above the MCLite package can be used simply by editing and running go m The go m file is listed below Ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh Prototype None script Purpose Driver script for MCLite package Author Michael Holst 12 M

Download Pdf Manuals

image

Related Search

Related Contents

LED FE-60 IR Flower Effect  Installation  Combics 2 - Precision Weighing Balances Presents Sartorius  Genesis Advanced Technologies Stealth B-200 User's Manual    Manuel d`utilisation  RPC Broker V. 1.1 Technical Manual    TRADE PACK SNOOPER-04-4  User`s Manual  

Copyright © All rights reserved.
Failed to retrieve file