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)
近期下载者:
相关文件:
收藏者: