FD

所属分类:数学计算
开发工具:Fortran
文件大小:0KB
下载次数:0
上传日期:2016-05-11 20:08:02
上 传 者sh-1993
说明:  有限差分工具包(求解非线性偏微分方程的高级编程语言),
(Finite difference toolkit (A high-level programming language to solve nonlinear PDEs),)

文件列表:
DEVELOPMENT (4733, 2016-05-08)
FD.mpl (123147, 2016-05-08)
INSTALL (155, 2016-05-08)
LICENSE (160, 2016-05-08)
archive/ (0, 2016-05-08)
archive/Newton.mpl (1220, 2016-05-08)
archive/sdf_read.h (608, 2016-05-08)
archive/tests/ (0, 2016-05-08)
archive/tests/Built_in_FDA_ORDER (1881, 2016-05-08)
archive/tests/tDiscrete.mpl (247, 2016-05-08)
archive/tests/tDval.mpl (699, 2016-05-08)
archive/tests/tExtract_FD.mpl (605, 2016-05-08)
archive/tests/tFD_Even.mpl (570, 2016-05-08)
archive/tests/tFD_Odd.mpl (557, 2016-05-08)
archive/tests/tFD_Periodic.mpl (88, 2016-05-08)
archive/tests/tFGF.mpl (633, 2016-05-08)
archive/tests/tFMS.mpl (379, 2016-05-08)
archive/tests/tGen_Code.mpl (1079, 2016-05-08)
archive/tests/tGen_Expr.mpl (1046, 2016-05-08)
archive/tests/tManual.mpl (1985, 2016-05-08)
archive/tests/tManual2.mpl (415, 2016-05-08)
archive/tests/tNewton.mpl (455, 2016-05-08)
archive/tests/tOrder.mpl (524, 2016-05-08)
archive/tests/tSee_Order.mpl (601, 2016-05-08)
archive/tests/tSten.mpl (1357, 2016-05-08)
archive/tests/tStencil.mpl (1052, 2016-05-08)
archive/tests/t_IRE.mpl (208, 2016-05-08)
archive/tests/t_diss.mpl (618, 2016-05-08)
archive/tests/t_init.mpl (493, 2016-05-08)
archive/tests/testall.mpl (2534, 2016-05-08)
archive/tvd.inc (2362, 2016-05-08)
doc/ (0, 2016-05-08)
examples/ (0, 2016-05-08)
examples/A_Gen_Eval_example.mpl (598, 2016-05-08)
examples/CtoD_example.mpl (176, 2016-05-08)
examples/CtoD_example.mw (26207, 2016-05-08)
examples/DDS_example.mpl (504, 2016-05-08)
examples/DDS_example.mw (24494, 2016-05-08)
... ...

