HJB_Solver_Package

所属分类:matlab编程
开发工具:matlab
文件大小:304KB
下载次数:23
上传日期:2012-02-14 06:38:11
上 传 者imas
说明:  Hamilton-Jacobi solver on unstructured triangular grids

文件列表:
HJB_Solver_Package (0, 2009-07-30)
HJB_Solver_Package\@SolveEikonal (0, 2009-07-30)
HJB_Solver_Package\@SolveEikonal\Compute_Soln.m (1139, 2009-07-22)
HJB_Solver_Package\@SolveEikonal\Hopf_Lax_Update.m (1097, 2009-07-22)
HJB_Solver_Package\@SolveEikonal\private (0, 2009-07-30)
HJB_Solver_Package\@SolveEikonal\private\Find_Min_On_Tri.m (1056, 2009-07-22)
HJB_Solver_Package\@SolveEikonal\private\Get_Triangle_Neighbors.m (2327, 2009-07-30)
HJB_Solver_Package\@SolveEikonal\private\setdiff_fast.m (484, 2009-07-22)
HJB_Solver_Package\@SolveEikonal\SolveEikonal.m (2631, 2009-07-22)
HJB_Solver_Package\@SolveEikonal\Sweep_Mesh_Once.m (287, 2009-07-20)
HJB_Solver_Package\@SolveEikonalmex (0, 2009-07-30)
HJB_Solver_Package\@SolveEikonalmex\Compute_Soln.m (1689, 2009-07-30)
HJB_Solver_Package\@SolveEikonalmex\private (0, 2009-07-30)
HJB_Solver_Package\@SolveEikonalmex\private\Get_Triangle_Neighbors.m (2327, 2009-07-30)
HJB_Solver_Package\@SolveEikonalmex\private\setdiff_fast.m (484, 2009-07-22)
HJB_Solver_Package\@SolveEikonalmex\SolveEikonalmex.m (3356, 2009-07-22)
HJB_Solver_Package\Compile_HJB_Solve.m (580, 2009-07-30)
HJB_Solver_Package\dist_circle.m (178, 2009-07-22)
HJB_Solver_Package\HJB_Data.mat (18155, 2009-07-22)
HJB_Solver_Package\HJB_Solve (0, 2009-07-30)
HJB_Solver_Package\HJB_Solve\HJB_Solver.cc (11440, 2009-07-30)
HJB_Solver_Package\HJB_Solve\HJB_Solver.h (2088, 2009-07-25)
HJB_Solver_Package\HJB_Solve\mexHJB_Solve.cpp (2741, 2009-07-30)
HJB_Solver_Package\HJB_Solve\Misc_Stuff.h (561, 2009-07-27)
HJB_Solver_Package\HJB_Solve\Setup_2D_Triangle_Mesh_Data.c (3667, 2009-07-27)
HJB_Solver_Package\HJB_Solve\Setup_Matrix_Data.c (3035, 2009-07-30)
HJB_Solver_Package\HJB_Solve\Setup_Node_Data.c (2487, 2009-07-27)
HJB_Solver_Package\HJB_Solve\Setup_Param.c (4273, 2009-07-27)
HJB_Solver_Package\HJB_Solve\Triangle_Neighbor_Data.cc (3961, 2009-07-27)
HJB_Solver_Package\HJB_Solve\Triangle_Neighbor_Data.h (1594, 2009-07-27)
HJB_Solver_Package\screen_shot.jpg (293002, 2009-07-23)
HJB_Solver_Package\Test_HJB_Solve.m (3752, 2009-07-23)
HJB_Solver_Package\VERSION_HISTORY.txt (264, 2009-07-30)

Hamilton-Jacobi solver on unstructured triangular grids (C) 07/20/2009, Shawn W. Walker This code is open source under the BSD license (see the LICENSE.txt file). DESCRIPTION ======================================================================== This code implements a variational solver for static Hamilton-Jacobi-Bellman type equations on unstructured triangular grids. The implementation is based on the paper: "Finite-Element Discretization Of Static Hamilton-Jacobi Equations Based On A Local Variational Principle" by F. Bornemann and C. Rasch Comments: 1. There is no restriction on the type of triangulation, i.e. it does not need to be acute. But the method will require more than one sweep of the mesh (because of lack of causality). Howver, only a few iterations should be necessary to achieve convergence. 2. Two versions of the code are implemented. One is pure MATLAB and the other uses a MEX function. The MEX version is faster by about a factor of 100 for the example that I include. 3. The MEX version allows for a variable distance metric. See the test code for a demonstration. 4. The MEX version uses a FIFO buffer to implement a non-linear adaptive Gauss-Seidel iteration (see the paper). FIFO buffers cannot be easily implemented in pure MATLAB. 5. The MEX version C++ code uses Object-Oriented methods. 6. I put in a lot of error checking to make the code robust to user-error. However, I make no claim that this software is completely correct!!! Use it at your own risk! USAGE ======================================================================== 1. Both versions use the OOP interface of MATLAB. You should put the following directories: \@SolveEikonal \@SolveEikonalmex in an appropriate location, i.e. in your MATLAB path. 2. If you want to use the MEX version, you need a C++ compiler. I used MS Visual C++, express edition. I have found that this is better than the built in C compiler in MATLAB. The code is located in this sub-directory: \HJB_Solve Also, see the file `Compile_HJB_Solve.m' for how to compile. 3. To run a demo, run this m-file: `Test_HJB_Solve.m'. This will load an example mesh from the MATLAB data file: `HJB_Data.mat'. 4. Warning! Make sure the triangle meshes you use are positively oriented! This code *might* not work if the triangles are not positively oriented. 5. If you want slightly more efficient initialization, modify the following files: \@SolveEikonal\private\Get_Triangle_Neighbors.m \@SolveEikonalmex\private\Get_Triangle_Neighbors.m to use `sparse2' instead of `sparse'. <-- this can be found in the SuiteSparse package by Tim Davis. 6. For ***-bit systems: you may need to change a line in this file: \@SolveEikonalmex\Compute_Soln.m The line to look at is: [u_soln, ERROR] = mexHJB_Solve(obj.TM.Vtx,uint32(obj.TM.DoFmap),obj.TM.TriStarData,uint32(obj.Bdy.Nodes),... uint32(Adj_Node_List),u_soln,obj.Param,obj.Metric); You may need to change `uint32' to `uint***'. COMPATIBILITY NOTES ======================================================================== The tool was developed in its current form with R2007a. Tested in 2009 on systems: -- Windows XP, 32-bit Fully functional with R2007a. -- LINUX, ***-bit Fully functional with R2007a. BUG REPORTS AND FEEDBACK ======================================================================== Please report any problems and/or bugs to: walker@cims.nyu.edu

近期下载者

相关文件


收藏者