123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- module crack; % Top level CRACK module.
- % Revised for development system by FJW, 28 July 1998
- % May require more than one run to compile using Win32-PSL.
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- % %
- % CRACK Version 21 March 96 %
- % %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- comment
- Title: CRACK
- Authors:
- Andreas Brand
- Institut fuer Informatik
- Friedrich Schiller Universitaet Jena
- 07740 Jena, Germany
- email: maa@hpux.rz.uni-jena.de
- tel.: + 49 3641 631123 ,
- Thomas Wolf
- School of Mathematical Sciences
- Queen Mary and Westfield College
- University of London
- London E1 4NS
- email: T.Wolf@maths.qmw.ac.uk
- tel.: + 44 71 975 5493
- Date of last change: 1996-03-21
- Abstract:
- CRACK is a package for solving overdetermined systems of partial or
- ordinary differential equations (PDEs, ODEs). Examples of programs
- which make use of CRACK for investigating ODEs (finding symmetries,
- first integrals, an equivalent Lagrangian or a "differential
- factorization") are added. The manual CRACK.TEX gives further details.
- REDUCE version: 3.6.
- CRACK uses the package ODESOLVE of Malcolm MacCallum which is included
- in REDUCE 3.6.
- T. Wolf, An Analytic Algorithm for Decoupling and Integrating
- systems of Nonlinear Partial Differential Equations, J. Comp.
- Phys., no. 3, 60 (1985) 437-446.
- T. Wolf, The Symbolic Integration of Exact PDEs, preprint.
- M.A.H. MacCallum, An Ordinary Differential Equation Solver for REDUCE,
- Proc. ISAAC'88, Springer Lect. Notes in Comp Sci. 358,
- 196--205.
- Keywords: partial differential equations, computer analytic
- $
- %% Additions by FJW. The following are defined in PSL but not CSL.
- %% (See also crstart.)
- fluid '(promptstring!*)$
- if getd 'setprop then flag('(setprop), 'lose);
- % Could also use conditional parsing (!#if) for this.
- % The following smacro definitions MUST be in this header file!
- symbolic smacro procedure flag1(U, V);
- %% The identifier U is flagged V.
- %% FJW: Defined and flagged lose in PSL only.
- %% FJW: This implementation based on the PSL manual.
- flag({U}, V)$
- symbolic smacro procedure remflag1(U, V);
- %% Remove V from the property list of identifier U.
- %% FJW: Defined and flagged lose in PSL only.
- %% FJW: This implementation based on the PSL manual.
- remflag({U}, V)$
- %% !#if (equal version!* "REDUCE Development Version")
- %% ACH: To build with the bootstrappping version need this test instead:
- !#if (neq version!* "REDUCE 3.6")
- % Taken from crinit, but needs to be here:
- fluid '(REDUCEFUNCTIONS_
- cont_ odesolve_ print_ print_more print_all
- facint_ potint_ freeint_ level_ poly_only safeint_ solvealg_
- logoprint_ independence_ tr_gensep tr_decouple homogen_
- tr_genint tr_main contradiction_ stop_ fname_ nfct_ fnew_
- ftem_ genint_ gensep_ new_gensep ineq_ time_ adjust_fnc
- subst_0 subst_1 subst_2 subst_3 subst_4 cost_limit5
- pdelimit_0 pdelimit_1 pdelimit_2 pdelimit_3 pdelimit_4
- length_inc tr_redlength proc_list_ full_proc_list_ to_do_list
- !*batch_mode printmenu_ expert_mode repeat_mode
- dec_hist dec_hist_list depl_copy_
- nequ_ eqname_ allflags_ prop_list maxalgsys_ stepcounter_
- batchcount_ crackrules_ userrules_ rulelist_ history_
- explog_ trig1_ trig2_ trig3_ trig4_ trig5_ trig6_ trig7_ trig8_
- max_red_len max_factor orderings_ tr_orderings simple_orderings
- lex_ collect_sol)$
- create!-package('(
- crack
- crinit % initialisation and help
- crmain % main module
- crdec % decouple module
- crsep % separation module
- crgensep % generalized separation module
- crint % integration of pde's module
- crsimp % simplification and substitution module
- crutil % procedures used in several modules
- crsimpso % simplification of the results
- %% FJW: crintfix is for REDUCE 3.6 (and earlier versions?)
- %% crintfix % patch for the integration
- crequsol % equivalence of solutions
- crshort % reductions in length
- crorder % orderings support
- crstart % FJW: Startup code (moved from module crack)
- ), nil);
- !#else
- % For distributed REDUCE:
- % FJW: Load support packages, but not when compiling:
- !#if (getd 'packages_to_load)
- packages_to_load ezgcd,odesolve,factor,int,algint;
- !#else % for REDUCE 3.6
- apply1('load_package, '(ezgcd odesolve factor int algint));
- !#endif
- in crinit!.red$ % initialisation and help
- in crmain!.red$ % main module
- in crdec!.red$ % decouple module
- in crsep!.red$ % separation module
- in crgensep!.red$ % generalized separation module
- in crint!.red$ % integration of pde's module
- in crsimp!.red$ % simplification and substitution module
- in crutil!.red$ % procedures used in several modules
- in crsimpso!.red$ % simplification of the results
- !#if (equal version!* "REDUCE 3.6")
- in crintfix!.red$ % patch for the integration
- !#endif
- in crequsol!.red$ % equivalence of solutions
- in crshort!.red$ % reductions in length
- in crorder!.red$ % orderings support
- %********************************************************************
- %
- % $Id: crack.red,v 1.1 1998/06/04 15:03:16 tw Exp tw $
- %
- %********************************************************************
- setcrackflags()$
- !*fullroots:=t$
- !*dfprint:=t$
- !#endif
- endmodule;
- end$
|