FD: Finite Difference Simulation Toolkit ======================================== FD is a toolkit for finite difference methods used in solving Partial Differential Equations (PDE). Specifically, it is a set of [Maple](http://www.maplesoft.com/) tools that provides a high level language to define a PDE over a discretized numerical domain and solve it. This toolbox can compute the Finite Difference Approximation (FDA) equivalent of a PDE and generate low level language (Fortran) routines and C wrappers to evaluate the FDA expression or solve it for the dynamical(unknown) field. The process of posing a PDE as an FDA expression has several complications, including finding the proper terms for derivatives with correct accuracy, handling boundary points, initialization, developing testing facilities and generating solver routines. FD is designed to simplify these steps while allowing full control over the entire process and helps the user to focus on the underlying physical/mathematical phenomena described by the PDE. It also provides a rapid prototyping language to apply various discretization schemes, test the desired accuracy and develop a solid set of routines that are parallel ready and can be used within a framework of a parallel computing infrastructure such as [PAMR](http://laplace.physics.ubc.ca/Doc/pamr/PAMR_ref.pdf). Software Homepage ----------------- This software's homepage and extended tutorials/manual is here: Quick Dive into the Toolkit -------------------------- See the following maple script that creates solver code for 1-D heat equation with fixed boundary conditions. FD is designed to be human readable and automates the finite differencing process as much as possible while allowing full control: ![alttag](https://github.com/rmanak/FD/blob/master/img/fdimg.png) The above maple source code is here [[+]](quick\_dive.mpl) Features -------- - Provides a simple syntactic language to specify a PDE and its boundary conditions over a discretized numerical domain (Using a derived Maple data structure: *Discrete Domain Specifier* ``DDS``) - Creates Fortran routines and C wrappers for a given ``DDS`` that can evaluate an FDA expression or solve it using Newton-Gauss-Seidel iterative method (commonly used for non-linear PDEs) - Allows user specified discretization scheme such as forward, backward, centered or asymmetric discretization with used-defined accuracy via a data type (Maple table): *Finite Difference Specifier*, ``FDS``. - Can handle various boundary conditions such as periodic boundary, inner boundary conditions (imposing specific symmetry on the functions such as even or odd behaviour on axis/point of symmetry) or other types of user specified conditions, such as particular asymptotic behaviour, outgoing (Neumann), fixed (Dirichlet), etc. - Generates finite difference approximation of an arbitrary partial differential expression of up to 4 variables, ``f(t,x,y,z)``, for a used defined accuracy and discretization scheme. - Creates *parallel ready* Fortran routine that can interface with parallelization infrastructures such as PAMR - Can parse a given continuum algebraic/differential expression and can convert it directly to a Fortran routine to evaluate it on the discretized domain. Doing so, it provides a rapid prototyping language to create residual evaluators for a given differential expression for testing purposes. - Allows manual overwrite of discretization scheme by creating *Manual Finite Difference Operators* defined via the built-in fundamental *difference* operator. - Mainly designed with a focus on highly complex and non-linear time dependent PDEs or boundary value PDEs that occur in physical systems. - It is written in Maple, a powerful symbolic manipulation language and therefore inherits all the capabilities of Maple, including various tools to deal with PDEs and algebraic expressions. - It was originally developed in [Numerical Relativity group](http://laplace.phas.ubc.ca) in UBC to solve the Einstein's equation which is a set of 10 highly non-linear coupled PDEs, where even writing down the equations in their continuum form needs to be done using symbolic manipulation software such as [GRTensor](http://grtensor.phy.queensu.ca). Therefore it is mostly developed to deal with large differential expressions that are machine generated and carries a full explicit form with all the dependencies and derivatives written in Maple's canonical form like: ``diff(f(t,x,y),x,x)+g(x,y)+diff(g(x,y),y,y,y)+...`` - Being a Maple toolbox, FD unifies the two parts of: (1)deriving and manipulating the set of PDEs with all the required work variables, and (2) converting them into FDA expression and solving them. This can further help to reduce potential human errors. Download -------- You can download the FD package from the software's [homepage](http://rmanak.github.io/FD), wget http://rmanak.github.io/FD/FD.tar.gz or clone this git repository: git clone https://github.com/rmanak/FD/ Installation ------------ There is indeed nothing to install, you can simply download the FD package, extract the files, and read the ``FD.mpl`` file in your maple worksheet: read("/your/path/to/FD.mpl"); Here is a series of shell commands that would download and extract the package and execute the first FD script: wget http://laplace.phas.ubc.ca/People/arman/FD_doc/FD.tar.gz tar -xvf FD.tar.gz cd FD maple < fd_first_run.mpl Getting Started --------------- See the [getting started section](http://rmanak.github.io/FD/start.html) for running the first finite difference script using FD. Tutorials --------- See the [tutorials section](http://rmanak.github.io/FD/tutorials.html) of the software's homepage. User Manual ----------- The extended user manual is [[here]](http://rmanak.github.io/FD/doc/manual.pdf)

近期下载者

相关文件


收藏者