diff options
author | allen <allen@0a4070d5-58f5-498f-b6c0-2693e757fa0f> | 1999-11-01 11:27:16 +0000 |
---|---|---|
committer | allen <allen@0a4070d5-58f5-498f-b6c0-2693e757fa0f> | 1999-11-01 11:27:16 +0000 |
commit | cab79658b8e19947c3b4058f75961f01a055ef2e (patch) | |
tree | 0532e9dac09c72f6e1aa2942186ac65dba2b5e66 | |
parent | f6ebcf616a79e8a6ed1683187dc8d58e33980c21 (diff) |
This commit was generated by cvs2svn to compensate for changes in r2, which
included commits to RCS files with non-trunk default branches.
git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinInitialData/IDAxiBrillBH/trunk@3 0a4070d5-58f5-498f-b6c0-2693e757fa0f
79 files changed, 8526 insertions, 0 deletions
diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..45b8425 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,377 @@ + ******************************** + Welcome to the Cactus Code + Version 4.0 + ******************************** + +All Cactus source code is (c) Copyright by the Authors listed in the +respective README and source files that you will find scattered thru +the directory structure of all the thorns. This is a truly +collaborative development project that benefits from input of many +people worldwide and we try our best to give credit to every +contribution. The cactus code web page at + http://www.cactuscode.org +contains an extensive list of authors to all the thorns that are +part of the Cactus Code project. + +The flesh of the Cactus Code and the design of the project is (c) +Copyright 1997-99 by Gabrielle Allen, Tom Goodale, Joan Masso and Paul +Walker from the Numerical Relativity group of the Max-Planck-Institut +fuer Gravitationphysik / Albert Einstein Institute +(http://www.aei-potsdam.mpg.de). + +The Cactus Code is distributed under the GNU general public license +version 2 which is available below. All thorns distributed with Cactus +follow this license unless it is explicitly stated otherwise in the +corresponding README files. + +Please, take a look at the documentation in the main doc directory or +check the cactus web page for instructions on how to run the code, +report bugs, give feedback, etc. + +Thanks for using cactus. We hope you find it useful. Love it or hate +it, please let us know what you think. +- The Cactus Team <cactus@cactuscode.org> + +************************************************************************** + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) 19yy <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + + @@ -0,0 +1,8 @@ +Cactus Code Thorn IDAxiBrillBH +Authors : Steve Brandt, Paul Walker, Ryoji Takahashi +CVS info : $Header$ +-------------------------------------------------------------------------- + +This thorn does calculates initial data for a black hole distorted +by a even parity perturbation + diff --git a/doc/IDAxiBrillBH.tex b/doc/IDAxiBrillBH.tex new file mode 100644 index 0000000..0bbff8e --- /dev/null +++ b/doc/IDAxiBrillBH.tex @@ -0,0 +1,160 @@ +% Thorn documentation template +\documentclass{article} +\begin{document} + +\title{IDAxiBrillBH} +\author{Paul Walker, Steve Brand} +\date{1 September 1999} +\maketitle + +\abstract{Thorn IDAixBrillBH provides analytic initial data for vacuum + black hole spacetime: a single Schwarzschild black hole in + isotropic coordinates plus Brill wave. This initial data is + provided for the 3-conformal metric, it's spatial derivatives, and + extrinsic curvature.} + +\section{Purpose} + +The pioneer, Bernstein, studied single black hole which is +non-rotating and distorted in azimuthal line symmetry of 2 dimensional +case \cite{Bernstein93a}. In this non-rotating case, one choose the +condition, $K_{ij} = 0$, and +\begin{equation} +\gamma_{ab} = \psi^4 \hat \gamma_{ab}, +\end{equation} +where $\gamma_{ab}$ is the physical three metric and +$\hat{\gamma}_{ab}$ is some chosen conformal three metric. + +The Hamiltonian constraint reduces to +\begin{equation} +\hat \Delta \psi = \frac{1}{8}\psi \hat R, +\label{eqn:conformal_hamiltonian} +\end{equation} +where $\hat \Delta$ is the covariant Laplacian and $\hat R$ is Ricci +tensor for the conformal three metric. This form allows +us to choose an arbitrary conformal three metric, and then solve an +elliptic equation for the conformal factor, therefore, satisfying the +constraint equations ($K_{ij} = 0$ trivially satisfies the momentum +constraints in vacuum). This approach was used to create +``Brill wave'' in spacetime without black holes \cite{Brill59}. +Bernstein extended to the black hole spacetime. Using +spherical-polar coordinates, one can write the 3-metric, +\begin{equation} +\label{eqn:sph-cood} +ds^2 = \psi^4 (e^{2q} (dr^2 + r^2 d \theta^2) + r^2 \sin \theta d +\phi^2), +\end{equation} +where $q$ is the Brill ``packet'' which takes some functional form. +Using this ansatz with (\ref{eqn:conformal_hamiltonian}) leads to +an elliptic equation for $\psi$ which must be solved +numerically. Applying the isometry condition on $\psi$ at a finite +radius, and applying $M/2r$ falloff conditions on $\psi$ at the +outer boundary (the ``Robin'' condition), along with a packet which +obeys the appropriate symmetries (including being invariant under the +isometry operator), will make this solution describe a black hole with +an incident gravitational wave. The choice of $q=0$ produces +Schwarzschild solution. The typical $q$ function used in +axisymmetry, and considered here in the non-rotating case is +\begin{equation} +q = Q_0 \sin \theta^n \left [ \exp\left(\frac{\eta - + \eta_0^2}{\sigma^2}\right ) + \exp\left(\frac{\eta + + \eta_0^2}{\sigma^2}\right ) \right ]. +\end{equation} +Note regularity along the axis requires that the exponent $n$ must be +even. Choosing a logarithmic radial coordinate $\eta$, which related +asymptotic flat coordinate $r$ by $\eta = ln (2r/m)$, where m is a +scale parameter. One can rewrite (\ref{eqn:sph-cood}) as +\begin{equation} +ds^2 = \psi(\eta)^4 [ e^{2 q} (d \eta^2 + d\theta^2) + \sin^2 +\theta d\phi^2]. +\end{equation} + +In the previous Breinstein work, the above $r$ are transformed to a +logarithmic radial coordinate + +\begin{equation} +\label{eta_coord} +\eta = \mbox{ln} (\frac{2r}{m}). +\end{equation} + +The scale parameter $m$ is equal to the mass of the Schwarzschild +black hole, if $q=0$. In this coordinate, the 3-metric is +\begin{equation} +\label{eqn:metric_brill_eta} +ds^2 = \tilde{\psi}^4 (e^{2q} (d\eta^2+d\theta^2)+\sin^2 \theta +d\phi^2), +\end{equation} +and the Schwarzschild solution is +\begin{equation} +\label{eqn:psi} +\tilde{\psi} = \sqrt{2M} \cosh (\frac{\eta}{2}). +\end{equation} +We also change the notation of $\psi$ for the conformal factor is same +as $\tilde{\psi}$ \cite{Camarda97a}, for the $\eta$ coordinate has the +factor $r^{1/2}$ in the conformal factor. Clearly $\psi(\eta)$ and +$\psi$ differ by a factor of $\sqrt{r}$. The Hamiltonian +constraint is +\begin{equation} +\label{eqn:ham} +\frac{\partial^2 \tilde{\psi}}{\partial \eta^2} + \frac{\partial^2 + \tilde{\psi}}{\partial \theta^2} + \cot \theta \frac{\partial + \tilde{\psi}}{\partial \theta} = - \frac{1}{4} \tilde{\psi} +(\frac{\partial^2 q}{\partial \eta^2} + \frac{\partial^2 q}{\partial + \theta^2} -1). +\end{equation} + +For solving this Hamiltonian constraint numerically. At first +we substitute +\begin{eqnarray} +\delta \tilde{\psi} & = & \tilde{\psi}+\tilde{\psi}_0 \\ + & = & \tilde{\psi}-\sqrt{2m} \cosh(\frac{\eta}{2}). +\end{eqnarray} +to the equation~(\ref{eqn:ham}), then we can linearize it as +\begin{equation} +\frac{\partial^2 \delta\tilde{\psi}}{\partial \eta^2} + \frac{\partial^2 + \delta\tilde{\psi}}{\partial \theta^2} + \cot \theta \frac{\partial + \delta\tilde{\psi}}{\partial \theta} = - \frac{1}{4} +(\delta\tilde{\psi} + \tilde{\psi}_0) (\frac{\partial^2 q}{\partial + \eta^2} + \frac{\partial^2 q}{\partial \theta^2} -1). +\label{eqn:ham_linear} +\end{equation} +For the boundary conditions, we use for inner boundary condition, +which is isometry condition: +\begin{equation} +\frac{\partial \tilde{\psi}}{\partial \eta}|_{\eta = 0} = 0, +\end{equation} +and outer boundary condition, which is Robin condition: +\begin{equation} +(\frac{\partial \tilde{\psi}}{\partial \eta} + \frac{1}{2} +\tilde{\psi})|_{\eta=\eta_{max}} = 0. +\end{equation} + + +This thorn provides + \begin{enumerate} + \item CactusEinstein + \end{enumerate} + +\section{Comments} + +We calculate equation~(\ref{eqn:ham_linear}) with spherical +coordinate. However, Cactus needs Cartesian coordinate. Then, we +interpolate $\psi$ to the Cartesian grid by using interpolator. Note +interpolator has linear, quadratic, and cubic interpolation. + +% Automatically created from the ccl files +% Do not worry for now. +\include{interface} +\include{param} +\include{schedule} +\bibliographystyle{prsty} +\begin{thebibliography}{10} +\bibitem{Bernstein93a} + D. Bernstein, Ph.D thesis University of Illinois Urbana-Champaign, + (1993) +\bibitem{Brill59} + D. S. Brill,Ann. Phys.{\bf 7}, 466 (1959) +\bibitem{Camarda97a} + K. Camarda, Ph.D thesis University of Illinois Urbana-Champaign, (1998) +\end{thebibliography} +\end{document} diff --git a/interface.ccl b/interface.ccl new file mode 100644 index 0000000..7954581 --- /dev/null +++ b/interface.ccl @@ -0,0 +1,9 @@ +# Interface definition for thorn AxiBrillBHIVP +# $Header$ + +implements: idaxibrillbh +inherits: einstein + +public: + + diff --git a/par/axbrillbh_ADM.par b/par/axbrillbh_ADM.par new file mode 100644 index 0000000..2d5afff --- /dev/null +++ b/par/axbrillbh_ADM.par @@ -0,0 +1,55 @@ +###################################################################### +# Geodesically sliced black hole + brill wave, ADM, Staggered leapfrog +###################################################################### + +#Required thorns +ActiveThorns = "time ADMconstraints pugh cartgrid3d einstein ADM AxiBrillBHIVP ioascii ioutil" + +pugh::enable_all_storage = "yes" + +# GENERAL + +einstein::evolution_system = "ADM" + +driver::global_nx = 32 +driver::global_ny = 32 +driver::global_nz = 32 + +grid::type = "byspacing" +grid::dxyz = 0.4 +grid::symmetry = "full" + +time::dtfac = 0.25 + +cactus::cctk_initial_time = 0. +cactus::cctk_itlast = 10 + +adm::method = "stagleap" +adm::bound = "static" + +# MODEL +einstein::initial_data = "axibrillbh" +axibrillbhivp::axibrillbh_amp = 0.5 +axibrillbhivp::axibrillbh_eta0 i = 0.0 +axibrillbhivp::axibrillbh_sigma = 1.0 +axibrillbhivp::axibrillbh_etamax = 6.0 +axibrillbhivp::axibrillbh_n = 2 +axibrillbhivp::axibrillbh_ne = 302 +axibrillbhivp::axibrillbh_nq = 54 +axibrillbhivp::axibrillbh_intorder = 1 + +# GAUGE +adm::slicing = "geodesic" + + +# OUTPUT ######################################################## + +IO::IO_outdir = "AxiBrillBHIVP" + +IO::IO_0Devery = 2 +IO::info_every = 1 +IOASCII::output_info = "einstein" +IOASCII::output0D = "einstein::gxx einstein::kxx admconstraints::ADMconstraints + einstein::grr einstein::alp" + +################################################################## diff --git a/par/axibrill_ADM.par b/par/axibrill_ADM.par new file mode 100644 index 0000000..74d307e --- /dev/null +++ b/par/axibrill_ADM.par @@ -0,0 +1,55 @@ +###################################################################### +# Geodesically sliced black hole + brill wave, ADM, Staggered leapfrog +###################################################################### + +#Required thorns +ActiveThorns = "time ADMconstraints pugh cartgrid3d einstein ADM AxiBrillBHIVP ioascii ioutil" + +pugh::enable_all_storage = "yes" + +# GENERAL + +einstein::evolution_system = "ADM" + +driver::global_nx = 20 +driver::global_ny = 20 +driver::global_nz = 20 + +grid::type = "byspacing" +grid::dxyz = 0.2 +grid::symmetry = "octant" + +time::dtfac = 0.25 + +cactus::cctk_initial_time = 0. +cactus::cctk_itlast = 10 + +adm::method = "stagleap" +adm::bound = "flat" + +# MODEL +einstein::initial_data = "axibrillbh" +axibrillbhivp::axibrillbh_amp = 0.5 +axibrillbhivp::axibrillbh_eta0 = 0.0 +axibrillbhivp::axibrillbh_sigma = 1.0 +axibrillbhivp::axibrillbh_etamax = 6.0 +axibrillbhivp::axibrillbh_n = 2 +axibrillbhivp::axibrillbh_ne = 302 +axibrillbhivp::axibrillbh_nq = 54 +axibrillbhivp::axibrillbh_intorder = 1 + +# GAUGE +adm::slicing = "geodesic" + + +# OUTPUT ######################################################## + +IO::IO_outdir = "AxiBrillBHIVP" + +IO::IO_0Devery = 2 +IO::info_every = 1 +IOASCII::output_info = "einstein" +IOASCII::output0D = "einstein::gxx einstein::kxx admconstraints::ADMconstraints + einstein::grr einstein::alp" + +################################################################## diff --git a/par/axibrill_BMA.par b/par/axibrill_BMA.par new file mode 100644 index 0000000..5d15ecc --- /dev/null +++ b/par/axibrill_BMA.par @@ -0,0 +1,55 @@ +###################################################################### +# Geodesically sliced black hole + brill wave, ADM, Staggered leapfrog +###################################################################### + +#Required thorns +ActiveThorns = "time pugh cartgrid3d einstein BMA AxiBrillBHIVP ioascii ioutil" + +pugh::enable_all_storage = "yes" + +# GENERAL + +einstein::evolution_system = "BMA" + +driver::global_nx = 32 +driver::global_ny = 32 +driver::global_nz = 32 + +grid::type = "byspacing" +grid::dxyz = 0.4 +grid::symmetry = "octant" + +time::dtfac = 0.5 + +cactus::cctk_initial_time = 0. +cactus::cctk_itlast = 1 + +bma::flux_method = "mac" +bma::bound = "flat" + +# MODEL +einstein::initial_data = "axibrillbh" +axibrillbhivp::axibrillbh_amp = 0.5 +axibrillbhivp::axibrillbh_eta0 i = 0.0 +axibrillbhivp::axibrillbh_sigma = 1.0 +axibrillbhivp::axibrillbh_etamax = 6.0 +axibrillbhivp::axibrillbh_n = 2 +axibrillbhivp::axibrillbh_ne = 302 +axibrillbhivp::axibrillbh_nq = 54 +axibrillbhivp::axibrillbh_intorder = 1 + +# GAUGE +bma::slicing = "geodesic" + + +# OUTPUT ######################################################## + +IO::IO_outdir = "axibrill_low" + +IO::IO_0Devery = 2 +IO::info_every = 1 +IOASCII::output_info = "einstein" +IOASCII::output1D = "einstein::gxx einstein::kxx admconstraints::ADMconstraints + einstein::grr einstein::alp" + +################################################################## diff --git a/par/axibrillbh_BMA.par b/par/axibrillbh_BMA.par new file mode 100644 index 0000000..899e2d0 --- /dev/null +++ b/par/axibrillbh_BMA.par @@ -0,0 +1,55 @@ +###################################################################### +# Geodesically sliced black hole + brill wave, ADM, Staggered leapfrog +###################################################################### + +#Required thorns +ActiveThorns = "time ADMConstraints pugh cartgrid3d einstein BMA AxiBrillBHIVP ioascii ioutil" + +pugh::enable_all_storage = "yes" + +# GENERAL + +einstein::evolution_system = "BMA" + +driver::global_nx = 32 +driver::global_ny = 32 +driver::global_nz = 32 + +grid::type = "byspacing" +grid::dxyz = 0.4 +grid::symmetry = "octant" + +time::dtfac = 0.5 + +cactus::cctk_initial_time = 0. +cactus::cctk_itlast = 1 + +bm::flux_method = "mac" +bm::bound = "flat" + +# MODEL +einstein::initial_data = "axibrillbh" +axibrillbhivp::axibrillbh_amp = 0.5 +axibrillbhivp::axibrillbh_eta0 i = 0.0 +axibrillbhivp::axibrillbh_sigma = 1.0 +axibrillbhivp::axibrillbh_etamax = 6.0 +axibrillbhivp::axibrillbh_n = 2 +axibrillbhivp::axibrillbh_ne = 302 +axibrillbhivp::axibrillbh_nq = 54 +axibrillbhivp::axibrillbh_intorder = 1 + +# GAUGE +bm::slicing = "geodesic" + + +# OUTPUT ######################################################## + +IO::IO_outdir = "axibrill_low" + +IO::IO_0Devery = 2 +IO::info_every = 1 +IOASCII::output_info = "einstein" +IOASCII::output1D = "einstein::gxx einstein::kxx admconstraints::ADMconstraints + einstein::grr einstein::alp" + +################################################################## diff --git a/par/pablo.par b/par/pablo.par new file mode 100644 index 0000000..650658d --- /dev/null +++ b/par/pablo.par @@ -0,0 +1,72 @@ +!DESC "Demonstration file for Pablo/AutoPilot" + +ActiveThorns = "time psikadelia ADMconstraints pugh interp cartgrid3d einstein ADM IDAxiBrillBH iobasic ioflexio ioascii ioutil" + + +# Parameters which will affect performance +# ---------------------------------------- +# Each time admconstraints:: is output thorn ADMConstraints is used +# Each time psikadelia:: is output thorn PsiKadelia is used +# Output can be done in as groups of variables or single variables +# Useful groups are +# einstein::metric - 6 variables +# einstein::conv - 4 variables +# admconstraints::admconstraints - 4 variables + + +# GLOBAL GRID SIZE IN EACH DIRECTION +driver::global_nsize = 32 + +# OUTPUT TO SCREEN +iobasic::outInfo_every = 1 +iobasic::outInfo_vars = "einstein::alp PsiKadelia::psi4re admconstraints::ham " + +# OUTPUT Scalars reductions +iobasic::outScalar_every = 1 +iobasic::outScalar_vars = "einstein::alp einstein::metric admconstraints::admcontraints PsiKadelia::psi4re " + +# OUTPUT 1D ASCII +ioascii::out1D_every = 10 +ioascii::out1D_vars = "einstein::alp einstein::metric admconstraints::admcontraints PsiKadelia::psi4re " + +# OUTPUT 3D IEEEIO +#ioflexio::out3D_every = 10 +#ioflexio::out3D_vars = "einstein::alp einstein::metric admconstraints::admcontraints PsiKadelia::psi4re " + +# CHECKPOINT +IOFlexIO::checkpoint = "yes" +IO::checkpoint_every = 10 + +# Parameters which need to be tweaked +# ----------------------------------- + +# TOTAL NUMBER OF TIMESTEPS TO DO +cactus::cctk_itlast = 100 + +# NAME OF OUTPUT DIRECTORY +IO::outdir = "pablo" +IO::checkpoint_dir = "pablo" + + +# Parameters which should be OK +# ----------------------------- +IO::checkpoint_save = 1 +IO::checkpoint_file = "checkpoint" +einstein::evolution_system = "ADM" +grid::type = "byspacing" +grid::dxyz = 0.1 +grid::domain = "octant" +time::dtfac = 0.25 +cactus::cctk_initial_time = 0. +adm::method = "stagleap" +adm::bound = "flat" +einstein::slicing = "1+log" +einstein::initial_data = "axibrillbh" +idaxibrillbh::amp = 0.5 +idaxibrillbh::eta0 = 0.0 +idaxibrillbh::sigma = 1.0 +idaxibrillbh::etamax = 6.0 +idaxibrillbh::n = 2 +idaxibrillbh::ne = 302 +idaxibrillbh::nq = 54 + diff --git a/param.ccl b/param.ccl new file mode 100644 index 0000000..5fe240b --- /dev/null +++ b/param.ccl @@ -0,0 +1,56 @@ +# Parameter definitions for thorn AxiBrillBHIVP +# $Header$ + +shares:einstein + +EXTENDS KEYWORD initial_lapse "" +{ + "schwarz" :: "Set lapse to Schwarzschild" +} + +EXTENDS KEYWORD initial_data "" +{ + "axibrillbh" :: "Axisymmetry Initial data for Black hole + Brill wave" +} + +private: + +REAL amp "Brill wave amplitude" +{ + *:* :: "No restriction" +} 0.1 + +REAL eta0 "Brill wave center (in eta coords)" +{ + *:* :: "No restriction" +} 0.0 + +REAL sigma "Brill wave width (in eta)" +{ + *:* :: "No restriction" +} 1.0 + +REAL etamax "Eta value for outer edge of grid" +{ + *:* :: "No restriction" +} 5.0 + + +INT n "sin^n theta in brill wave" +{ + *:* :: "No restriction" +} 2 + +INT ne "Eta resolution for solve" +{ + *:* :: "No restriction" +} 300 + +INT nq "Theta resolution for solve" +{ + *:* :: "No restriction" +} 50 + + + + diff --git a/schedule.ccl b/schedule.ccl new file mode 100644 index 0000000..ac43b1c --- /dev/null +++ b/schedule.ccl @@ -0,0 +1,10 @@ +# Schedule definitions for thorn AxiBrillBHIVP +# $Header$ + +if (CCTK_Equals(initial_data,"axibrillbh")) +{ + schedule IDAxiBrillBH at CCTK_INITIAL + { + LANG: Fortran + } "Construct IDAxiBrillBH" +} diff --git a/src/AxiBrillBHIVP.F b/src/AxiBrillBHIVP.F new file mode 100644 index 0000000..35faded --- /dev/null +++ b/src/AxiBrillBHIVP.F @@ -0,0 +1,339 @@ +c/*@@ +c @file AxiBrillBHIVP.F +c @date +c @author +c @desc +c +c @enddesc +c@@*/ + +#include "cctk.h" +#include "cctk_parameters.h" +#include "cctk_arguments.h" + +c/*@@ +c @routine AxiBrillBHIVP +c @date +c @author +c @desc +c +c @enddesc +c @calls +c @calledby +c @history +c +c @endhistory +c@@*/ + +c Need include file from Einstein +#include "CactusEinstein/Einstein/src/Einstein.h" + + subroutine AxiBrillBHIVP(CCTK_FARGUMENTS) + + implicit none + + DECLARE_CCTK_FARGUMENTS + DECLARE_CCTK_PARAMETERS + +c Perhaps this and others should go into cctk.h + integer CCTK_Equals + + + real*8 axibheps, rmax, dq, deta + integer levels,id5,id9,idi,idg,ier + real*8, allocatable :: cc(:,:),ce(:,:),cw(:,:),cn(:,:),cs(:,:), + $ rhs(:,:),psi2d(:,:),detapsi2d(:,:),dqpsi2d(:,:), + $ detaetapsi2d(:,:),detaqpsi2d(:,:),dqqpsi2d(:,:) + real*8, allocatable :: etagrd(:),qgrd(:) + real*8, allocatable :: eta(:,:,:),abseta(:,:,:),sign_eta(:,:,:), + $ q(:,:,:),phi(:,:,:) + real*8, allocatable :: psi2dv(:,:,:),detapsi2dv(:,:,:), + $ dqpsi2dv(:,:,:),detaetapsi2dv(:,:,:),detaqpsi2dv(:,:,:), + $ dqqpsi2dv(:,:,:) + parameter(axibheps = 1.0d-12) + real*8 ep1,ep2 + real*8 o1,o2,o3,o4,o5,o6,o7,o8,o9 + real*8 o10,o11,o12,o13,o14,o15,o16,o17,o18,o19 + real*8 o20,o21,o22,o23,o24,o25,o26,o27,o28,o29 + real*8 o30,o31,o32,o33,o34,o35,o36,o37,o38,o39 + real*8 o40,o41,o42,o43,o44,o45,o46,o47,o48,o49 + real*8 o50,o51,o52,o53,o54,o55,o56,o57,o58,o59 + real*8 o60,o61,o62,o63,o64,o65,o66,o67,o68,o69 + real*8 o70,o71,o72,o73,o74,o75,o76,o77,o78,o79 + real*8 o80,o81,o82,o83,o84,o85,o86,o87,o88,o89 + real*8 o90,o91,o92,o93,o94,o95,o96,o97,o98,o99 + real*8 pi + real*8 adm + integer :: nx,ny,nz + integer i,j,k,nquads + integer npoints,handle,ierror + + pi = 4.0d0*atan(1.0d0) + +c Set up the grid spacings + nx = cctk_lsh(1) + ny = cctk_lsh(2) + nz = cctk_lsh(3) + +c Brill wave parameters + + print *,"Brill wave + BH Axisymmetric solve" + write (*,123)amp,eta0,sigma,n + print *,'etamax=',etamax + 123 format(1x,'Pars : Amp',f8.5,' eta0',f8.5,' sigma',f8.5,' n ',i3) + +c Solve on this sized cartesian grid +c 2D grid size NE x NQ +c Add 2 zones for boundaries... + ne = ne+2 + nq = nq+2 + ! do I need to call free? + allocate(cc(ne,nq),ce(ne,nq),cw(ne,nq),cn(ne,nq),cs(ne,nq), + $ rhs(ne,nq),psi2d(ne,nq),detapsi2d(ne,nq),dqpsi2d(ne,nq), + $ detaetapsi2d(ne,nq),detaqpsi2d(ne,nq),dqqpsi2d(ne,nq), + $ etagrd(ne),qgrd(nq)) + allocate(eta(nx,ny,nz),abseta(nx,ny,nz),sign_eta(nx,ny,nz), + $ q(nx,ny,nz),phi(nx,ny,nz), + $ psi2dv(nx,ny,nz),detapsi2dv(nx,ny,nz),dqpsi2dv(nx,ny,nz), + $ detaetapsi2dv(nx,ny,nz),detaqpsi2dv(nx,ny,nz), + $ dqqpsi2dv(nx,ny,nz)) +c Initialize some arrays + psi2d = 1.0d0 + detapsi2d = 0.0d0 + + nquads = 2 + dq = nquads*0.5*pi/(nq-2) + deta = etamax/(ne-3) + + do j=1,nq + qgrd(j) = (j-1.5)*dq + do i=1,ne + etagrd(i) = (i-2)*deta +#include "Development/IDAxiBrillBH/src/bhbrill.x" + enddo + enddo +c Boundary conditions + do j=1,nq + ce(2,j)=ce(2,j)+cw(2,j) + cw(2,j)=0.0 + + cw(ne-1,j)=cw(ne-1,j)+ce(ne-1,j) + cc(ne-1,j)=cc(ne-1,j)-deta*ce(ne-1,j) + ce(ne-1,j)=0.0 + + enddo + do i=1,ne + cc(i,2)=cc(i,2)+cs(i,2) + cs(i,2)=0.0 + cc(i,nq-1)=cc(i,nq-1)+cn(i,nq-1) + cn(i,nq-1)=0.0 + enddo + +c Do the solve + print *, " Calling axisymmetric solver" + call mgparm (levels,5,id5,id9,idi,idg,ne,nq) + call mg5 (ne,2,ne-1,nq,2,nq-1, + $ cc,cn,cs,cw,ce,psi2d,rhs, + $ id5,id9,idi,idg,1,axibheps,rmax,ier) + print *, " Solve complete" +c The solution is now available. +c Debugging is needed, a stop statement should +c be called if the IVP solve is not successful + + if(ier .ne. 0) stop 'bad solution to brill wave problem' + print *,'rmax = ',rmax + print *,'axibheps = ',axibheps + print *,'psi2d = ',maxval(psi2d),' ',minval(psi2d) + + ep2 = 0.0 + do j=2,nq-1 + do i=2,ne-1 + ep1 = rhs(i,j)-psi2d(i,j)*cc(i,j)-psi2d(i,j+1)*cn(i,j)-psi2d(i,j-1)*cs(i,j)- + & psi2d(i+1,j)*ce(i,j)-psi2d(i-1,j)*cw(i,j) + ep2 = max(abs(ep1),ep2) + enddo + enddo + print *,'Resulting eps =',ep2 + + ! what a pain all this is.... + do j=1,nq + psi2d(1,j)=psi2d(3,j) + psi2d(ne,j)=-deta*psi2d(ne-1,j)+psi2d(ne-2,j) + enddo + do i=1,ne + psi2d(i,1)=psi2d(i,2) + psi2d(i,nq)=psi2d(i,nq-1) + enddo +c goto 111 + do j=2,nq-1 + do i=2,ne-1 + dqpsi2d(i,j)=0.5*(psi2d(i,j+1)-psi2d(i,j-1))/dq + dqqpsi2d(i,j)=(psi2d(i,j+1)+psi2d(i,j-1)-2.*psi2d(i,j))/dq**2 + detapsi2d(i,j)=sinh(0.5*etagrd(i))+0.5*(psi2d(i+1,j)-psi2d(i-1,j))/deta + detaetapsi2d(i,j)=0.5*cosh(0.5*etagrd(i))+ + $ (psi2d(i+1,j)+psi2d(i-1,j)-2.*psi2d(i,j))/deta**2 + enddo + enddo + do j=1,nq + detapsi2d(1,j)=-detapsi2d(3,j) + detapsi2d(ne,j)=detapsi2d(ne-2,j) ! simplified + + detaetapsi2d(1,j)=detaetapsi2d(3,j) + detaetapsi2d(ne,j)=detaetapsi2d(ne-2,j) ! simplified... + + dqqpsi2d(1,j)=dqqpsi2d(3,j) + dqqpsi2d(ne,j)=dqqpsi2d(ne-2,j) ! simplified + + dqpsi2d(1,j)=dqpsi2d(3,j) + dqpsi2d(ne,j)=-dq*dqpsi2d(ne-1,j)+dqpsi2d(ne-2,j) + enddo + do i=1,ne + detapsi2d(i,1)=detapsi2d(i,2) + detapsi2d(i,nq)=detapsi2d(i,nq-1) + + detaetapsi2d(i,1)=detaetapsi2d(i,2) + detaetapsi2d(i,nq)=detaetapsi2d(i,nq-1) + + dqqpsi2d(i,1)=dqqpsi2d(i,2) + dqqpsi2d(i,nq)=dqqpsi2d(i,nq-1) + + dqpsi2d(i,1)=-dqpsi2d(i,2) + dqpsi2d(i,nq)=-dqpsi2d(i,nq-1) + enddo + do j=2,nq-1 + do i=2,ne-1 + detaqpsi2d(i,j)=0.5*(detapsi2d(i,j+1)-detapsi2d(i,j-1))/dq + enddo + enddo + do j=1,nq + detaqpsi2d(1,j)=-detaqpsi2d(3,j) + detaqpsi2d(ne,j)=detaqpsi2d(ne-2,j) ! simplified + enddo + do i=1,ne + detaqpsi2d(i,1)=-detaqpsi2d(i,2) + detaqpsi2d(i,nq)=-detaqpsi2d(i,nq-1) + enddo + do j=1,nq + psi2d(:,j)=psi2d(:,j)+2.*cosh(0.5*etagrd) + enddo + +c Now evaluate each of the following at x(i,j,k), y(i,j,k) and +c z(i,j,k) where i,j,k go from 1 to nx,ny,nz + +c Conformal factor + + eta = 0.5d0 * dlog (x**2 + y**2 + z**2) + abseta = abs (eta) + q = datan2 (sqrt (x**2 + y**2), z) + phi = datan2 (y, x) + + do k=1,nz + do j=1,ny + do i=1,nx +c eta(i,j,k) = 0.5d0*dlog(x(i,j,k)**2+y(i,j,k)**2+z(i,j,k)**2) +c abseta(i,j,k) = abs(eta(i,j,k)) + if(eta(i,j,k) .lt. 0)then + sign_eta(i,j,k) = -1 + else + sign_eta(i,j,k) = 1 + endif +c q(i,j,k) = datan2(sqrt(x(i,j,k)**2+y(i,j,k)**2),z(i,j,k)) +c TYPO HERE ??????????? +c | +c | +c phi(i,j,k)= datan2(y(i,j,k),x(i,j,k)) + enddo + enddo + enddo + + call CCTK_GetInterpHandle (handle, "simple_local") + + npoints = nx*ny*nz + + call CCTK_Interp (ierror,cctkGH,handle,npoints,2,6,6, + $ ne,nq,abseta,q, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ etagrd(1),qgrd(1),deta,dq, + $ psi2d,detapsi2d,dqpsi2d,detaetapsi2d,detaqpsi2d,dqqpsi2d, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ psi2dv,detapsi2dv,dqpsi2dv,detaetapsi2dv,detaqpsi2dv, + $ dqqpsi2dv, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL) + + psi = psi2dv * exp (-0.5 * eta) + detapsi2dv = sign_eta * detapsi2dv + detaqpsi2dv = sign_eta * detaqpsi2dv + + do k=1,nz + do j=1,ny + do i=1,nx + +c psi(i,j,k) = psi2dv(i,j,k)*exp(-0.5*eta(i,j,k)) +c detapsi2dv(i,j,k) = sign_eta(i,j,k)*detapsi2dv(i,j,k) + +c psix = \partial psi / \partial x / psi +#include "Development/IDAxiBrillBH/src/psi_1st_deriv.x" + +c detaqpsi2dv(i,j,k) = sign_eta(i,j,k)*detaqpsi2dv(i,j,k) + +c psixx = \partial^2\psi / \partial x^2 / psi +#include "Development/IDAxiBrillBH/src/psi_2nd_deriv.x" + enddo + enddo + enddo + +c Conformal metric +c gxx = ... + +c Derivatives of the metric +c dxgxx = 1/2 \partial gxx / \partial x + + do k=1,nz + do j=1,ny + do i=1,nx +c THESE WERE ALREADY CALCULATED ABOVE !!! +c eta(i,j,k) = 0.5d0*dlog(x(i,j,k)**2+y(i,j,k)**2+z(i,j,k)**2) +c q(i,j,k) = datan2(sqrt(x(i,j,k)**2+y(i,j,k)**2),z(i,j,k)) +c phi(i,j,k) = datan2(y(i,j,k),x(i,j,k)) +#include "Development/IDAxiBrillBH/src/gij.x" + enddo + enddo + enddo + +c Curvature + kxx = 0.0D0 + kxy = 0.0D0 + kxz = 0.0D0 + kyy = 0.0D0 + kyz = 0.0D0 + kzz = 0.0D0 + + 111 continue +c Set ADM mass + i = ne-15 + adm = 0.0 + do j=2,nq-1 + adm=adm+(psi2d(i,j)-(psi2d(i+1,j)-psi2d(i-1,j))/deta)*exp(0.5* + $ etagrd(i)) + enddo + adm=adm/(nq-2) + print *,'ADM mass: ',adm + if (CCTK_Equals(initial_lapse,"schwarz")==1) then + write (*,*)"Initial with schwarzschild-like lapse" + write (*,*)"using alp = (2.*r - adm)/(2.*r+adm)." + alp = (2.*r - adm)/(2.*r+adm) + endif + + conformal_state = CONFORMAL_METRIC + + deallocate(cc,ce,cw,cn,cs,rhs,psi2d,detapsi2d,dqpsi2d, + $ detaetapsi2d,detaqpsi2d,dqqpsi2d, + $ etagrd,qgrd, + $ eta,abseta,sign_eta,q,phi,psi2dv,detapsi2dv,dqpsi2dv, + $ detaetapsi2dv,detaqpsi2dv,dqqpsi2dv) + + return + end + diff --git a/src/IDAxiBrillBH.F b/src/IDAxiBrillBH.F new file mode 100644 index 0000000..218e43e --- /dev/null +++ b/src/IDAxiBrillBH.F @@ -0,0 +1,339 @@ +c/*@@ +c @file IDAxiBrillBH.F +c @date +c @author +c @desc +c +c @enddesc +c@@*/ + +#include "cctk.h" +#include "cctk_parameters.h" +#include "cctk_arguments.h" + +c/*@@ +c @routine IDAxiBrillBH +c @date +c @author +c @desc +c +c @enddesc +c @calls +c @calledby +c @history +c +c @endhistory +c@@*/ + +c Need include file from Einstein +#include "CactusEinstein/Einstein/src/Einstein.h" + + subroutine IDAxiBrillBH(CCTK_FARGUMENTS) + + implicit none + + DECLARE_CCTK_FARGUMENTS + DECLARE_CCTK_PARAMETERS + +c Perhaps this and others should go into cctk.h + integer CCTK_Equals + + + real*8 axibheps, rmax, dq, deta + integer levels,id5,id9,idi,idg,ier + real*8, allocatable :: cc(:,:),ce(:,:),cw(:,:),cn(:,:),cs(:,:), + $ rhs(:,:),psi2d(:,:),detapsi2d(:,:),dqpsi2d(:,:), + $ detaetapsi2d(:,:),detaqpsi2d(:,:),dqqpsi2d(:,:) + real*8, allocatable :: etagrd(:),qgrd(:) + real*8, allocatable :: eta(:,:,:),abseta(:,:,:),sign_eta(:,:,:), + $ q(:,:,:),phi(:,:,:) + real*8, allocatable :: psi2dv(:,:,:),detapsi2dv(:,:,:), + $ dqpsi2dv(:,:,:),detaetapsi2dv(:,:,:),detaqpsi2dv(:,:,:), + $ dqqpsi2dv(:,:,:) + parameter(axibheps = 1.0d-12) + real*8 ep1,ep2 + real*8 o1,o2,o3,o4,o5,o6,o7,o8,o9 + real*8 o10,o11,o12,o13,o14,o15,o16,o17,o18,o19 + real*8 o20,o21,o22,o23,o24,o25,o26,o27,o28,o29 + real*8 o30,o31,o32,o33,o34,o35,o36,o37,o38,o39 + real*8 o40,o41,o42,o43,o44,o45,o46,o47,o48,o49 + real*8 o50,o51,o52,o53,o54,o55,o56,o57,o58,o59 + real*8 o60,o61,o62,o63,o64,o65,o66,o67,o68,o69 + real*8 o70,o71,o72,o73,o74,o75,o76,o77,o78,o79 + real*8 o80,o81,o82,o83,o84,o85,o86,o87,o88,o89 + real*8 o90,o91,o92,o93,o94,o95,o96,o97,o98,o99 + real*8 pi + real*8 adm + integer :: nx,ny,nz + integer i,j,k,nquads + integer npoints,handle,ierror + + pi = 4.0d0*atan(1.0d0) + +c Set up the grid spacings + nx = cctk_lsh(1) + ny = cctk_lsh(2) + nz = cctk_lsh(3) + +c Brill wave parameters + + print *,"Brill wave + BH Axisymmetric solve" + write (*,123)amp,eta0,sigma,n + print *,'etamax=',etamax + 123 format(1x,'Pars : Amp',f8.5,' eta0',f8.5,' sigma',f8.5,' n ',i3) + +c Solve on this sized cartesian grid +c 2D grid size NE x NQ +c Add 2 zones for boundaries... + ne = ne+2 + nq = nq+2 + ! do I need to call free? + allocate(cc(ne,nq),ce(ne,nq),cw(ne,nq),cn(ne,nq),cs(ne,nq), + $ rhs(ne,nq),psi2d(ne,nq),detapsi2d(ne,nq),dqpsi2d(ne,nq), + $ detaetapsi2d(ne,nq),detaqpsi2d(ne,nq),dqqpsi2d(ne,nq), + $ etagrd(ne),qgrd(nq)) + allocate(eta(nx,ny,nz),abseta(nx,ny,nz),sign_eta(nx,ny,nz), + $ q(nx,ny,nz),phi(nx,ny,nz), + $ psi2dv(nx,ny,nz),detapsi2dv(nx,ny,nz),dqpsi2dv(nx,ny,nz), + $ detaetapsi2dv(nx,ny,nz),detaqpsi2dv(nx,ny,nz), + $ dqqpsi2dv(nx,ny,nz)) +c Initialize some arrays + psi2d = 1.0d0 + detapsi2d = 0.0d0 + + nquads = 2 + dq = nquads*0.5*pi/(nq-2) + deta = etamax/(ne-3) + + do j=1,nq + qgrd(j) = (j-1.5)*dq + do i=1,ne + etagrd(i) = (i-2)*deta +#include "Development/IDAxiBrillBH/src/bhbrill.x" + enddo + enddo +c Boundary conditions + do j=1,nq + ce(2,j)=ce(2,j)+cw(2,j) + cw(2,j)=0.0 + + cw(ne-1,j)=cw(ne-1,j)+ce(ne-1,j) + cc(ne-1,j)=cc(ne-1,j)-deta*ce(ne-1,j) + ce(ne-1,j)=0.0 + + enddo + do i=1,ne + cc(i,2)=cc(i,2)+cs(i,2) + cs(i,2)=0.0 + cc(i,nq-1)=cc(i,nq-1)+cn(i,nq-1) + cn(i,nq-1)=0.0 + enddo + +c Do the solve + print *, " Calling axisymmetric solver" + call mgparm (levels,5,id5,id9,idi,idg,ne,nq) + call mg5 (ne,2,ne-1,nq,2,nq-1, + $ cc,cn,cs,cw,ce,psi2d,rhs, + $ id5,id9,idi,idg,1,axibheps,rmax,ier) + print *, " Solve complete" +c The solution is now available. +c Debugging is needed, a stop statement should +c be called if the IVP solve is not successful + + if(ier .ne. 0) stop 'bad solution to brill wave problem' + print *,'rmax = ',rmax + print *,'axibheps = ',axibheps + print *,'psi2d = ',maxval(psi2d),' ',minval(psi2d) + + ep2 = 0.0 + do j=2,nq-1 + do i=2,ne-1 + ep1 = rhs(i,j)-psi2d(i,j)*cc(i,j)-psi2d(i,j+1)*cn(i,j)-psi2d(i,j-1)*cs(i,j)- + & psi2d(i+1,j)*ce(i,j)-psi2d(i-1,j)*cw(i,j) + ep2 = max(abs(ep1),ep2) + enddo + enddo + print *,'Resulting eps =',ep2 + + ! what a pain all this is.... + do j=1,nq + psi2d(1,j)=psi2d(3,j) + psi2d(ne,j)=-deta*psi2d(ne-1,j)+psi2d(ne-2,j) + enddo + do i=1,ne + psi2d(i,1)=psi2d(i,2) + psi2d(i,nq)=psi2d(i,nq-1) + enddo +c goto 111 + do j=2,nq-1 + do i=2,ne-1 + dqpsi2d(i,j)=0.5*(psi2d(i,j+1)-psi2d(i,j-1))/dq + dqqpsi2d(i,j)=(psi2d(i,j+1)+psi2d(i,j-1)-2.*psi2d(i,j))/dq**2 + detapsi2d(i,j)=sinh(0.5*etagrd(i))+0.5*(psi2d(i+1,j)-psi2d(i-1,j))/deta + detaetapsi2d(i,j)=0.5*cosh(0.5*etagrd(i))+ + $ (psi2d(i+1,j)+psi2d(i-1,j)-2.*psi2d(i,j))/deta**2 + enddo + enddo + do j=1,nq + detapsi2d(1,j)=-detapsi2d(3,j) + detapsi2d(ne,j)=detapsi2d(ne-2,j) ! simplified + + detaetapsi2d(1,j)=detaetapsi2d(3,j) + detaetapsi2d(ne,j)=detaetapsi2d(ne-2,j) ! simplified... + + dqqpsi2d(1,j)=dqqpsi2d(3,j) + dqqpsi2d(ne,j)=dqqpsi2d(ne-2,j) ! simplified + + dqpsi2d(1,j)=dqpsi2d(3,j) + dqpsi2d(ne,j)=-dq*dqpsi2d(ne-1,j)+dqpsi2d(ne-2,j) + enddo + do i=1,ne + detapsi2d(i,1)=detapsi2d(i,2) + detapsi2d(i,nq)=detapsi2d(i,nq-1) + + detaetapsi2d(i,1)=detaetapsi2d(i,2) + detaetapsi2d(i,nq)=detaetapsi2d(i,nq-1) + + dqqpsi2d(i,1)=dqqpsi2d(i,2) + dqqpsi2d(i,nq)=dqqpsi2d(i,nq-1) + + dqpsi2d(i,1)=-dqpsi2d(i,2) + dqpsi2d(i,nq)=-dqpsi2d(i,nq-1) + enddo + do j=2,nq-1 + do i=2,ne-1 + detaqpsi2d(i,j)=0.5*(detapsi2d(i,j+1)-detapsi2d(i,j-1))/dq + enddo + enddo + do j=1,nq + detaqpsi2d(1,j)=-detaqpsi2d(3,j) + detaqpsi2d(ne,j)=detaqpsi2d(ne-2,j) ! simplified + enddo + do i=1,ne + detaqpsi2d(i,1)=-detaqpsi2d(i,2) + detaqpsi2d(i,nq)=-detaqpsi2d(i,nq-1) + enddo + do j=1,nq + psi2d(:,j)=psi2d(:,j)+2.*cosh(0.5*etagrd) + enddo + +c Now evaluate each of the following at x(i,j,k), y(i,j,k) and +c z(i,j,k) where i,j,k go from 1 to nx,ny,nz + +c Conformal factor + + eta = 0.5d0 * dlog (x**2 + y**2 + z**2) + abseta = abs (eta) + q = datan2 (sqrt (x**2 + y**2), z) + phi = datan2 (y, x) + + do k=1,nz + do j=1,ny + do i=1,nx +c eta(i,j,k) = 0.5d0*dlog(x(i,j,k)**2+y(i,j,k)**2+z(i,j,k)**2) +c abseta(i,j,k) = abs(eta(i,j,k)) + if(eta(i,j,k) .lt. 0)then + sign_eta(i,j,k) = -1 + else + sign_eta(i,j,k) = 1 + endif +c q(i,j,k) = datan2(sqrt(x(i,j,k)**2+y(i,j,k)**2),z(i,j,k)) +c TYPO HERE ??????????? +c | +c | +c phi(i,j,k)= datan2(y(i,j,k),x(i,j,k)) + enddo + enddo + enddo + + call CCTK_GetInterpHandle (handle, "simple_local") + + npoints = nx*ny*nz + + call CCTK_Interp (ierror,cctkGH,handle,npoints,2,6,6, + $ ne,nq,abseta,q, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ etagrd(1),qgrd(1),deta,dq, + $ psi2d,detapsi2d,dqpsi2d,detaetapsi2d,detaqpsi2d,dqqpsi2d, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ psi2dv,detapsi2dv,dqpsi2dv,detaetapsi2dv,detaqpsi2dv, + $ dqqpsi2dv, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL, + $ CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL,CCTK_VARIABLE_REAL) + + psi = psi2dv * exp (-0.5 * eta) + detapsi2dv = sign_eta * detapsi2dv + detaqpsi2dv = sign_eta * detaqpsi2dv + + do k=1,nz + do j=1,ny + do i=1,nx + +c psi(i,j,k) = psi2dv(i,j,k)*exp(-0.5*eta(i,j,k)) +c detapsi2dv(i,j,k) = sign_eta(i,j,k)*detapsi2dv(i,j,k) + +c psix = \partial psi / \partial x / psi +#include "Development/IDAxiBrillBH/src/psi_1st_deriv.x" + +c detaqpsi2dv(i,j,k) = sign_eta(i,j,k)*detaqpsi2dv(i,j,k) + +c psixx = \partial^2\psi / \partial x^2 / psi +#include "Development/IDAxiBrillBH/src/psi_2nd_deriv.x" + enddo + enddo + enddo + +c Conformal metric +c gxx = ... + +c Derivatives of the metric +c dxgxx = 1/2 \partial gxx / \partial x + + do k=1,nz + do j=1,ny + do i=1,nx +c THESE WERE ALREADY CALCULATED ABOVE !!! +c eta(i,j,k) = 0.5d0*dlog(x(i,j,k)**2+y(i,j,k)**2+z(i,j,k)**2) +c q(i,j,k) = datan2(sqrt(x(i,j,k)**2+y(i,j,k)**2),z(i,j,k)) +c phi(i,j,k) = datan2(y(i,j,k),x(i,j,k)) +#include "Development/IDAxiBrillBH/src/gij.x" + enddo + enddo + enddo + +c Curvature + kxx = 0.0D0 + kxy = 0.0D0 + kxz = 0.0D0 + kyy = 0.0D0 + kyz = 0.0D0 + kzz = 0.0D0 + + 111 continue +c Set ADM mass + i = ne-15 + adm = 0.0 + do j=2,nq-1 + adm=adm+(psi2d(i,j)-(psi2d(i+1,j)-psi2d(i-1,j))/deta)*exp(0.5* + $ etagrd(i)) + enddo + adm=adm/(nq-2) + print *,'ADM mass: ',adm + if (CCTK_Equals(initial_lapse,"schwarz")==1) then + write (*,*)"Initial with schwarzschild-like lapse" + write (*,*)"using alp = (2.*r - adm)/(2.*r+adm)." + alp = (2.*r - adm)/(2.*r+adm) + endif + + conformal_state = CONFORMAL_METRIC + + deallocate(cc,ce,cw,cn,cs,rhs,psi2d,detapsi2d,dqpsi2d, + $ detaetapsi2d,detaqpsi2d,dqqpsi2d, + $ etagrd,qgrd, + $ eta,abseta,sign_eta,q,phi,psi2dv,detapsi2dv,dqpsi2dv, + $ detaetapsi2dv,detaqpsi2dv,dqqpsi2dv) + + return + end + diff --git a/src/bhbrill.m b/src/bhbrill.m new file mode 100644 index 0000000..6c78a1f --- /dev/null +++ b/src/bhbrill.m @@ -0,0 +1,126 @@ +$Path = Union[$Path,{"~/SetTensor"}]; +Needs["SetTensor`"]; + +Dimension = 3; +x[1] = eta; x[2] = q; x[3] = phi; +qf[eta_,q_] := amp (Exp[-(eta-eta0)^2/sigma^2]+Exp[-(eta+eta0)^2/sigma^2]) Sin[q]^n + +md = { +{Exp[2 qf[eta,q]],0,0}, +{0,Exp[2 qf[eta,q]],0}, +{0,0,Sin[q]^2}} psi2d[eta,q]^4; +InitializeMetric[md]; + +Clear[exc]; +DefineTensor[exc]; +SetTensor[exc[la,lb],{{0,0,0},{0,0,0},{0,0,0}}]; + +tmp = RicciR[la,lb] Metricg[ua,ub]+exc[la,lb] Metricg[ua,ub] exc[lc,ld] Metricg[uc,ud]- + exc[la,lb] exc[lc,ld] Metricg[ua,uc] Metricg[ub,ud]; +tmp = RicciToAffine[tmp]; +tmp = EvalMT[tmp]; +tmp = ExpandAll[-Exp[2 qf[eta,q]] psi2d[eta,q]^5/8 tmp] +sav=tmp +tmp = SubFun[sav,psi2d[eta,q],2 Cosh[eta/2]+psi2d[eta,q]] + +(* Make the stencil... *) + +stencil = ExpandAll[tmp /. { + D[psi2d[eta,q],eta]->(psi2d[i+1,j]-psi2d[i-1,j])/(2 deta), + D[psi2d[eta,q],eta,eta]->(psi2d[i+1,j]+psi2d[i-1,j]-2 psi2d[i,j])/(deta deta), + D[psi2d[eta,q],q]->(psi2d[i,j+1]-psi2d[i,j-1])/(2 dq), + D[psi2d[eta,q],q,q]->(psi2d[i,j+1]+psi2d[i,j-1]-2 psi2d[i,j])/(dq dq), + psi2d[eta,q]->psi2d[i,j] + }]; + +cn = Coefficient[stencil,psi2d[i,j+1]] +cs = Coefficient[stencil,psi2d[i,j-1]] +ce = Coefficient[stencil,psi2d[i+1,j]] +cw = Coefficient[stencil,psi2d[i-1,j]] +cc = Coefficient[stencil,psi2d[i,j]] +rhs = -SubFun[tmp,psi2d[eta,q],0] + +FortranOutputOfDepList = "(i,j)"; +$FortranReplace = Union[{ + "UND"->"_", + "(eta,q)"->"(i,j)" +}]; +fd = FortranOpen["bhbrill.x"]; +FortranWrite[fd,Cn[i,j],cn ]; +FortranWrite[fd,Cs[i,j],cs ]; +FortranWrite[fd,Cw[i,j],cw ]; +FortranWrite[fd,Cc[i,j],cc ]; +FortranWrite[fd,Ce[i,j],ce ]; +FortranWrite[fd,Rhs[i,j],rhs ]; +FortranClose[fd]; + +(* Next part, write out conformal g's and d's *) + + +xv = Exp[eta] Sin[q] Cos[phi]; +yv = Exp[eta] Sin[q] Sin[phi]; +zv = Exp[eta] Cos[q]; + +mc = Table[ D[ {xv,yv,zv}[[i]], {eta,q,phi}[[j]] ],{i,1,3},{j,1,3}]; +mci = Simplify[Inverse[mc]]; + +Clear[mct]; +DefineTensor[mct,{{1,2},1}]; +Iter[mct[ua,lb], + mct[ua,lb]=mc[[ua,-lb]]; +]; + +Clear[mcti]; +DefineTensor[mcti,{{1,2},1}]; +Iter[mcti[ua,lb], + mcti[ua,lb]=mci[[ua,-lb]]; +]; + +gijtmp = Exp[2 eta]/psi2d[eta,q]^4 Metricg[lc,ld] mcti[uc,la] mcti[ud,lb] + +Clear[i2]; +DefineTensor[i2,{{2,1},1}]; + +fd = FortranOpen["gij.x"]; +Iter[i2[ua,ub], + v1 = {x,y,z}[[ua]]; + v2 = {x,y,z}[[ub]]; + metv = ToExpression["g"<>ToString[v1]<>ToString[v2]<>"[i,j,k]"]; + gg[v1,v2]=Simplify[EvalMT[gijtmp,{la->-ua,lb->-ub}]]; + FortranWrite[fd,metv,gg[v1,v2]]; + For[ii=1,ii<=3,ii++, + v3 = {x,y,z}[[ii]]; + dmetv = ToExpression["d"<>ToString[v3]<>ToString[metv]]; + res = OD[gg[v1,v2],lc] mcti[uc,ld]/2; + res = EvalMT[res,ld-> -ii]; + res = Simplify[res]; + FortranWrite[fd,dmetv,res]; + ]; +]; +FortranClose[fd]; + +$FortranReplace = { + "UND"->"_", + "(eta,q)"->"" +}; + +fd = FortranOpen["psi_1st_deriv.x"]; +For[ii=1,ii<=3,ii++, + v1 = {x,y,z}[[ii]]; + psv =ToExpression["psi"<>ToString[v1]<>"[i,j,k]"]; + rhs = CD[Exp[-eta/2] psi2dv[eta,q],lc] mcti[uc,la]; + rhs = EvalMT[rhs,{la->-ii}]/(Exp[-eta/2] psi2dv[eta,q]); + FortranWrite[fd,psv,rhs]; +]; +FortranClose[fd]; + +fd = FortranOpen["psi_2nd_deriv.x"]; +Iter[i2[ua,ub], + v1 = {x,y,z}[[ua]]; + v2 = {x,y,z}[[ub]]; + psv = ToExpression["psi"<>ToString[v1]<>ToString[v2]<>"[i,j,k]"]; + rhs = OD[OD[Exp[-eta/2] psi2dv[eta,q],lc] mcti[uc,la],ld] mcti[ud,lb]; + rhs = EvalMT[rhs,{la->-ua,lb->-ub}]/(Exp[-eta/2] psi2dv[eta,q]); + FortranWrite[fd,psv,rhs]; +]; +FortranClose[fd]; diff --git a/src/bhbrill.x b/src/bhbrill.x new file mode 100644 index 0000000..b7721c9 --- /dev/null +++ b/src/bhbrill.x @@ -0,0 +1,60 @@ + o1 = dq**2 + o2 = 1/o1 + o3 = 1/dq + o4 = tan(qgrd(j)) + o5 = 1/o4 + o6 = deta**2 + o7 = 1/o6 + o8 = sin(qgrd(j)) + o9 = o8**2 + o10 = 1/o9 + o11 = cos(qgrd(j)) + o12 = o11**2 + o13 = etagrd(i)**2 + o14 = sigma**2 + o15 = 1/o14 + o16 = -(o13*o15) + o17 = -2.00000000000000d0*etagrd(i)*eta0*o15 + o18 = eta0**2 + o19 = -(o15*o18) + o20 = o16 + o17 + o19 + o21 = exp(o20) + o22 = -2.00000000000000d0 + n + o23 = o8**o22 + o24 = n**2 + o25 = 2.00000000000000d0*etagrd(i)*eta0*o15 + o26 = o16 + o19 + o25 + o27 = exp(o26) + o28 = o8**n + o29 = o14**2 + o30 = 1/o29 + o31 = o4**2 + o32 = 1/o31 + o33 = 5.0000000000000d-1*etagrd(i) + o34 = cosh(o33) + Cn(i,j) = o2 + 5.0000000000000d-1*o3*o5 + Cs(i,j) = o2 - 5.0000000000000d-1*o3*o5 + Cw(i,j) = o7 + Cc(i,j) = -1.25000000000000d-1 - 1.25000000000000d-1*o10 - 2.000 + & 00000000000d0*o2 - 2.50000000000000d-1*amp*n*o12*o21*o23 + 2.500 + & 00000000000d-1*amp*o12*o21*o23*o24 - 2.50000000000000d-1*amp*n*o + & 12*o23*o27 + 2.50000000000000d-1*amp*o12*o23*o24*o27 - 2.5000000 + & 0000000d-1*amp*n*o21*o28 - 5.0000000000000d-1*amp*o15*o21*o28 - + & 2.50000000000000d-1*amp*n*o27*o28 - 5.0000000000000d-1*amp*o15*o + & 27*o28 + 2.00000000000000d0*amp*etagrd(i)*eta0*o21*o28*o30 + amp*o13*o + & 21*o28*o30 + amp*o18*o21*o28*o30 - 2.00000000000000d0*amp*etagrd(i)*et + & a0*o27*o28*o30 + amp*o13*o27*o28*o30 + amp*o18*o27*o28*o30 + 1.2 + & 5000000000000d-1*o32 - 2.00000000000000d0*o7 + Ce(i,j) = o7 + Rhs(i,j) = -2.50000000000000d-1*o34 + 2.50000000000000d-1*o10*o3 + & 4 + 5.0000000000000d-1*amp*n*o12*o21*o23*o34 - 5.0000000000000d- + & 1*amp*o12*o21*o23*o24*o34 + 5.0000000000000d-1*amp*n*o12*o23*o27 + & *o34 - 5.0000000000000d-1*amp*o12*o23*o24*o27*o34 + 5.0000000000 + & 000d-1*amp*n*o21*o28*o34 + amp*o15*o21*o28*o34 + 5.0000000000000 + & d-1*amp*n*o27*o28*o34 + amp*o15*o27*o28*o34 - 4.0000000000000d0* + & amp*etagrd(i)*eta0*o21*o28*o30*o34 - 2.00000000000000d0*amp*o13*o21*o2 + & 8*o30*o34 - 2.00000000000000d0*amp*o18*o21*o28*o30*o34 + 4.00000 + & 00000000d0*amp*etagrd(i)*eta0*o27*o28*o30*o34 - 2.00000000000000d0*amp + & *o13*o27*o28*o30*o34 - 2.00000000000000d0*amp*o18*o27*o28*o30*o3 + & 4 - 2.50000000000000d-1*o32*o34 + diff --git a/src/gij.x b/src/gij.x new file mode 100644 index 0000000..8b644f2 --- /dev/null +++ b/src/gij.x @@ -0,0 +1,133 @@ + o1 = 2.00000000000000d0*phi(i,j,k) + o2 = cos(o1) + o3 = -eta0 + o4 = eta(i,j,k) + o3 + o5 = o4**2 + o6 = sigma**2 + o7 = 1/o6 + o8 = -(o5*o7) + o9 = exp(o8) + o10 = eta(i,j,k) + eta0 + o11 = o10**2 + o12 = -(o11*o7) + o13 = exp(o12) + o14 = o13 + o9 + o15 = sin(q(i,j,k)) + o16 = o15**n + o17 = 2.00000000000000d0*amp*o14*o16 + o18 = exp(o17) + o19 = -1.00000000000000d0 + o18 + o20 = eta(i,j,k)**2 + o21 = 2.00000000000000d0*o20 + o22 = eta0**2 + o23 = 2.00000000000000d0*o22 + o24 = eta(i,j,k)*o6 + o25 = o21 + o23 + o24 + o26 = -(o25*o7) + o27 = exp(o26) + o28 = 1/o15 + o29 = o20 + o22 + o30 = 2.00000000000000d0*o29*o7 + o31 = exp(o30) + o32 = sin(phi(i,j,k)) + o33 = sin(o1) + o34 = o11*o7 + o35 = exp(o34) + o36 = cos(phi(i,j,k)) + o37 = o32**2 + o38 = cos(q(i,j,k)) + o39 = o38**2 + o40 = o5*o7 + o41 = exp(o40) + o42 = o15**2 + o43 = o36**2 + o44 = -2.00000000000000d0*o19*o31*o6 + o45 = -2.00000000000000d0*eta(i,j,k) + o46 = -2.00000000000000d0*eta0 + o47 = n*o6 + o48 = 4.0000000000000d0*eta(i,j,k)*eta0*o7 + o49 = exp(o48) + o50 = -2.00000000000000d0*eta(i,j,k)*o49 + o51 = 2.00000000000000d0*eta0*o49 + o52 = n*o49*o6 + o53 = 2.00000000000000d0*q(i,j,k) + o54 = cos(o53) + o55 = 2.00000000000000d0*eta(i,j,k) + o56 = 2.00000000000000d0*eta0 + o57 = 2.00000000000000d0*eta(i,j,k)*o49 + o58 = -2.00000000000000d0*eta0*o49 + o59 = o47 + o52 + o55 + o56 + o57 + o58 + o60 = o54*o59 + o61 = o45 + o46 + o47 + o50 + o51 + o52 + o60 + o62 = o17 + o40 + o63 = exp(o62) + o64 = amp*o16*o61*o63 + o65 = o44 + o64 + o66 = -1.00000000000000d0 + o49 + o67 = -2.00000000000000d0*eta0*o66 + o68 = 1.00000000000000d0 + o49 + o69 = 2.00000000000000d0*eta(i,j,k)*o68 + o70 = n*o6*o68 + o71 = o67 + o69 + o70 + o72 = o56 + o6 + o73 = eta(i,j,k)*o72 + o74 = o20 + o22 + o73 + o75 = -(o7*o74) + o76 = o17 + o75 + o77 = exp(o76) + o78 = -eta(i,j,k) + o79 = exp(o78) + o80 = -2.00000000000000d0*o29*o7 + o81 = o17 + o80 + o82 = exp(o81) + o83 = -1.00000000000000d0 + n + o84 = o15**o83 + o85 = o35 + o41 + o86 = -(n*o39*o6*o85) + o87 = eta(i,j,k)*o49 + o88 = -(eta0*o49) + o89 = eta(i,j,k) + eta0 + o87 + o88 + o90 = 2.00000000000000d0*o41*o42*o89 + o91 = o86 + o90 + o92 = o17 + o26 + o93 = exp(o92) + o94 = n*o39*o6*o85 + o95 = -2.00000000000000d0*o41*o42*o89 + o96 = o94 + o95 + gxx(i,j,k) = 5.0000000000000d-1*(1.00000000000000d0 + o18 + o19* + & o2) +c dxgxx(i,j,k) = 5.0000000000000d-1*o27*o28*o7*(o36*(-2.0000000000 +c & 0000d0*o31*o37*o6 - amp*o16*o18*(2.00000000000000d0*eta(i,j,k)*o35*o42 +c & - 3.00000000000000d0*eta0*o35*o42 + 2.00000000000000d0*eta(i,j,k)*o2*o3 +c & 5*o42 + 2.00000000000000d0*eta(i,j,k)*o41*o42 + 2.00000000000000d0*eta0 +c & *o41*o42 + 2.00000000000000d0*eta(i,j,k)*o2*o41*o42 + 2.00000000000000d +c & 0*eta0*o2*o41*o42 - n*o35*o39*o6 - n*o2*o35*o39*o6 - n*o39*o41*o +c & 6 - n*o2*o39*o41*o6)) + o18*(o31*o32*o33*o6 + amp*eta0*o15**(2.0 +c & 0000000000000d0 + n)*o35*cos(3.00000000000000d0*phi(i,j,k)))) +c dygxx(i,j,k) = 5.0000000000000d-1*o27*o28*o32*o43*o65*o7 +c dzgxx(i,j,k) = -(amp*o16*o38*o43*o7*o71*o77) + gxy(i,j,k) = 5.0000000000000d-1*o19*o33 +c dxgxy(i,j,k) = 5.0000000000000d-1*o7*o79*(-(o19*o2*o28*o32*o6) - +c & amp*o33*o36*o82*o84*o91) +c dygxy(i,j,k) = 5.0000000000000d-1*o7*o79*(1.00000000000000d0*o19 +c & *o2*o28*o36*o6 - amp*o32*o33*o82*o84*o91) +c dzgxy(i,j,k) = -5.0000000000000d-1*amp*o16*o33*o38*o7*o71*o77 + gxz(i,j,k) = 0 +c dxgxz(i,j,k) = 0 +c dygxz(i,j,k) = 0 +c dzgxz(i,j,k) = 0 + gyy(i,j,k) = 5.0000000000000d-1*(1.00000000000000d0 + o18 - o19* + & o2) +c dxgyy(i,j,k) = 5.0000000000000d-1*o27*o28*o36*o37*o65*o7 +c dygyy(i,j,k) = 5.0000000000000d-1*o27*o28*o7*(-2.00000000000000d +c & 0*o31*o32*o43*o6 - 2.00000000000000d0*amp*o16*o18*o32*o37*o91 + +c & o33*o36*o6*exp(2.00000000000000d0*(amp*o14*o16 + o29*o7))) +c dzgyy(i,j,k) = -(amp*o16*o37*o38*o7*o71*o77) + gyz(i,j,k) = 0 +c dxgyz(i,j,k) = 0 +c dygyz(i,j,k) = 0 +c dzgyz(i,j,k) = 0 + gzz(i,j,k) = o18 +c dxgzz(i,j,k) = amp*o36*o7*o84*o93*o96 +c dygzz(i,j,k) = amp*o32*o7*o84*o93*o96 +c dzgzz(i,j,k) = -(amp*o16*o38*o7*o71*o77) diff --git a/src/interp2.F b/src/interp2.F new file mode 100644 index 0000000..006287f --- /dev/null +++ b/src/interp2.F @@ -0,0 +1,213 @@ +c /*@@ +c@routine interp2d +c@date Fri Feb 14 08:46:53 1997 +c@author Paul Walker +c@desc +c Interpolates from 2D data var with coordinates x and y and +c sizes nx and ny onto 1D data out with position outx and outy +c and nout points. +c <p> +c This has linear, quadratic and cubic interpolators in it. +c Or will one day very soon. +c@enddesc +c@calls +c@calledby numerical_axig +c@@*/ + + subroutine interp2d(var,x,y,nx,ny,out,outx,outy,nout,order) + implicit none + integer nx,ny,nout + real*8 var(nx,ny), x(nx), y(ny) + real*8 out(nout),outx(nout),outy(nout) + integer order +c Interpolation goes from ibelow to ibelow+[1,2,3] depending on order + integer i,j,ibelow,jbelow,pt + real*8 xsym,ysym,findx,findy,frac + real*8 ydir(order+1) + real*8 ft(10), xt(10) + real*8 poly2inter, quad_2d, cubic_2d + real*8 dx, dy, PI + integer twobhjsad + + PI = 3.14159265 + +c Set up the grid spacings + dx = x(2) - x(1) + dy = y(2) - y(1) + +c Loop over all out points + do pt=1,nout + ysym = 1.0D0 + xsym = 1.0D0 +c Check bounds + findx = outx(pt) + if (findx .lt. x(1)) then + write (*,*) "Below inner bound at ",pt,outx(pt) + STOP + endif + if (findx .gt. x(nx)) then + write (*,*) "Above x bounds at ",pt,outx(pt),x(nx) + STOP + endif + findy = outy(pt) + if (findy .lt. y(1)) then + write (*,*) "Below y inner bound at ",pt,outy(pt) + STOP + endif + if (findy .gt. y(ny)) then + write (*,*) "Below y inner bound at ",pt,outy(pt) + STOP + endif + +c Locate ourselves in i,j space +c do i=1,nx +c if (x(i) .lt. findx) then +c ibelow = i +c endif +c enddo +c Assume a regular grid + ibelow = (findx-x(1))/dx+1 + + if (order .eq. 3 .and. ibelow .gt. 1) then + ibelow = ibelow - 1 + endif + if (ibelow + order .gt. nx) then + ibelow = nx - order + endif + +c do i=1,ny +c if (y(i) .lt. findy) then +c jbelow = i +c endif +c enddo +c Assume a regular grid + jbelow = (findy-y(1))/dy+1 + if (order .eq. 3 .and. jbelow .gt. 1) then + jbelow = jbelow - 1 + endif + if (jbelow + order .gt. ny) then + jbelow = ny - order + endif + +c write (*,*) "PT :",findx,findy +c write (*,*) "SYM:",sym +c write (*,*) "BOUND X ",ibelow,x(ibelow),x(ibelow+1) +c write (*,*) "BOUND Y ",jbelow,y(jbelow),y(jbelow+1) + + +c So do the interpolation + if (order .eq. 1) then +c Interp in the x direction + frac = (findx-x(ibelow))/(x(ibelow+1)-x(ibelow)) + ydir(1) = frac * var(ibelow+1,jbelow) + + $ (1.0 - frac)*var(ibelow,jbelow) + ydir(2) = frac * var(ibelow+1,jbelow+1) + + $ (1.0 - frac)*var(ibelow,jbelow+1) +c And now in the y direction + frac = (findy-y(jbelow))/(y(jbelow+1)-y(jbelow)) + out(pt) = xsym * ysym * + $ (frac * ydir(2) + (1.0 - frac) * ydir(1)) + else if (order .eq. 2) then +c Load up for calls to poly2inter + do j=1,3 + do i=1,3 + ft(i) = var(ibelow+i-1,jbelow+j-1) + xt(i) = x(ibelow+i-1) + enddo + ydir(j) = quad_2d(ft,xt(1),dx,findx) + enddo + do j=1,3 + xt(j) = y(jbelow+j-1) + enddo + out(pt) = xsym * ysym*quad_2d(ydir,xt(1),dy,findy) + else if (order .eq. 3) then +c Load up for calls to cubic + do j=1,4 + do i=1,4 + ft(i) = var(ibelow+i-1,jbelow+j-1) + xt(i) = x(ibelow+i-1) + enddo + ydir(j) = cubic_2d(ft,xt(1),dx,findx) + enddo + do j=1,4 + xt(j) = y(jbelow+j-1) + enddo + out(pt) = xsym * ysym*cubic_2d(ydir,xt(1),dy,findy) + else + write (*,*) "ORDER set wrong in interp2d",order + stop + endif + enddo + + return + end + + real*8 function linear_2d(f, x0, dx, findx) + implicit none + real*8 f(2),x0,dx,findx + real*8 frac + + frac = (findx-x0)/dx + linear_2d = (frac)*f(2) + (1.0-frac)*f(1) + + return + end + + real*8 function quad_2d(f, x0, dx, findx) + implicit none + real*8 f(3),x0, dx, findx + real*8 f0,f1,f2 + real*8 a,b,c, dx2, x02, o2dx2 +c Mathematica tells us +c - List(List(Rule(c,(2*dx**2*f0 + 3*dx*f0*x0 - 4*dx*f1*x0 +c - + dx*f2*x0 + f0*x0**2 - 2*f1*x0**2 + f2*x0**2) +c - /(2*dx**2)), Rule(b,(-3*dx*f0 + 4*dx*f1 - dx*f2 - 2*f0*x0 +c - + 4*f1*x0 - 2*f2*x0)/(2*dx**2)),Rule(a,(f0 - 2*f1 + +c - f2)/(2*dx**2)))) + + f0 = f(1) + f1 = f(2) + f2 = f(3) + dx2 = dx**2 + x02 = x0**2 + o2dx2 = 1.0D0/(2.0D0*dx2) + + c = (2.0D0*dx2*f0 + dx*x0*(3.0D0*f0 - 4.0D0*f1 + f2) + + $ x02*(f0 - 2.0D0*f1 + f2))*o2dx2 + b = (dx * (-3.0D0*f0 + 4.0D0*f1 - f2) + x0 * (- 2.0D0*f0 + + $ 4.0D0*f1 - 2.0D0*f2))*o2dx2 + + a = (f0 - 2.0D0*f1 + f2)*o2dx2 + + quad_2d = a*findx**2 + b*findx + c + + return + end + + real*8 function cubic_2d(f, x0, dx, findx) + implicit none + real*8 a,b,c,d + real*8 f(4),x0,dx,findx + + a = -(f(1)-3.0*f(2)+3.0*f(3)-f(4)) / (6.0*(dx**3)) + + b = (f(1)-2.0*f(2)+f(3))/(2.0*(dx**2)) + + $ (f(1)-3.0*f(2)+3.0*f(3)-f(4))*(dx+x0)/(2.0*(dx**3)) + + c = ((dx**2)*(-11.0*f(1) + 18.0*f(2) - 9.0*f(3) + 2.0*f(4)) + + $ dx*x0* (-12.0*f(1) + 30.0*f(2) - 24.0*f(3) + 6.0*f(4)) + + $ (x0**2)*( -3.0*f(1) + 9.0*f(2) - 9.0*f(3) + 3.0*f(4))) / + $ (6.0*(dx**3)) + + d = ((dx**3)* ( 6.0*f(1) ) + + $ (dx**2)*x0*( 11.0*f(1) - 18.0*f(2) + 9.0*f(3) - 2.0*f(4)) + + $ (x0**2)*dx*( 6.0*f(1) - 15.0*f(2) + 12.0*f(3) - 3.0*f(4)) + + $ (x0**3)* ( 1.0*f(1) - 3.0*f(2) + 3.0*f(3) - 1.0*f(4)))/ + $ (6.0*(dx**3)) + + cubic_2d = ((a*findx + b)*findx + c)*findx + d + + return + end + + diff --git a/src/make.code.defn b/src/make.code.defn new file mode 100644 index 0000000..7bd9c1e --- /dev/null +++ b/src/make.code.defn @@ -0,0 +1,9 @@ +# Main make.code.defn file for thorn AxiBrillBHIVP +# $Header$ + +# Source files in this directory +SRCS = IDAxiBrillBH.F mg59p.F shmgp.F77 + +# Subdirectories containing source files +SUBDIRS = + diff --git a/src/mg59p.F b/src/mg59p.F new file mode 100644 index 0000000..63dcb4a --- /dev/null +++ b/src/mg59p.F @@ -0,0 +1,896 @@ +c---------------------------------------------------------------------- + subroutine mgparm(m,ifd59,id5,id9,idi,idg,imx,jmx) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c Given imx, jmx and ifd59 (See comments in mgsu2), mgparm calculates +c the number of grids that will be needed, and the dimensions +* needed for the coefficient, right hand side and solution arrays +* to store values on all grid levels. +c ..................................................................... +* +**** Parameters +* +* INTEGERS: +* m : +* This is the number of grid levels that the multigrid +* routine will use. +* +* ifmg : +* ifmg = 0 - The full multigrid algorithm is not used to +* obtain a good initial guess on the fine grid. +* (use this if you can provide a good initial guess) +* ifmg = 1 - The full multigrid algorithm is used to obtain a +* good initial guess on the fine grid. +* +* id5 : +* Dimension of the arrays ac,aw,as,ae,an,q and f. id5 is the +* total number of grid points on the finest grid and all +* coarser grids. +* +* id9 : +* Dimension of the arrays asw,ase,ane,anw. If ifd59=5 then +* id9=idi. If ifd59=9 then id9=id5. +* (NOTE: This routine specifically written for 9-point) +* +* idi : +* Dimension of the work arrays pu and pd. idi is the total +* number of grid points on all of the coarser grids. +* +* idg : +* Dimension of the work array gam. It is set to the value im, +* the number of grid points in the i-direction on the finest +* grid. +* +* imx,jmx : +* These are the number of points in the i and j directions +* including the two ficticious points. +* + parameter(n5=1,n9=2,ni=3,jm=4,i9=5,j9=6,ifd=7,jred=8) + dimension np2(20,8) + iq5=1 + iq9=1 + iqi=1 + m=1 + np2(m,1)=jmx + np2(m,2)=3 + 10 if(np2(m,1).le.3) go to 20 + m=m+1 + np2(m,1)=np2(m-1,1)/2+1 + if(np2(m-1,2).eq.2.and.mod(np2(m-1,1),2).eq.1) + + np2(m,1)=np2(m,1)+1 + np2(m,2)=2 + go to 10 + 20 do 30 k=1,m + np2(m-k+1,jm)=np2(k,1) + 30 np2(m-k+1,jred)=np2(k,2) + do 40 k=m,1,-1 + ktot=imx*np2(k,jm) + np2(k,n5)=iq5 + iq5=iq5+ktot + np2(k,n9)=iq9 + if(k.lt.m.or.ifd59.eq.9) iq9=iq9+ktot + np2(k,ni)=iqi + 40 if(k.lt.m) iqi=iqi+ktot + do 50 k=1,m + np2(k,i9)=imx + np2(k,j9)=np2(k,jm) + 50 np2(k,ifd)=9 + if(ifd59.eq.5) then + np2(m,i9)=1 + np2(m,j9)=1 + np2(m,ifd)=5 + endif + id5=iq5-1 + id9=iq9-1 + idi=iqi-1 + idg=imx + return + end +* +* +* +************************************************************************ +* + subroutine mg9 (idim,ilower,iupper,jdim,jlower,jupper, + & cc,cn,cs,cw,ce,cnw,cne,csw,cse,u,rhs, + & id5,id9,idi,idg,ifmg,eps,rmax,ier) + implicit real*8 (a-h,o-z) +* +************************************************************************ +* +* +* This routine is a wrapper for the multigrid solver. The input +* arrays are the finite difference coefficients on the 2D grid with +* the boundary conditions absorbed into them. +* +**** Parameters +* +* INTEGERS: +* idim,jdim : +* These define sizes of the coefficient arrays passed to this +* routine. +* +* ilower,iupper, +* jlower,jupper : +* These are the indices of the computational grid that +* correspond to upper and lower index limits for points on +* which computations are actually done. +* +* id5 : +* Dimension of the arrays ac,aw,as,ae,an,q and f. id5 is the +* total number of grid points on the finest grid and all +* coarser grids. +* +* id9 : +* Dimension of the arrays asw,ase,ane,anw. If ifd59=5 then +* id9=idi. If ifd59=9 then id9=id5. +* (NOTE: This routine specifically written for 9-point) +* +* idi : +* Dimension of the work arrays pu and pd. idi is the total +* number of grid points on all of the coarser grids. +* +* idg : +* Dimension of the work array gam. It is set to the value im, +* the number of grid points in the i-direction on the finest +* grid. +* +* ifmg : +* ifmg = 0 - The full multigrid algorithm is not used to +* obtain a good initial guess on the fine grid. +* (use this if you can provide a good initial guess) +* ifmg = 1 - The full multigrid algorithm is used to obtain a +* good initial guess on the fine grid. +* +* ier : +* This is an error flag with the following possible return +* values: +* ier = 0 => solver converged without error +* ier = -1 => solver did not converge +* +* REALS: +* cc(idim,jdim),cn(idim,jdim), +* cs(idim,jdim),cw(idim,jdim),ce(idim,jdim), +* cnw(idim,jdim),cne(idim,jdim), +* csw(idim,jdim),cse(idim,jdim) : +* These are the finite difference coefficient arrays for a +* nine-point stencil on the two dimensional grid as follows: +* +* +* cnw cn cne +* ^ +* | cw cc ce +* increasing | +* j values | csw cs cse +* (theta) | +* --------> increasing i values (eta) +* +* Ie. the coresspondence is : nw : i-1,j+1 +* n : i,j+1 +* ne : i+1,j+1 +* w : i-1,j +* c : i,j +* e : i+1,j +* sw : i-1,j-1 +* s : i,j-1 +* se : i+1,j-1 +* +* u : +* Input: this contains the initial guess to the solution of the +* equation +* Output: This contains the final approximation to the solution +* determined by the multigrid solver. +* +* rhs : +* This array contains the values of the right hand side of the +* equation at every point on the rwo dimensional grid. +* +* eps : +* eps > 0. The maximum norm of the residual is calculated at +* the end of each multigrid cycle. The algorithm is +* terminated when this maximum becomes less than eps +* or when the maximum number of iterations (see ncyc) +* is exceeded. It is up to the user to provide a +* meaningfull tolerance criteria for the particular +* problem being solved. +* +* rmax: +* This is the final value of the residual calcu;ated. +* +************************************************************************ +* +* + + integer idim,ilower,iupper,jdim,jlower,jupper,ifmg + integer id5,id9,idi,idg,ier + real*8 cc(idim,jdim),cn(idim,jdim),cs(idim,jdim),cw(idim,jdim), + & ce(idim,jdim),cnw(idim,jdim),cne(idim,jdim),csw(idim,jdim), + & cse(idim,jdim),u(idim,jdim),rhs(idim,jdim) + real*8 eps,rmax + +* +************************************************************************ +* +* Variable definitions: +* +* Integers: +* ifd59 : +* ifd59 = 5 - means a 5-point finite difference stencil +* (ac,an,as,aw,ae) is defined on the finest grid. +* ifd59 = 9 - means a 9-point finite difference stencil +* (ac,an,as,aw,ae,anw,ane,asw,ase) is defined on +* the finest grid by the user. +* (NOTE: This routine specifically written +* for 9-point) +* +* ncyc : +* The maximum number of multigrid "v"-cycles to be used. If +* the maximum norm of the residual is not less than tol at the +* end of ncyc cycles, the algorithm is terminated. +* (NOTE: ncyc <= 40 ) +* +* np(20,8) : +* Input: When the iskip=1,-1 or -2 option is used, np2 is +* assumed to contain the grid information for umgs2. +* Output: When the iskip=0 option is used, the grid +* information for umgs2 is returned in np2. +* (NOTE: This is only useful for multiple instance problems) +* +* iskip : +* iskip = 0 - The coarse grid information, coarse grid +* operators and interpolation coefficients are +* calculated by umgs2. This information is stored +* in the arrays ac, aw, as, asw, ase, pu, pd, np2 +* and the variable. +* iskip = 1 - The calculation of the coarse grid information, +* coarse grid operators and interpolation +* coefficients is skipped. This option would be +* used when umgs2 has been called with iskip=0 and +* is being called again to solve a system of +* equations with the same matrix. This would be +* the case in, say, parabolic problems with time +* independent coefficients. +* iskip =-1 - The set up of pointers (ugrdfn) is skipped. +* Coarse grid operators and interpolation +* coefficients are calculated and the given matrix +* equation is solved. This option would be used +* when umgs2 has been called with iskip=0 and is +* being called again to solve a system of equations +* with a different matrix of the same dimensions. +* This would be the case for, say, parabolic +* problems with time dependent coefficients. +* iskip =-2 - The set up of pointers (ugrdfn) is skipped. +* Coarse grid operators and interpolation +* coefficients are calculated and returned. +* No matrix solve. +* +* ipc : +* ipc = 0 or 1. +* ipc is a multigrid parameter which determines the type of +* interpolation to be used. Usually ipc=1 is best. However, +* if the boundary condition equations have been absorbed into +* the interior equations then ipc=0 can be used which results +* in a slightly more efficient algorithm. +* +* nman : +* nman = 0 usually. +* nman = 1 signals that the fine grid equations are singulari +* for the case when homogeneous Neumann boundary conditions are +* applied along the entire boundary. In this case, the +* difference equations are singular and the condition that the +* integral of q over the domain be zero is added to the set of +* difference equations. This condition is satisfied by adding +* the appropriate constant vector to q on the fine grid. It is +* assumed, in this case, that a well-defined problem has been +* given to mgss2, i.e. the integral of f over the domain is +* zero. +* +* im : +* The number of grid points in the x-direction (including two +* ficticious points) +* jm : +* The number of grid points in the y-direction (including two +* ficticious points) +* +* linp : +* This is a dummy argument left over from the authors +* development of the code +* Use: common /io/ linp,lout +* +* lout : +* lout = unit number of output file into which the maximum norm +* of the residual after each multigrid v-cycle" is printed. +* Use: common /io/ linp,lout +* +* iscale : +* Flag to indicate whether problem can be diagonally scaled to +* speed convergence of the multigrid solver. +* +* REALS: +* +* ac(id5),an(id5),as(id5),aw(id5),ae(id5), +* anw(id9),ane(id9),asw(id9),ase(id9) : +* Input: ac, an, as, aw, ae, anw, ane, asw and ase contain the +* stencil coefficients for the difference operator on +* the finest grid. When the iskip=1 option is used, +* these arrays also are assumed to contain the coarse +* grid difference stencil coeficients. +* Output: when the iskip=0 option is used, the coarse grid +* stencil coeficients are returned in ac, an, as, aw, +* ae, anw, ane, asw and ase. +* +* ru(idi),rd(idi),rc(idi) : +* Real work arrays. +* +* pu(idi),pd(idi),pc(idi) : +* Real work arrays. +* Input: when the iskip=1 option is used, these arrays are +* assumed to contain the interpolation coefficients used +* in the semi-coarsening multigrid algorithm. +* Output: when the iskip=0 option is used, the interpolation +* coeficients are returned in pu and pd. +* +* f(id5) : +* f contains the right hand side vector of the matrix +* equation to be solved by umgs2. +* +* q(id5) : +* If ifmg=0, q contains the initial guess on the fine grid. +* If ifmg=1, the initial guess on the fine grid is determined +* by the full multigrid process and the value of +* q on input to umgs2 not used. +* +* tol : +* tol > 0. The maximum norm of the residual is calculated at +* the end of each multigrid cycle. The algorithm is +* terminated when this maximum becomes less than tol +* or when the maximum number of iterations (see ncyc) +* is exceeded. It is up to the user to provide a +* meaningfull tolerance criteria for the particular +* problem being solved. +* tol = 0. Perform ncyc multigrid cycles. Calculate and print +* the maximum norm of the residual after each cycle. +* tol =-1. Perform ncyc multigrid cycles. The maximum norm of +* the final residual is calculated and returned in +* the variable rmax in the calling list of umgs2. +* tol =-2. Perform ncyc multigrid cycles. The maximum norm of +* the residual is not calculated. +* +* rmax : +* If tol.ge.-1., the final residual norm is returned in rmax. +* +************************************************************************ +* +* + + integer ncyc,ifd59 + parameter (ncyc=40,ifd59=9) + + integer np2(20,8) + integer iskip,ipc,nman + parameter (iskip=0,ipc=1,nman=0) + integer irc,irurd,im,jm + integer linp,lout + common /io/ linp,lout + + real*8 ac(id5),an(id5),as(id5),aw(id5),ae(id5), + & anw(id9),ane(id9),asw(id9),ase(id9), + & q(id5),f(id5),gam(idg) + + real*8 ru(idi),rd(idi),rc(idi),pu(idi),pd(idi),pc(idi) + + real*8 tol + + integer iscale,itry + + + ier=0 + +* +* Set some parameters for multigrid solver +* + lout=6 +c rewind(unit=lout) + irc=0 + irurd=0 + im=iupper-ilower+3 + jm=jupper-jlower+3 + tol=eps + +* +* Set up coefficients into vectors with correct indexing +* + do 110 j=jlower,jupper + do 100 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + ac(n)=cc(i,j) + an(n)=cn(i,j) + as(n)=cs(i,j) + aw(n)=cw(i,j) + ae(n)=ce(i,j) + anw(n)=cnw(i,j) + ane(n)=cne(i,j) + asw(n)=csw(i,j) + ase(n)=cse(i,j) + q(n)=u(i,j) + f(n)=rhs(i,j) + 100 continue + 110 continue + + +* +* Determine whether we can diagonal scale the problem to speed +* convergence. Can only be done if there are no zeros on the main +* diagonal (ie. central difference coefficient). +* + iscale=1 + do 200 j=jlower,jupper + do 205 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + if (ac(n) .eq. 0.) then + iscale=0 + endif + 205 continue + 200 continue + +* +* Do the diagonal scaling if we can. +* + if (iscale.eq.1) then + + do 210 j=jlower,jupper + do 215 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + f(n)=f(n)/ac(n) + ase(n)=ase(n)/ac(n) + asw(n)=asw(n)/ac(n) + ane(n)=ane(n)/ac(n) + anw(n)=anw(n)/ac(n) + ae(n)=ae(n)/ac(n) + aw(n)=aw(n)/ac(n) + as(n)=as(n)/ac(n) + an(n)=an(n)/ac(n) + ac(n)=1. + 215 continue + 210 continue + + endif + +c +c Now call the multigrid routine + + itry=0 + + 1122 call umgs2( + . ac,aw,as,ae,an,asw,ase,ane,anw,q,f,pu,pd,pc,ru,rd,rc,gam,np2, + . ifd59,ifmg,ncyc,tol,nman,im,jm,id5,id9,idi,m,iskip,rmax, + . ipc,irc,irurd) + + if ((rmax.gt.tol).and.(itry.le.5)) then + itry=itry+1 + print*,"Retry #",itry + goto 1122 + endif + + if (rmax.gt.tol) then + ier = -1 + print*,"Did not converge" + print*," maximum residual = ",rmax + print*," tolerance = ",tol + endif + +* +* Convert the solution back to the 2D array form +* + do 510 j=jlower,jupper + do 500 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + u(i,j)=q(n) + 500 continue + 510 continue + + return + end + + + +* +* +* +************************************************************************ +* + subroutine mg5 (idim,ilower,iupper,jdim,jlower,jupper, + & cc,cn,cs,cw,ce,u,rhs, + & id5,id9,idi,idg,ifmg,eps,rmax,ier) + implicit real*8 (a-h,o-z) +* +************************************************************************ +* +* +* This routine is a wrapper for the multigrid solver. The input +* arrays are the finite difference coefficients on the 2D grid with +* the boundary conditions absorbed into them. +* +**** Parameters +* +* INTEGERS: +* idim,jdim : +* These define sizes of the coefficient arrays passed to this +* routine. +* +* ilower,iupper, +* jlower,jupper : +* These are the indices of the computational grid that +* correspond to upper and lower index limits for points on +* which computations are actually done. +* +* id5 : +* Dimension of the arrays ac,aw,as,ae,an,q and f. id5 is the +* total number of grid points on the finest grid and all +* coarser grids. +* +* id9 : +* Dimension of the arrays asw,ase,ane,anw. If ifd59=5 then +* id9=idi. If ifd59=9 then id9=id5. +* (NOTE: This routine specifically written for 5-point) +* +* idi : +* Dimension of the work arrays pu and pd. idi is the total +* number of grid points on all of the coarser grids. +* +* idg : +* Dimension of the work array gam. It is set to the value im, +* the number of grid points in the i-direction on the finest +* grid. +* +* ifmg : +* ifmg = 0 - The full multigrid algorithm is not used to +* obtain a good initial guess on the fine grid. +* (use this if you can provide a good initial guess) +* ifmg = 1 - The full multigrid algorithm is used to obtain a +* good initial guess on the fine grid. +* +* ier : +* This is an error flag with the following possible return +* values: +* ier = 0 => solver converged without error +* ier = -1 => solver did not converge +* +* REALS: +* cc(idim,jdim),cn(idim,jdim), +* cs(idim,jdim),cw(idim,jdim),ce(idim,jdim): +* These are the finite difference coefficient arrays for a +* five-point stencil on the two dimensional grid as follows: +* +* +* cn +* ^ +* | cw cc ce +* increasing | +* j values | cs +* (theta) | +* --------> increasing i values (eta) +* +* Ie. the coresspondence is : n : i,j+1 +* ne : i+1,j+1 +* c : i,j +* e : i+1,j +* s : i,j-1 +* +* u : +* Input: this contains the initial guess to the solution of the +* equation +* Output: This contains the final approximation to the solution +* determined by the multigrid solver. +* +* rhs : +* This array contains the values of the right hand side of the +* equation at every point on the rwo dimensional grid. +* +* eps : +* eps > 0. The maximum norm of the residual is calculated at +* the end of each multigrid cycle. The algorithm is +* terminated when this maximum becomes less than tol +* or when the maximum number of iterations (see ncyc) +* is exceeded. It is up to the user to provide a +* meaningfull tolerance criteria for the particular +* problem being solved. +* rmax: +* This is the final value of the residual calcu;ated. +* +************************************************************************ +* +* + + integer idim,ilower,iupper,jdim,jlower,jupper,ifmg + integer id5,id9,idi,idg,ier + real*8 cc(idim,jdim),cn(idim,jdim),cs(idim,jdim),cw(idim,jdim), + & ce(idim,jdim),u(idim,jdim),rhs(idim,jdim) + real*8 eps,rmax + +* +************************************************************************ +* +* Variable definitions: +* +* Integers: +* ifd59 : +* ifd59 = 5 - means a 5-point finite difference stencil +* (ac,an,as,aw,ae) is defined on the finest grid. +* ifd59 = 9 - means a 9-point finite difference stencil +* (ac,an,as,aw,ae,anw,ane,asw,ase) is defined on +* the finest grid by the user. +* (NOTE: This routine specifically written +* for 5-point) +* +* ncyc : +* The maximum number of multigrid "v"-cycles to be used. If +* the maximum norm of the residual is not less than tol at the +* end of ncyc cycles, the algorithm is terminated. +* (NOTE: ncyc <= 40 ) +* +* np(20,8) : +* Input: When the iskip=1,-1 or -2 option is used, np2 is +* assumed to contain the grid information for umgs2. +* Output: When the iskip=0 option is used, the grid +* information for umgs2 is returned in np2. +* (NOTE: This is only useful for multiple instance problems) +* +* iskip : +* iskip = 0 - The coarse grid information, coarse grid +* operators and interpolation coefficients are +* calculated by umgs2. This information is stored +* in the arrays ac, aw, as, asw, ase, pu, pd, np2 +* and the variable. +* iskip = 1 - The calculation of the coarse grid information, +* coarse grid operators and interpolation +* coefficients is skipped. This option would be +* used when umgs2 has been called with iskip=0 and +* is being called again to solve a system of +* equations with the same matrix. This would be +* the case in, say, parabolic problems with time +* independent coefficients. +* iskip =-1 - The set up of pointers (ugrdfn) is skipped. +* Coarse grid operators and interpolation +* coefficients are calculated and the given matrix +* equation is solved. This option would be used +* when umgs2 has been called with iskip=0 and is +* being called again to solve a system of equations +* with a different matrix of the same dimensions. +* This would be the case for, say, parabolic +* problems with time dependent coefficients. +* iskip =-2 - The set up of pointers (ugrdfn) is skipped. +* Coarse grid operators and interpolation +* coefficients are calculated and returned. +* No matrix solve. +* +* ipc : +* ipc = 0 or 1. +* ipc is a multigrid parameter which determines the type of +* interpolation to be used. Usually ipc=1 is best. However, +* if the boundary condition equations have been absorbed into +* the interior equations then ipc=0 can be used which results +* in a slightly more efficient algorithm. +* +* nman : +* nman = 0 usually. +* nman =1 signals that the fine grid equations are singular for +* the case when homogeneous Neumann boundary conditions are +* applied along the entire boundary. In this case, the +* difference equations are singular and the condition that the +* integral of q over the domain be zero is added to the set of +* difference equations. This condition is satisfied by adding +* the appropriate constant vector to q on the fine grid. It is +* assumed, in this case, that a well-defined problem has been +* given to mgss2, i.e. the integral of f over the domain is +* zero. +* +* im : +* The number of grid points in the x-direction (including two +* ficticious points) +* jm : +* The number of grid points in the y-direction (including two +* ficticious points) +* +* linp : +* This is a dummy argument left over from the authors +* development of the code +* Use: common /io/ linp,lout +* +* lout : +* lout = unit number of output file into which the maximum norm +* of the residual after each multigrid v-cycle" is printed. +* Use: common /io/ linp,lout +* +* iscale : +* Flag to indicate whether problem can be diagonally scaled to +* speed convergence of the multigrid solver. +* +* REALS: +* +* ac(id5),an(id5),as(id5),aw(id5),ae(id5), +* anw(id9),ane(id9),asw(id9),ase(id9) : +* Input: ac, an, as, aw, ae, anw, ane, asw and ase contain the +* stencil coefficients for the difference operator on +* the finest grid. When the iskip=1 option is used, +* these arrays also are assumed to contain the coarse +* grid difference stencil coeficients. +* Output: when the iskip=0 option is used, the coarse grid +* stencil coeficients are returned in ac, an, as, aw, +* ae, anw, ane, asw and ase. +* +* ru(idi),rd(idi),rc(idi) : +* Real work arrays. +* +* pu(idi),pd(idi),pc(idi) : +* Real work arrays. +* Input: when the iskip=1 option is used, these arrays are +* assumed to contain the interpolation coefficients used +* in the semi-coarsening multigrid algorithm. +* Output: when the iskip=0 option is used, the interpolation +* coeficients are returned in pu and pd. +* +* f(id5) : +* f contains the right hand side vector of the matrix +* equation to be solved by umgs2. +* +* q(id5) : +* If ifmg=0, q contains the initial guess on the fine grid. +* If ifmg=1, the initial guess on the fine grid is determined +* by the full multigrid process and the value of +* q on input to umgs2 not used. +* +* tol : +* tol > 0. The maximum norm of the residual is calculated at +* the end of each multigrid cycle. The algorithm is +* terminated when this maximum becomes less than tol +* or when the maximum number of iterations (see ncyc) +* is exceeded. It is up to the user to provide a +* meaningfull tolerance criteria for the particular +* problem being solved. +* tol = 0. Perform ncyc multigrid cycles. Calculate and print +* the maximum norm of the residual after each cycle. +* tol =-1. Perform ncyc multigrid cycles. The maximum norm of +* the final residual is calculated and returned in +* the variable rmax in the calling list of umgs2. +* tol =-2. Perform ncyc multigrid cycles. The maximum norm of +* the residual is not calculated. +* +************************************************************************ +* +* + + integer ncyc,ifd59 + parameter (ncyc=40,ifd59=5) + +* integer id5,id9,idi,idg +* This is for a 103x28 grid +* parameter(id5=6695,id9=3811,idi=3811,idg=103) +* This is for a 203x56 grid +* parameter(id5=24969,id9=13601,idi=13601,idg=203) +* This is for a 403x118 grid +* parameter(id5=100750,id9=52793,idi=52793,idg=403) + + integer np2(20,8) + integer iskip,ipc,nman + parameter (iskip=0,ipc=1,nman=0) + integer irc,irurd,im,jm + integer linp,lout + common /io/ linp,lout + + real*8 ac(id5),an(id5),as(id5),aw(id5),ae(id5), + & anw(id9),ane(id9),asw(id9),ase(id9), + & q(id5),f(id5),gam(idg) + + real*8 ru(idi),rd(idi),rc(idi),pu(idi),pd(idi),pc(idi) + + real*8 tol + + integer iscale,itry + + + + ier=0 +* +* Set some parameters for multigrid solver +* + lout=6 +c rewind(unit=lout) + irc=0 + irurd=0 + im=iupper-ilower+3 + jm=jupper-jlower+3 + tol=eps + + +* +* Set up coefficients into vectors with correct indexing +* + do 110 j=jlower,jupper + do 100 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + ac(n)=cc(i,j) + an(n)=cn(i,j) + as(n)=cs(i,j) + aw(n)=cw(i,j) + ae(n)=ce(i,j) + anw(n)=0. + ane(n)=0. + asw(n)=0. + ase(n)=0. + q(n)=u(i,j) + f(n)=rhs(i,j) + 100 continue + 110 continue + + +* +* Determine whether we can diagonal scale the problem to speed +* convergence. Can only be done if there are no zeros on the main +* diagonal (ie. central difference coefficient). +* + iscale=1 + do 200 j=jlower,jupper + do 205 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + if (ac(n) .eq. 0.) then + iscale=0 + endif + 205 continue + 200 continue + +* +* Do the diagonal scaling if we can. +* + if (iscale.eq.1) then + + do 210 j=jlower,jupper + do 215 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + f(n)=f(n)/ac(n) + ae(n)=ae(n)/ac(n) + aw(n)=aw(n)/ac(n) + as(n)=as(n)/ac(n) + an(n)=an(n)/ac(n) + ac(n)=1. + 215 continue + 210 continue + + endif + +c +c Now call the multigrid routine + + itry=0 + + 1122 call umgs2( + + ac,aw,as,ae,an,asw,ase,ane,anw,q,f,pu,pd,pc,ru,rd,rc,gam,np2, + + ifd59,ifmg,ncyc,tol,nman,im,jm,id5,id9,idi,m,iskip,rmax, + + ipc,irc,irurd) + + + if ((rmax.gt.tol).and.(itry.le.5)) then + itry=itry+1 + print*,"Retry #",itry + goto 1122 + endif + + if (rmax.gt.tol) then + ier = -1 + print*,"Did not converge" + print*," maximum residual = ",rmax + print*," tolerance = ",tol + endif + +* +* Convert the solution back to the 2D array form +* + do 510 j=jlower,jupper + do 500 i=ilower,iupper + n=(j+1-jlower)*im + i+1-(ilower-1) + u(i,j)=q(n) + 500 continue + 510 continue + + return + end diff --git a/src/psi_1st_deriv.x b/src/psi_1st_deriv.x new file mode 100644 index 0000000..3c3335e --- /dev/null +++ b/src/psi_1st_deriv.x @@ -0,0 +1,18 @@ + o1 = 5.0000000000000d-1*eta(i,j,k) + o2 = exp(o1) + o3 = psi2dv(i,j,k) + o4 = 1/o3 + o5 = cos(phi(i,j,k)) + o6 = cos(q(i,j,k)) + o7 = dqpsi2dv(i,j,k) + o8 = -1.50000000000000d0*eta(i,j,k) + o9 = exp(o8) + o10 = detapsi2dv(i,j,k) + o11 = sin(q(i,j,k)) + o12 = sin(phi(i,j,k)) + psix(i,j,k) = o2*o4*(o10*o11*o5*o9 - 5.0000000000000d-1*o11*o3*o + & 5*o9 + o5*o6*o7*o9) + psiy(i,j,k) = o2*o4*(o10*o11*o12*o9 - 5.0000000000000d-1*o11*o12 + & *o3*o9 + o12*o6*o7*o9) + psiz(i,j,k) = o2*o4*(o10*o6*o9 - 5.0000000000000d-1*o3*o6*o9 - o + & 11*o7*o9) diff --git a/src/psi_2nd_deriv.x b/src/psi_2nd_deriv.x new file mode 100644 index 0000000..0cfc82a --- /dev/null +++ b/src/psi_2nd_deriv.x @@ -0,0 +1,51 @@ + o1 = 5.0000000000000d-1*eta(i,j,k) + o2 = exp(o1) + o3 = psi2dv(i,j,k) + o4 = 1/o3 + o5 = cos(phi(i,j,k)) + o6 = o5**2 + o7 = cos(q(i,j,k)) + o8 = o7**2 + o9 = detapsi2dv(i,j,k) + o10 = -2.50000000000000d0*eta(i,j,k) + o11 = exp(o10) + o12 = dqqpsi2dv(i,j,k) + o13 = sin(phi(i,j,k)) + o14 = o13**2 + o15 = detaqpsi2dv(i,j,k) + o16 = sin(q(i,j,k)) + o17 = dqpsi2dv(i,j,k) + o18 = detaetapsi2dv(i,j,k) + o19 = o16**2 + o20 = tan(q(i,j,k)) + o21 = 1/o20 + psixx(i,j,k) = o2*o4*(1.00000000000000d0*o11*o14*o17*o21 - 5.000 + & 0000000000d-1*o11*o14*o3 + o11*o18*o19*o6 + 7.5000000000000d-1*o + & 11*o19*o3*o6 + 2.00000000000000d0*o11*o15*o16*o6*o7 - 3.00000000 + & 000000d0*o11*o16*o17*o6*o7 + o11*o12*o6*o8 - 5.0000000000000d-1* + & o11*o3*o6*o8 + o11*o14*o9 - 2.00000000000000d0*o11*o19*o6*o9 + o + & 11*o6*o8*o9) + psixy(i,j,k) = o2*o4*(o11*o13*o18*o19*o5 - o11*o13*o17*o21*o5 + + & 5.0000000000000d-1*o11*o13*o3*o5 + 7.5000000000000d-1*o11*o13*o1 + & 9*o3*o5 + 2.00000000000000d0*o11*o13*o15*o16*o5*o7 - 3.000000000 + & 00000d0*o11*o13*o16*o17*o5*o7 + o11*o12*o13*o5*o8 - 5.0000000000 + & 000d-1*o11*o13*o3*o5*o8 - o11*o13*o5*o9 - 2.00000000000000d0*o11 + & *o13*o19*o5*o9 + o11*o13*o5*o8*o9) + psixz(i,j,k) = o2*o4*(-(o11*o15*o19*o5) + 1.50000000000000d0*o11 + & *o17*o19*o5 - o11*o12*o16*o5*o7 + o11*o16*o18*o5*o7 + 1.25000000 + & 000000d0*o11*o16*o3*o5*o7 + o11*o15*o5*o8 - 1.50000000000000d0*o + & 11*o17*o5*o8 - 3.00000000000000d0*o11*o16*o5*o7*o9) + psiyy(i,j,k) = o2*o4*(o11*o14*o18*o19 + 7.5000000000000d-1*o11*o + & 14*o19*o3 + 1.00000000000000d0*o11*o17*o21*o6 - 5.0000000000000d + & -1*o11*o3*o6 + 2.00000000000000d0*o11*o14*o15*o16*o7 - 3.0000000 + & 0000000d0*o11*o14*o16*o17*o7 + o11*o12*o14*o8 - 5.0000000000000d + & -1*o11*o14*o3*o8 - 2.00000000000000d0*o11*o14*o19*o9 + o11*o6*o9 + & + o11*o14*o8*o9) + psiyz(i,j,k) = o2*o4*(-(o11*o13*o15*o19) + 1.50000000000000d0*o1 + & 1*o13*o17*o19 - o11*o12*o13*o16*o7 + o11*o13*o16*o18*o7 + 1.2500 + & 0000000000d0*o11*o13*o16*o3*o7 + o11*o13*o15*o8 - 1.500000000000 + & 00d0*o11*o13*o17*o8 - 3.00000000000000d0*o11*o13*o16*o7*o9) + psizz(i,j,k) = o2*o4*(o11*o12*o19 - 5.0000000000000d-1*o11*o19*o + & 3 - 2.00000000000000d0*o11*o15*o16*o7 + 3.00000000000000d0*o11*o + & 16*o17*o7 + o11*o18*o8 + 7.5000000000000d-1*o11*o3*o8 + o11*o19* + & o9 - 2.00000000000000d0*o11*o8*o9) diff --git a/src/shmgp.F77 b/src/shmgp.F77 new file mode 100644 index 0000000..1982591 --- /dev/null +++ b/src/shmgp.F77 @@ -0,0 +1,1455 @@ + +c---------------------------------------------------------------------- + subroutine umgs2( + + ac,aw,as,ae,an,asw,ase,ane,anw,q,f,pu,pd,pc,ru,rd,rc,gam,np2, + + ifd59,ifmg,ncyc,tol,nman,im,jm,id5,id9,idi,m,iskip,rmax, + + ipc,irc,irurd) + implicit real*8(a-h,o-z) +c---------------------------------------------------------------------- +cdir$ noinline +c** SUBROUTINE UMGS2 +c +c** COPYRIGHT: Ecodynamics Research Associates, Inc. +c +c** Date written: June, 1990 +c** Author: Steve Schaffer +c Mathematics Department +c New Mexico Tech +c Socorro, NM 87801 +c 505-835-5811 +c +c** DESCRIPTION: +c umgs2 is a black box symmetric matrix solver. It is written +c in unsymmetric storage mode and can be used to solve mildly +c nonsymmetric problems. The user provides a matrix and right hand +c side vector corresponding to a 5 or 9 point finite difference/ +c finite volume discretization of a symmetric second order PDE. +c umgs2 will construct a sequence of coarse grids and coarse +c grid operators and then solve the matrix equation using a +c y-direction semi-coarsening multigrid algorithm and return +c the solution vector. If a sequence of matrix problems are +c to be solved using the same matrix, computational time can +c be saved by skipping the construction of the coarse grid +c information in subsequent calls to umgs2. +c +c The matrix on the finest grid is stored in the arrays ac,aw,as, +c an,asw,ase,ane and anw. The difference stencil at the point +c (i,j) given by +c +c nw n ne anw(i,j) an(i,j) ane(i,j) +c w c e = aw(i,j) ac(i,j) aw(i,j) +c sw s se asw(i,j) as(i,j) ase(i,j) +c +c If the difference stencil on the fine grid is a 5 point stencil +c then the arrays asw,ase,ane,anw are not used and the +c stencil is given by +c +c n an(i,j) +c w c e = aw(i,j) ac(i,j) ae(i,j) +c s as(i,j) +c +c However, asw,ase,ane,anw still need to be dimensioned (by id9) +c in the calling program as they are used in the coarse grid +c calculations. +c +c** STORAGE +c It is assumed that a set of ficticious points have been defined +c along the entire boundary. These points have nothing to do with +c the solution and are used for programming convenience and +c vectorization purposes. Storage is allocated for the stencil +c elements ac,aw,as,asw,ase, the solution vector, q, and the +c right hand side vector, f, at these ficticious points. The +c stencils at these ficticious points and all stencil connections +c to them are set to zero in the subroutine useta which is called +c by umgs2. The computational grid is depicted by +c +c x x x x x x x x +c +c x * * * * * * x +c +c x * * * * * * x +c . +c . +c . +c x * * * * * * x +c +c x * * * * * * x +c +c x x x x x x x x +c +c where x depicts the ficticious points and * depicts the interior +c points. The total storage requirements for the fine grid problem +c is then 5*im*jm for 5 point stencils and 7*im*jm for 9 point +c stencils. The total storage requirements for the multigrid +c solution is approximately 2 to 3 times that of the storage +c requirements of the fine grid problem. (See DIMENSION PARAMETERS). +c Note: The first im*jm elements of the arrays ac,aw,as,[asw,ase], +c q and f correspond to the finest grid. +c +c** DIMENSION PARAMETERS +c The arrays ac,aw,ae,asw,ase,q,f,pu,pd and pc are dimensioned as one +c dimensional arrays in the calling program. They are dimensioned +c as two dimensional arrays in the working subroutines. The one +c dimensional storage of the arrays, say q, follows: n=(j-1)*jm+i, +c where n is the element location in the one dimensional storage of +c q corresponding to the (i,j)th element of the two dimensional +c storage of q and jm is the number of grid points in the j +c direction (including the two ficticious points). +c +c The dimension parameters are id5, id9, idi and idg. They can be +c determined by running the companion program MSS2DIM.F. +c id5 - Integer variable. +c Dimension of the arrays ac,aw,as,ae,an,q and f in the +c calling program. id5 is the total number of grid points +c on the finest grid and all coarser grids. +c id9 - Integer variable. +c Dimension of the arrays asw,ase,ane,anw in the calling +c program. If ifd59=5 then id9=idi. If ifd59=9 then +c id9=id5. +c idi - Integer variable. +c Dimension of the work arrays pu and pd in the calling +c program. idi is the total number of grid points on all +c of the coarser grids. +c idg - Integer variable. +c Dimension of the work array gam in the calling program. +c It is set to the value im, the number of grid points +c in the i-direction on the finest grid. +c +c** INPUT +c (Note: all variable types are set implicitly) +c ac,aw,as +c ae,an - Real arrays. Dimensioned (id5) in calling program. +c See comments in DESCRIPTION and DIMENSION PARAMETERS. +c asw,ase +c ane,anw - Real arrays. Dimensioned (id9) in calling program. +c See comments in DESCRIPTION and DIMENSION PARAMETERS. +c f - Real array. Dimensioned (id5) in calling program. +c f contains the right hand side vector of the matrix +c equation to be solved by umgs2. +c q - Real array. Dimensioned (id5) in calling program. +c If ifmg=0, q contains the initial guess on the fine +c grid. If ifmg=1, the initial guess on the fine grid +c is determined by the full multigrid process and the +c value of q on input to umgs2 not used. +c ifd59 - Integer variable. +c =5 - means a 5-point finite difference stencil (ac,aw and +c as) is defined on the finest grid by the user. +c =9 - means a 9-point finite difference stencil (ac,aw,as, +c asw, ase) is defined on the finest grid by the user. +c ifmg - Integer variable. +c =0 - The full multigrid algorithm is not used to obtain a +c good initial guess on the fine grid. +c =1 - The full multigrid algorithm is used to obtain a good +c initial guess on the fine grid. +c ncyc - Integer variable. +c The maximum number of multigrid v-cycles to be used. +c If the maximum norm of the residual is not less than tol +c at the end of ncyc cycles, the algorithm is terminated. +c tol - Real variable. +c >0 - The maximum norm of the residual is calculated at the +c end of each multigrid cycle. The algorithm is terminated +c when this maximum becomes less than tol or when the maximum +c number of iterations (see ncyc) is exceeded. It is up to +c the user to provide a meaningfull tolerance criteria for +c the particular problem being solved. +c =0 - Perform ncyc multigrid cycles. Calculate and print +c the maximum norm of the residual after each cycle. +c =-1. - Perform ncyc multigrid cycles. The maximum norm of +c the final residual is calculated and returned in the +c variable rmax in the calling list of umgs2. +c =-2. - Perform ncyc multigrid cycles. The maximum norm of +c the residual is not calculated. +c iskip - Integer variable. +c =0 - The coarse grid information, coarse grid operators +c and interpolation coefficients are calculated by +c umgs2. This information is stored in the arrays +c ac, aw, as, asw, ase, pu, pd, np2 and the variable m +c and returned to the calling program. +c =1 - The calculation of the coarse grid information, coarse +c grid operators and interpolation coefficients is +c skipped. This option would be used when umgs2 has +c been called with iskip=0 and is being called again +c to solve a system of equations with the same matrix. +c This would be the case in, say, parabolic problems +c with time independent coefficients. +c =-1 -The set up of pointers (ugrdfn) is skipped. Coarse grid +c operators and interpolation coefficients are calculated +c and the given matrix equation is solved. This option +c would be used when umgs2 has been called with iskip=0 +c and is being called again to solve a system of +c equations with a different matrix of the same +c dimensions. This would be the case for, say, +c parabolic problems with time dependent coefficients. +c =-2 -The set up of pointers (ugrdfn) is skipped. Coarse grid +c operators and interpolation coefficients are calculated +c and returned to the calling program. No matrix solve. +c ipc - Integer variable. +c =0 or 1. +c ipc is a multigrid parameter which determines the type of +c interpolation to be used. Usually ipc=1 is best. However, if +c the boundary contition equations have been absorbed into the +c interior equations then ipc=0 can be used which results in a +c slightly more efficient algorithm. +c nman - Integer variable. +c =0 usually. +c =1 signals that the fine grid equations are singular for +c the case when homogeneous Neumann boundary conditions are +c applied along the entire boundary. In this case, the +c difference equations are singular and the condition that +c the integral of q over the domain be zero is added to the +c set of difference equations. This condition is satisfied +c by adding the appropriate constant vector to q on the fine +c grid. It is assumed, in this case, that a well-defined +c problem has been given to mgss2, i.e. the integral of f +c over the domain is zero. +c im - Integer variable. +c The number of grid points in the x-direction (including two +c ficticious points) +c jm - Integer variable. +c The number of grid points in the y-direction (including two +c ficticious points) +c lout - Integer variable. +c = unit number of output file into which the maximum norm +c of the residual after each multigrid v-cycle is printed. +c Use: common /iout/ lout +c +c** INPUT/OUTPUT +c q - Real array. Dimensioned (id5) +c On input, if ifmg=0, q contains the initial guess on the +c finest grid for umgs2. On output, q contains the final +c solution on the finest grid. +c ac-anw - Real arrays. See DIMENSION. +c On input, ac, aw, as, [asw and ase] contain the stencil +c coefficients for the difference operator on the finest +c grid. When the iskip=1 option is used, these arrays +c also are assumed to contain the coarse grid difference +c stencil coeficients. +c On output, when the iskip=0 option is used, the coarse +c grid stencil coeficients are returned in ac - ase. +c +c ru,rd,rc - Real work arrays. Dimensioned (idi) +c +c pu,pd,pc - Real work arrays. Dimensioned (idi). +c On input, when the iskip=1 option is used, these arrays +c are assumed to contain the interpolation coefficients +c used in the semi-coarsening multigrid algorithm. +c On output, when the iskip=0 option is used, the +c interpolation coeficients are returned in pu and pd. +c np2 - Integer work array. Dimensioned np2(20,8). +c On input, when the iskip=1,-1 or -2 option is used, np2 is +c assumed to contain the grid information for umgs2. +c On output, when the iskip=0 option is used, the grid +c information for umgs2 is returned in np2. +c** OUTPUT +c rmax - If tol.ge.-1., the final residual norm is returned in rmax. +c +c** SUBROUTINES CALLED BY UMGS2 +c +c - ugrdfn, ukey, uintad, urelax, urscal, ursrhs, useta +c +c** END OF DESCRIPTION OF UMGS2 +c ..................................................................... + real*8 ac(id5),aw(id5),as(id5),ae(id5),an(id5),asw(id9), + + ase(id9),ane(id9),anw(id9),q(id5),f(id5) + real*8 pu(idi),pd(idi),pc(idi),gam(im) + integer np2(20,8) + real*8 ru(idi),rd(idi),rc(idi) + real*8 resid(0:40),confac(0:40) + common /io/ linp,lout +c +c-time tsu0=second() + if(iskip.eq.0) then + call ugrdfn(m,ifd59,is5,is9,isi,np2,im,jm) + iquit=0 + if(m.gt.20) then + iquit=1 + write(lout,*) ' m=',m,' > 20 - np2 is dimensioned np2(m=20,8)' + endif + if(is5.gt.id5) then + iquit=1 + write(lout,*) ' id5=',id5,' too small. Should be set to',is5 + endif + if(is9.gt.id9) then + iquit=1 + write(lout,*) ' id9=',id9,' too small. Should be set to',is9 + endif + if(isi.gt.idi) then + iquit=1 + write(lout,*) ' idi=',idi,' too small. Should be set to',isi + endif + if(is5.lt.2*im*jm) then + iquit=1 + write(lout,*) ' id5.lt.2*im*jm can cause problems in useta' + write(lout,*) ' this can be remedied by setting id5 larger' + endif + if(iquit.eq.1) return + endif + if(iskip.le.0) then +c ---------- interpolation and coarse grid operators ----------- + do 5 k=m-1,1,-1 +cdir$ inline + call ukey(k+1,np2,n5,n9,ni,jm,i9,j9,ifd,jr) + call ukey(k,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + if(k.eq.m-1) n5cqf=n5c + 5 call useta( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),ac(n5c),aw(n5c),as(n5c),ae(n5c),an(n5c),asw(n9c), + + ase(n9c),ane(n9c),anw(n9c),pu(nic),pd(nic),pc(nic),ru(nic), + + rd(nic),rc(nic),q(n5cqf),f(n5cqf),gam, + + im,jm,jmc,ifd,i9,j9,nman,k+1,m,jr,ipc,irc,irurd) + endif + if(iskip.eq.-2) return +c + if(ifmg.ge.1) then + do 6 k=m-1,1,-1 +cdir$ inline + call ukey(k+1,np2,n5,n9,ni,jm,i9,j9,ifd,jr) + call ukey(k,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + 6 call ursrhs(f(n5),f(n5c),pu(nic),pd(nic),pc(nic),ru(nic), + + rd(nic),rc(nic),im,jm,jmc,m,k+1,jr,irc) + endif +c-time tsu1=second() +c-time write(lout,*) ' time for setup =',tsu1-tsu0 + l=1 + if(ifmg.eq.0) l=m + k=l + mcyc=0 + rmaxo=1. +c ---------- begin multigrid cycling ---------------------------- +c + if(l.eq.1) go to 20 +cdir$ inline + 10 call ukey(k,np2,n5,n9,ni,jm,i9,j9,ifd,jr) +cdir$ noinline + call urelax( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),f(n5),q(n5),gam, + + im,jm,i9,j9,ifd,nman,k,m,jr,0,0) +cdir$ inline + call ukey(k-1,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + call urscal( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),q(n5),f(n5),f(n5c),q(n5c),rc(nic), + + im,jm,jmc,ifd,i9,j9,k,m,jr,tol,rmax,ipc,irc) + if(k.eq.m.and.rmax.lt.tol) go to 60 + if(k.eq.m.and.tol.ge.-.5) then + if(rmaxo.ne.0.) rate=rmax/rmaxo + rmaxo=rmax + if(mcyc.eq.0) rmax0=rmax + resid(mcyc)=rmax + confac(mcyc)=rate + endif + if(tol.eq.-.5) write(lout,*) ' down ',k,rmax + k=k-1 + if(k.gt.1) go to 10 +c --------- solve coarsest grid ---------------------------------- +c +cdir$ inline + 20 call ukey(1,np2,n5,n9,ni,jm,i9,j9,ifd,jr) +cdir$ noinline + call urelax( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),f(n5),q(n5),gam, + + im,jm,i9,j9,ifd,nman,k,m,jr,0,0) + if(l.eq.1) go to 40 +c ---------- interpolate correction to next finer grid ----------- +c + 30 k=k+1 +cdir$ inline + call ukey(k,np2,n5,n9,ni,jm,i9,j9,ifd,jr) + call ukey(k-1,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + call uintad( + + q(n5),q(n5c),pu(nic),pd(nic),im,jm,jmc,1,jr,ipc) + call urelax( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),f(n5),q(n5),gam, + + im,jm,i9,j9,ifd,nman,k,m,jr,0,0) + if(tol.eq.-.5) then + call urscal( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),q(n5),f(n5),f(n5c),q(n5c),rc(nic), + + im,jm,jmc,ifd,i9,j9,k,m,jr,tol,rmax,ipc,irc) + write(lout,*) ' up ',k,rmax + endif + if(k.lt.l) go to 30 + if(l.eq.m) go to 50 +c ---------- interpolate solution to new finest grid l+1 in fmg ---- +c + 40 l=l+1 + k=l +cdir$ inline + call ukey(l,np2,n5,n9,ni,jm,i9,j9,ifd,jr) + call ukey(l-1,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + call uintad( + + q(n5),q(n5c),pu(nic),pd(nic),im,jm,jmc,0,jr,0) + go to 10 +c + 50 if(nman.eq.1) call uneuman(q(n5),im,jm) + mcyc=mcyc+1 +c ---------- Cycle ncyc times on grid m ---------------------------- + if(mcyc.lt.ncyc) go to 10 +c-time tmg1=second() +c-time write(lout,*) ' time in ',ncyc,' cycles =',tmg1-tsu1 +c +c ---------- print out final residual and work units --------------- + if(tol.ge.-1.) then +cdir$ inline + call ukey(m,np2,n5,n9,ni,jm,i9,j9,ifd,jr) + call ukey(m-1,np2,n5c,n9c,nic,jmc,i9c,j9c,ifdc,jrc) +cdir$ noinline + call urscal( + + ac(n5),aw(n5),as(n5),ae(n5),an(n5),asw(n9),ase(n9), + + ane(n9),anw(n9),q(n5),f(n5),f(n5c),q(n5c),rc(nic), + + im,jm,jmc,ifd,i9,j9,k,m,jr,1.,rmax,ipc,irc) + resid(mcyc)=rmax + confac(mcyc)=rmax/rmaxo + nb=0 + ne=min0(6,mcyc) + 2029 write(lout,2033) (mc,mc=nb,ne) + write(lout,2032) (resid(mc),mc=nb,ne) + write(lout,2031) (confac(mc),mc=nb,ne) + nb=ne+1 + ne=ne+min0(6,mcyc-ne) + if(nb.le.ne) go to 2029 + fconfac=(rmax/rmax0)**(1./float(mcyc)) + write(lout,2034) fconfac + 2034 format(30x,6(1h*)/,' average convergence factor =',f7.3,/, + + 30x,6(1h*)) + 2033 format(7(4x,i2,4x)) + 2031 format(7(1x,f9.3)) + 2032 format(7(1x,e9.3)) + endif + return + 60 write(lout,1003) mcyc,resid(mcyc),tol + return + 1003 format(' cyc=',i2,' max(res)=',1pe8.2/ + + ' tolerance condition tol=',1pe8.2,' satisfied') + end +c---------------------------------------------------------------------- + subroutine ugrdfn(m,ifd59,is5,is9,isi,np2,imx,jmx) + implicit real*8(a-h,o-z) +c---------------------------------------------------------------------- +cdir$ noinline +c Given imx, jmx and ifd59 (See comments in mgss2), ugrdfn calculates +c the number of grids that will be needed. Pointers into the arrays +c ac, aw, as, asw, ase, q, f, pu, pd, pc, ru, rd and rc and the size +c of each grid is calculated and stored in the array np2. The +c subroutine ukey is called to retrieve the grid information. +c ..................................................................... + parameter(n5=1,n9=2,ni=3,jm=4,i9=5,j9=6,ifd=7,jred=8) + integer np2(20,8) + common /cs/ icorstr,iprint + iq5=1 + iq9=1 + iqi=1 + m=1 + np2(m,1)=jmx + np2(m,2)=3 + 10 if(np2(m,1).le.3) go to 20 + m=m+1 + np2(m,1)=np2(m-1,1)/2+1 + if(np2(m-1,2).eq.2.and.mod(np2(m-1,1),2).eq.1) + + np2(m,1)=np2(m,1)+1 + np2(m,2)=2 + go to 10 + 20 do 30 k=1,m + np2(m-k+1,jm)=np2(k,1) + 30 np2(m-k+1,jred)=np2(k,2) + do 40 k=m,1,-1 + ktot=imx*np2(k,jm) + np2(k,n5)=iq5 + iq5=iq5+ktot + np2(k,n9)=iq9 + if(k.lt.m.or.ifd59.eq.9) iq9=iq9+ktot + np2(k,ni)=iqi + 40 if(k.lt.m) iqi=iqi+ktot + do 50 k=1,m + np2(k,i9)=imx + np2(k,j9)=np2(k,jm) + 50 np2(k,ifd)=9 + if(ifd59.eq.5) then + np2(m,i9)=1 + np2(m,j9)=1 + np2(m,ifd)=5 + endif + is5=iq5-1 + is9=iq9-1 + isi=iqi-1 + return + end +c---------------------------------------------------------------------- + subroutine ukey(k,np2,nn5,nn9,nni,jjm,ii9,jj9,iifd,jjred) + implicit real*8(a-h,o-z) +c---------------------------------------------------------------------- +c Returns the grid pointers and dimension variables for grid k. The +c information is stored in the array np2. +c...................................................................... + parameter(n5=1,n9=2,ni=3,jm=4,i9=5,j9=6,ifd=7,jred=8) + integer np2(20,8) + nn5=np2(k,n5) + nn9=np2(k,n9) + nni=np2(k,ni) + jjm=np2(k,jm) + ii9=np2(k,i9) + jj9=np2(k,j9) + iifd=np2(k,ifd) + jjred=np2(k,jred) + return + end +c---------------------------------------------------------------------- + subroutine uintad(q,qc,pu,pd,im,jm,jmc,iadd,jred,ipc) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c iadd=1: +c Interpolates and adds the coarse grid (kf-1) correction, qc, to the +c fine grid (kf) approximation, q, at the black y-lines. +c iadd=0: +c In the full multigrid algorithm, the solution to the coarse grid +c (kf-1) difference equation is interpolated to the fine grid (kf) +c to be used as the initial guess vector for kf=2,3,...,m. +c Interpolation is at black y-lines only. +c ..................................................................... + real*8 q(im,jm),qc(im,jmc),pu(im,jmc),pd(im,jmc) + im1=im-1 + jm1=jm-1 + jblack=5-jred +c add correction to next finer grid + 1000 if(iadd.eq.1) then + jc=3-jred + do 10 j=jblack,jm1,2 + jc=jc+1 + do 10 i=2,im1 + 10 q(i,j)=q(i,j)+pd(i,jc)*qc(i,jc)+pu(i,jc)*qc(i,jc+1) +c +c interpolate solution to next finer grid in fmg + 1001 else + jc=3-jred + do 40 j=jblack,jm1,2 + jc=jc+1 + do 40 i=2,im1 + 40 q(i,j)=pd(i,jc)*qc(i,jc)+pu(i,jc)*qc(i,jc+1) + 1002 endif + return + end +c---------------------------------------------------------------------- + subroutine uneuman(q,im,jm) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c For problems with homogeneous Neumann boundary contitions, the +c condition that the integral of q over the domain be zero is added +c to the set of difference equations in order to obtain a unique +c solution. +c...................................................................... + real*8 q(im,jm) + im1=im-1 + jm1=jm-1 + con=0. + do 10 j=2,jm1 + do 10 i=2,im1 + 10 con=con+q(i,j) + con=con/((im-2)*(jm-2)) + do 20 j=2,jm1 + do 20 i=2,im1 + 20 q(i,j)=q(i,j)-con + return + end +c---------------------------------------------------------------------- + subroutine urelax(ac,aw,as,ae,an,asw,ase,ane,anw,f,q,gam, + + im,jm,i9,j9,ifd,nman,k,m,jred,ipc,iprcud) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c Performs red/black x-line relaxation. The Thomas algorithm is used +c to solve the tridiagonal matrices. +c** INPUT - +c ac-anw= finite difference operator coeficients +c q= initial approximation +c f= right hand side vector +c im,jm= the number of grid points in the x,y-directions +c i9,j9= the i,j-dimensions of the arrays asw,ase +c ifd= 5 or 9 - the size of the stencil +c nman- =0 usually. +c =1 signals that the fine grid equations are singular +c for the case when Neumann boundary conditions are +c applied along the entire boundary. In this case, the +c equations on the coarsest grid (consisting of a single +c line of unknowns) is a singular tridiagonal system +c and the Thomas algorithm is modified on this grid to +c obtain a solution with an arbitrary constant vector +c component. This constant vector is removed on the +c finest grid by the call to subroutine uneuman. +c** OUTPUT - +c q= final approximation after a red/black relaxation sweep +c ..................................................................... + real*8 ac(im,jm),aw(im,jm),as(im,jm),ae(im,jm),an(im,jm), + + asw(i9,j9),ase(i9,j9),ane(i9,j9),anw(i9,j9) + real*8 f(im,jm),q(im,jm),gam(im) + jm1=jm-1 + im1=im-1 + im2=im-2 + jblack=5-jred +c usual red/black relaxatio + nrel=2 + jrb=jred +c ipc ..brbr relaxation swee + 1000 if(iprcud.eq.1) then + nrel=ipc + if(mod(ipc,2).eq.0) jrb=jblack +c 1 black relax for calc g pu,pd,ru, + 1001 elseif(iprcud.eq.2) then + nrel=1 + jrb=jblack + 1002 endif +c +c + do 109 nrr=1,nrel + 5000 if(jrb.eq.jblack) then +c black rela + 6000 if(jblack.le.jm1) then + 1400 if(iprcud.ne.2) then +c + do 110 j=jblack,jm1,2 + do 110 i=2,im1 + 110 q(i,j)=f(i,j)-as(i,j)*q(i,j-1)-an(i,j)*q(i,j+1) + 7000 if(ifd.eq.9) then + do 120 j=jblack,jm1,2 + do 120 i=2,im1 + 120 q(i,j)=q(i,j)-asw(i,j)*q(i-1,j-1)-ase(i,j)*q(i+1,j-1)- + + anw(i,j)*q(i-1,j+1)-ane(i,j)*q(i+1,j+1) + 7001 endif + 1401 endif +c black tridiagonal solve +c** +c** Moved calculation of loop 129 from loop 130 for vectorization +c** on vector machines (ie. Cray) +c** By: John Towns 2/6/92 +c** + do 129 j=jblack,jm1,2 + 129 q(2,j)=q(2,j)/ac(2,j) + +c** +c** Changed bet=(quantity) to bet=1./(quantity) to trade two divisions +c** for one division and two multiplies (more efficient on all +c** machines) +c** By: John Towns 2/6/92 +c** + +c** +c** Cray compiler directives to parallelize tridiagonal solve. +c** By: John Towns 4/13/92 +c** + +cmic$ parallel private(bet,gam,i) +cmic$1shared(ac,ae,aw,q,jblack,jm1,im1,im2) +cmic$ do parallel + do 130 j=jblack,jm1,2 + bet=1./ac(2,j) + do 140 i=3,im1 + gam(i)=ae(i-1,j)*bet + bet=1./(ac(i,j)-aw(i,j)*gam(i)) + 140 q(i,j)=(q(i,j)-aw(i,j)*q(i-1,j))*bet + do 150 i=im2,2,-1 + 150 q(i,j)=q(i,j)-gam(i+1)*q(i+1,j) + 130 continue +cmic$ end do +cmic$ end parallel + 6001 endif +c red relax + 5001 else +c + do 210 j=jred,jm1,2 + do 210 i=2,im1 + 210 q(i,j)=f(i,j)-as(i,j)*q(i,j-1)-an(i,j)*q(i,j+1) + 1100 if(ifd.eq.9) then + do 220 j=jred,jm1,2 + do 220 i=2,im1 + 220 q(i,j)=q(i,j)-asw(i,j)*q(i-1,j-1)-ase(i,j)*q(i+1,j-1)- + + anw(i,j)*q(i-1,j+1)-ane(i,j)*q(i+1,j+1) + 1101 endif +c tridiagonal solve +c nman=1 ==> avoid singularity on coarsest grid + imm=im1 + if(nman.eq.1.and.k.eq.1) then + imm=im-2 + q(im1,2)=0. + gam(im1)=0. + endif +c +c** +c** Moved calculation of loop 229 from loop 230 for vectorization +c** on vector machines (ie. Cray) +c** By: John Towns 2/6/92 +c** + do 229 j=jred,jm1,2 + 229 q(2,j)=q(2,j)/ac(2,j) + +c** +c** Changed bet=(quantity) to bet=1./(quantity) to trade two divisions +c** for one division and two multiplies (more efficient on all +c** machines) +c** By: John Towns 2/6/92 +c** + +c** +c** Cray compiler directives to parallelize tridiagonal solve. +c** By: John Towns 4/13/92 +c** + +cmic$ parallel private(bet,gam,i) +cmic$1shared(ac,ae,aw,q,jred,jm1,im2,imm) +cmic$ do parallel + do 230 j=jred,jm1,2 + bet=1./ac(2,j) + do 240 i=3,imm + gam(i)=ae(i-1,j)*bet + bet=1./(ac(i,j)-aw(i,j)*gam(i)) + 240 q(i,j)=(q(i,j)-aw(i,j)*q(i-1,j))*bet + do 250 i=im2,2,-1 + 250 q(i,j)=q(i,j)-gam(i+1)*q(i+1,j) + 230 continue +cmic$ end do +cmic$ end parallel + 5002 endif + jrb=5-jrb + 109 continue + return + end +c---------------------------------------------------------------------- + subroutine urscal( + + ac,aw,as,ae,an,asw,ase,ane,anw,q,f,fc,qc,rc, + + im,jm,jmc,ifd,i9,j9,kf,m,jred,tol,rmax,ipc,irc) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c Defines the grid kf-1 right hand side, fc, as the restriction of the +c grid kf residual. The restriction operator is the transpose of the +c interpolation operator. Note: The grid kf residual is zero at the +c black lines (j-direction) as a result of red/black relaxation. +c Thus, the restriction is simple injection. The initial guess, qc, +c for the coarse grid correction equation is set to zero. The +c maximum norm of the residual is calculated and returned in rmax. +c...................................................................... + real*8 ac(im,jm),aw(im,jm),as(im,jm),ae(im,jm),an(im,jm), + + asw(i9,j9),ase(i9,j9),ane(i9,j9),anw(i9,j9) + real*8 f(im,jm),q(im,jm),fc(im,jmc),qc(im,jmc) + real*8 rc(im,jmc) + rmax=0. + im1=im-1 + jm1=jm-1 + jmc1=jmc-1 + jc=1 + do 10 j=jred,jm1,2 + jc=jc+1 + do 10 i=2,im1 + 10 fc(i,jc)=f(i,j)-as(i,j)*q(i,j-1)-an(i,j)*q(i,j+1)- + + aw(i,j)*q(i-1,j)-ae(i,j)*q(i+1,j)-ac(i,j)*q(i,j) + 1000 if(ifd.eq.9) then + jc=1 + do 20 j=jred,jm1,2 + jc=jc+1 + do 20 i=2,im1 + 20 fc(i,jc)=fc(i,jc)-asw(i,j)*q(i-1,j-1)-ane(i,j)*q(i+1,j+1)- + + ase(i,j)*q(i+1,j-1)-anw(i,j)*q(i-1,j+1) + 1001 endif +c zero out qc as initial guess + do 25 jc=1,jmc + do 25 i=1,im + 25 qc(i,jc)=0. +c if kf=m calculate residual norm + 2000 if((kf.eq.m.and.tol.ge.0.).or.tol.eq.-.5) then + do 30 jc=2,jmc1 + do 30 i=2,im1 + resmax=abs(fc(i,jc)) + 30 if(resmax.gt.rmax) rmax=resmax + 2001 endif +c weight rhs if irc.ge.1 + 3000 if(irc.eq.1.and.ipc.ge.1) then + do 40 jc=2,jmc1 + do 40 i=2,im1 + 40 fc(i,jc)=rc(i,jc)*fc(i,jc) + 3001 endif +c + return + end +c---------------------------------------------------------------------- + subroutine ursrhs(f,fc,ru,rd,rc,im,jm,jmc,m,kf,jred,irc) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +c Restricts the right hand side vector on grid kf onto grid kf-1 when +c the full multigrid (ifmg>0) option is used. The restriction operator +c is NOT necessarily the transpose of the interpolation operator. +c...................................................................... + real*8 f(im,jm),fc(im,jmc),ru(im,jmc),rd(im,jmc),rc(im,jmc) + jm1=jm-1 + im1=im-1 + jc=1 + 1000 if(irc.eq.0) then + do 10 j=jred,jm1,2 + jc=jc+1 + do 10 i=2,im1 + 10 fc(i,jc)=ru(i,jc-1)*f(i,j-1)+rd(i,jc)*f(i,j+1)+f(i,j) + 1001 else + do 20 j=jred,jm1,2 + jc=jc+1 + do 20 i=2,im1 + 20 fc(i,jc)=ru(i,jc-1)*f(i,j-1)+rd(i,jc)*f(i,j+1)+ + + rc(i,jc)*f(i,j) + 1002 endif + return + end +c---------------------------------------------------------------------- + subroutine useta( + + ac,aw,as,ae,an,asw,ase,ane,anw,acc,awc,asc,aec, + + anc,aswc,asec,anec,anwc,pu,pd,pc,ru,rd,rc,qw,fw,gam, + + im,jm,jmc,ifd,i9,j9,nman,kf,m,jred,ipc,irc,irurd) + implicit real*8 (a-h,o-z) +c---------------------------------------------------------------------- +cdir$ noinline +c Calculates the interpolation coefficients from grid kf-1 to +c grid kf and the coarse grid operator on grid kf-1. +c** INPUT - +c ac - anw = fine grid (kf) array stencil coeficients +c m= total number of grids +c kf= grid number of the fine grid +c ifd= the size of the fine grid stencil (= 5 or 9) +c i9,j9= the i,j-dimensions of the arrays asw,ase +c qw,fw= coarse grid portions of q and f used for work arrays here +c (See comments in MGSS2 for details) +c** OUTPUT - +c acc - anwc = coarse grid (kf-1) array stencil coeficients +c pu,pd= arrays of interpolation coefficients from grid kf-1 +c to grid kf +c ..................................................................... + real*8 ac(im,jm),aw(im,jm),as(im,jm),ae(im,jm),an(im,jm), + + asw(i9,j9),ase(i9,j9),ane(i9,j9),anw(i9,j9), + + ru(im,jmc),rd(im,jmc),rc(im,jmc), + + pu(im,jmc),pd(im,jmc),pc(im,jmc),gam(im) + real*8 acc(im,jmc),awc(im,jmc),asc(im,jmc),aec(im,jmc), + + anc(im,jmc),aswc(im,jmc),asec(im,jmc),anec(im,jmc),anwc(im,jmc) + real*8 qw(im,jm),fw(im,jm) + common /io/ linp,lout + common /prsol/ iprsol +c + pcscale=.001 +c + im1=im-1 + jm1=jm-1 + jmc1=jmc-1 + jblack=5-jred +c zeroing out connections to fictitious points + do 1 j=1,jm + do 2 i=1,im,im1 + ac(i,j)=0. + aw(i,j)=0. + as(i,j)=0. + ae(i,j)=0. + 2 an(i,j)=0. + aw(2,j)=0. + 1 ae(im1,j)=0. + do 3 i=1,im + do 4 j=1,jm,jm1 + ac(i,j)=0. + aw(i,j)=0. + as(i,j)=0. + ae(i,j)=0. + 4 an(i,j)=0. + as(i,2)=0. + 3 an(i,jm1)=0. + 1000 if(ifd.eq.9) then + do 5 j=1,jm + do 6 i=1,im,im1 + asw(i,j)=0. + ase(i,j)=0. + ane(i,j)=0. + 6 anw(i,j)=0. + asw(2,j)=0. + anw(2,j)=0. + ase(im1,j)=0. + 5 ane(im1,j)=0. + do 7 i=1,im + do 8 j=1,jm,jm1 + asw(i,j)=0. + ase(i,j)=0. + ane(i,j)=0. + 8 anw(i,j)=0. + ase(i,2)=0. + asw(i,2)=0. + ane(i,jm1)=0. + 7 anw(i,jm1)=0. + 1001 endif +c + do 9 jc=1,jmc + do 9 i=1,im + pc(i,jc)=0. + pu(i,jc)=0. + pd(i,jc)=0. + rc(i,jc)=0. + ru(i,jc)=0. + 9 rd(i,jc)=0. +c +c calculation of interpolation coeficients +c + +c define pc + 2000 if(ipc.ge.1) then + do 20 j=2,jm1 + do 20 i=2,im1 + fw(i,j)=0. + 20 qw(i,j)=1. +c + call urelax(ac,aw,as,ae,an,asw,ase,ane,anw,fw,qw,gam,im,jm, + + i9,j9,ifd,nman,kf,m,jred,ipc,1) +c scale pc + pcmax=0. + jc=1 + do 40 j=jred,jm1,2 + jc=jc+1 + do 40 i=2,im1 + pc(i,jc)=qw(i,j) + 40 pcmax=max(pcmax,abs(qw(i,j))) + do 50 jc=2,jmc1 + do 50 i=2,im1 + if(pc(i,jc).eq.0.) pc(i,jc)=pcscale + 50 pc(i,jc)=pc(i,jc)/pcmax +c + 2001 else + do 55 jc=2,jmc1 + do 55 i=2,im1 + 55 pc(i,jc)=1. + 2002 endif +c +c define pu + jc=3-jred + do 60 j=jblack,jm1,2 + jc=jc+1 + 4000 if(ipc.eq.0) then + do 70 i=2,im1 + 70 qw(i,j)=-an(i,j) + 5000 if(ifd.eq.9) then + do 80 i=2,im1 + 80 qw(i,j)=qw(i,j)-ane(i,j)-anw(i,j) + 5001 endif + 4001 else + do 90 i=2,im1 + 90 qw(i,j)=-an(i,j)*pc(i,jc+1) + 6000 if(ifd.eq.9) then + do 100 i=2,im1 + 100 qw(i,j)=qw(i,j)-ane(i,j)*pc(i+1,jc+1)-anw(i,j)*pc(i-1,jc+1) + 6001 endif + 4002 endif + 60 continue +c solve for pu + call urelax(ac,aw,as,ae,an,asw,ase,ane,anw,fw,qw,gam,im,jm, + + i9,j9,ifd,nman,kf,m,jred,ipc,2) +c + + jc=3-jred + do 102 j=jblack,jm1,2 + jc=jc+1 + 3020 if(j.lt.jm1) then + do 103 i=2,im1 + 103 pu(i,jc)=qw(i,j) + 3021 endif + 102 continue +c +c define pd + jc=3-jred + do 106 j=jblack,jm1,2 + jc=jc+1 + 8000 if(ipc.eq.0) then + do 130 i=2,im1 + 130 qw(i,j)=-as(i,j) + 9000 if(ifd.eq.9) then + do 140 i=2,im1 + 140 qw(i,j)=qw(i,j)-ase(i,j)-asw(i,j) + 9001 endif +c + 8001 else +c + do 150 i=2,im1 + 150 qw(i,j)=-as(i,j)*pc(i,jc) + 1100 if(ifd.eq.9) then + do 160 i=2,im1 + 160 qw(i,j)=qw(i,j)-ase(i,j)*pc(i+1,jc)-asw(i,j)*pc(i-1,jc) + 1101 endif + 8002 endif + 106 continue +c solve for pd + call urelax(ac,aw,as,ae,an,asw,ase,ane,anw,fw,qw,gam,im,jm, + + i9,j9,ifd,nman,kf,m,jred,ipc,2) +c + jc=3-jred + do 105 j=jblack,jm1,2 + jc=jc+1 + 7010 if(j.gt.2) then + do 104 i=2,im1 + 104 pd(i,jc)=qw(i,j) + 7011 endif + 105 continue +c +c define restriction operator +c +c define rc + 1200 if(irc.eq.1) then + do 500 jc=2,jmc1 + do 500 i=2,im1 + 500 rc(i,jc)=pc(i,jc) + else + do 502 jc=2,jmc1 + do 502 i=2,im1 + 502 rc(i,jc)=1. + 1201 endif +c +c compute qw = -Cb(inv) * eb* + 1300 if(irurd.ge.1) then + jc=3-jred + 3300 if(irurd.eq.1) then + do 560 j=jblack,jm1,2 + jc=jc+1 + do 560 i=2,im1 + 560 qw(i,j)=1. + 3301 elseif(irurd.eq.2) then + do 561 j=jblack,jm1,2 + jc=jc+1 + do 561 i=2,im1 + 561 qw(i,j)=(pd(i,jc)*pc(i,jc)+pu(i,jc)*pc(i,jc+1)) + 3302 endif +c + call urelax(ac,aw,as,ae,an,asw,ase,ane,anw,fw,qw,gam,im,jm, + + i9,j9,ifd,nman,kf,m,jred,ipc,2) +c + jc=3-jred + do 566 j=jblack,jm1,2 + jc=jc+1 +c compute ru = -b(j+1) * qw + 1400 if(j.lt.jm1) then + do 570 i=2,im1 + 570 ru(i,jc)=-as(i,j+1)*qw(i,j) + 1500 if(ifd.eq.9) then + do 580 i=2,im1 + 580 ru(i,jc)=ru(i,jc)-ase(i,j+1)*qw(i+1,j)-asw(i,j+1)*qw(i-1,j) + 1501 endif + 1401 endif +c compute rd = -a(j-1) * c(j)(inv) * qw + 1600 if(j.gt.2) then + do 650 i=2,im1 + 650 rd(i,jc)=-an(i,j-1)*qw(i,j) + 1700 if(ifd.eq.9) then + do 660 i=2,im1 + 660 rd(i,jc)=rd(i,jc)-ane(i,j-1)*qw(i+1,j)-anw(i,j-1)*qw(i-1,j) + 1701 endif + 1601 endif + 566 continue +c + 1301 else +c else set ru=pu and rd=pd + jc=3-jred + do 670 j=jblack,jm1,2 + jc=jc+1 + do 670 i=2,im1 + ru(i,jc)=pu(i,jc) + 670 rd(i,jc)=pd(i,jc) + 1303 endif +c +c calculating the coarse grid operator +c + 1800 if(ipc+irc+irurd.eq.0) then + j=jred-2 + do 200 jc=2,jmc1 + j=j+2 + do 200 i=2,im1 + acc(i,jc)=ac(i,j)+an(i,j-1)*pu(i,jc-1)+as(i,j+1)*pd(i,jc)+ + + pu(i,jc-1)*(as(i,j)+ac(i,j-1)*pu(i,jc-1))+ + + pd(i,jc)*(an(i,j)+ac(i,j+1)*pd(i,jc)) + awc(i,jc)=aw(i,j)+pd(i-1,jc)*aw(i,j+1)*pd(i,jc)+pu(i-1,jc-1)* + + aw(i,j-1)*pu(i,jc-1) + asc(i,jc)=as(i,j)*pd(i,jc-1)+pu(i,jc-1)*(as(i,j-1)+ + + ac(i,j-1)*pd(i,jc-1)) + aec(i,jc)=ae(i,j)+pd(i+1,jc)*ae(i,j+1)*pd(i,jc)+pu(i+1,jc-1)* + + ae(i,j-1)*pu(i,jc-1) + anc(i,jc)=an(i,j)*pu(i,jc)+pd(i,jc)*(an(i,j+1)+ + + ac(i,j+1)*pu(i,jc)) + aswc(i,jc)=pd(i-1,jc-1)*aw(i,j-1)*pu(i,jc-1) + asec(i,jc)=pd(i+1,jc-1)*ae(i,j-1)*pu(i,jc-1) + anec(i,jc)=pu(i+1,jc)*ae(i,j+1)*pd(i,jc) + 200 anwc(i,jc)=pu(i-1,jc)*aw(i,j+1)*pd(i,jc) + 1900 if(ifd.eq.9) then + j=jred-2 + do 210 jc=2,jmc1 + j=j+2 + do 210 i=2,im1 + awc(i,jc)=awc(i,jc)+asw(i,j+1)*pd(i,jc)+anw(i,j-1)*pu(i,jc-1)+ + + pd(i-1,jc)*anw(i,j)+pu(i-1,jc-1)*asw(i,j) + aec(i,jc)=aec(i,jc)+ase(i,j+1)*pd(i,jc)+ane(i,j-1)*pu(i,jc-1)+ + + pd(i+1,jc)*ane(i,j)+pu(i+1,jc-1)*ase(i,j) + aswc(i,jc)=aswc(i,jc)+asw(i,j-1)*pu(i,jc-1)+pd(i-1,jc-1)*asw(i,j) + asec(i,jc)=asec(i,jc)+ase(i,j-1)*pu(i,jc-1)+pd(i+1,jc-1)*ase(i,j) + anec(i,jc)=anec(i,jc)+ane(i,j+1)*pd(i,jc)+pu(i+1,jc)*ane(i,j) + 210 anwc(i,jc)=anwc(i,jc)+anw(i,j+1)*pd(i,jc)+pu(i-1,jc)*anw(i,j) + 1901 endif +c + 1801 else +c + j=jred-2 + do 300 jc=2,jmc1 + j=j+2 + do 300 i=2,im1 + acc(i,jc)=rc(i,jc)*(ac(i,j)*pc(i,jc)+ + + as(i,j)*pu(i,jc-1)+ + + an(i,j)*pd(i,jc))+ + + ru(i,jc-1)*(ac(i,j-1)*pu(i,jc-1)+ + + an(i,j-1)*pc(i,jc))+ + + rd(i,jc)*(ac(i,j+1)*pd(i,jc)+ + + as(i,j+1)*pc(i,jc)) + awc(i,jc)=rc(i,jc)*aw(i,j)*pc(i-1,jc)+ + + rd(i,jc)*aw(i,j+1)*pd(i-1,jc)+ + + ru(i,jc-1)*aw(i,j-1)*pu(i-1,jc-1) + asc(i,jc)=rc(i,jc)*as(i,j)*pd(i,jc-1)+ + + ru(i,jc-1)*(ac(i,j-1)*pd(i,jc-1)+ + + as(i,j-1)*pc(i,jc-1)) + aec(i,jc)=rc(i,jc)*ae(i,j)*pc(i+1,jc)+ + + rd(i,jc)*ae(i,j+1)*pd(i+1,jc)+ + + ru(i,jc-1)*ae(i,j-1)*pu(i+1,jc-1) + anc(i,jc)=rc(i,jc)*an(i,j)*pu(i,jc)+ + + rd(i,jc)*(ac(i,j+1)*pu(i,jc)+ + + an(i,j+1)*pc(i,jc+1)) + aswc(i,jc)=ru(i,jc-1)*aw(i,j-1)*pd(i-1,jc-1) + asec(i,jc)=ru(i,jc-1)*ae(i,j-1)*pd(i+1,jc-1) + anec(i,jc)=rd(i,jc)*ae(i,j+1)*pu(i+1,jc) + 300 anwc(i,jc)=rd(i,jc)*aw(i,j+1)*pu(i-1,jc) + 2100 if(ifd.eq.9) then + j=jred-2 + do 310 jc=2,jmc1 + j=j+2 + do 310 i=2,im1 + awc(i,jc)=awc(i,jc)+(rd(i,jc)*asw(i,j+1)+ + + ru(i,jc-1)*anw(i,j-1))*pc(i-1,jc)+ + + rc(i,jc)*(anw(i,j)*pd(i-1,jc)+ + + asw(i,j)*pu(i-1,jc-1)) + aec(i,jc)=aec(i,jc)+(rd(i,jc)*ase(i,j+1)+ + + ru(i,jc-1)*ane(i,j-1))*pc(i+1,jc)+ + + rc(i,jc)*(ane(i,j)*pd(i+1,jc)+ + + ase(i,j)*pu(i+1,jc-1)) + aswc(i,jc)=aswc(i,jc)+ru(i,jc-1)*asw(i,j-1)*pc(i-1,jc-1)+ + + rc(i,jc)*asw(i,j)*pd(i-1,jc-1) + asec(i,jc)=asec(i,jc)+ru(i,jc-1)*ase(i,j-1)*pc(i+1,jc-1)+ + + rc(i,jc)*ase(i,j)*pd(i+1,jc-1) + anec(i,jc)=anec(i,jc)+rd(i,jc)*ane(i,j+1)*pc(i+1,jc+1)+ + + rc(i,jc)*ane(i,j)*pu(i+1,jc) + 310 anwc(i,jc)=anwc(i,jc)+rd(i,jc)*anw(i,j+1)*pc(i-1,jc+1)+ + + rc(i,jc)*anw(i,j)*pu(i-1,jc) + 2101 endif + 1802 endif +cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + if(iprsol.eq.2.and.kf.eq.m.and.ifd.eq.5) then + do 111 j=2,jm1 + do 111 i=2,im1 + write(lout,1010) im,jm,an(i,j) + write(lout,1012) i,j,aw(i,j),ac(i,j),ae(i,j) + 111 write(lout,1011) as(i,j) + 1010 format(2(1x,i2),14x,f12.5) + 1011 format(20x,f12.5) + 1012 format(2(1x,i2),3(1x,f12.5)) + endif + if(iprsol.eq.2.and.kf.eq.m.and.ifd.eq.9) then + do 115 j=2,jm1 + do 115 i=2,im1 + write(lout,1017) im,jm,anw(i,j),an(i,j),ane(i,j) + write(lout,1017) i,j,aw(i,j),ac(i,j),ae(i,j) + 115 write(lout,1016) asw(i,j),as(i,j),ase(i,j) + 1016 format(6x,3(1x,f12.5)) + 1017 format(2(1x,i2),3(1x,f12.5)) + endif +cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + if(iprsol.eq.2.or.iprsol.eq.3) then + write(lout,*) ' coarse grid kf-1 ==',kf-1 + do 211 jc=2,jmc1 + do 211 i=2,im1 + write(lout,2015) im,jmc,anwc(i,jc),anc(i,jc),anec(i,jc),pd(i,jc), + + rd(i,jc) + write(lout,2013) i,jc,awc(i,jc),acc(i,jc),aec(i,jc),pc(i,jc), + + rc(i,jc) + write(lout,2014) aswc(i,jc),asc(i,jc),asec(i,jc),pu(i,jc-1), + + ru(i,jc-1) + 211 write(lout,*) ' m, kf-1=',m,kf-1 + 2014 format(9x,3(1x,f11.5),3x,2(f11.5,1x)) + 2013 format(3x,2(1x,i2),3(1x,f11.5),3x,2(f11.5,1x)) + 2015 format(3x,2(1x,i2),3(1x,f11.5),3x,2(f11.5,1x)) + endif +cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + return + end +c********************************************************************** + subroutine uoutpt(q,im,jm) + implicit real*8 (a-h,o-z) +c********************************************************************** +c Sample output subroutine. Prints out the values of q at the +c interior points of the finest grid. +c********************************************************************** + common /io/ linp,lout + real*8 q(im,jm) + im1=im-1 + jm1=jm-1 + ie=1 + 20 ib=ie+1 + ie=ib+min0(5,im1-ib) + do 10 j=jm1,2,-1 + 10 write(lout,100) j,(q(i,j),i=ib,ie) + if(ie.lt.im1) go to 20 + 100 format(1x,i2,1x,6(1x,f10.4)) + return + end +c********************************************************************** + subroutine uputf(ac,aw,as,ae,an,f,nx,ny, + + lo,nxd,nyd,i32su) + implicit real*8 (a-h,o-z) +c********************************************************************** + real*8 ac(lo:nxd,lo:nyd),aw(lo:nxd,lo:nyd), + + as(lo:nxd,lo:nyd),ae(lo:nxd,lo:nyd), + + an(lo:nxd,lo:nyd),f(lo:nxd,lo:nyd) + real*8 a(20),b(20),ab(20) + integer il(20),ir(20),jb(20),jt(20) + integer ibc(4) + common /io/ linp,lout +c +c dcell is the value assigned to the diagonal element of a dead +c cell, i.e. a cell that has 0 conections to all its neighbors. +c icendif determines the differencing scheme for the first order terms +c icendif=0 - central differencing, =1 - forward differencing. +c + dcell = 1. + do 321 j=lo,nyd + do 321 i=lo,nxd + ac(i,j)=0. + aw(i,j)=0. + as(i,j)=0. + ae(i,j)=0. + 321 an(i,j)=0. +c + nx1=nx+1 + ny1=ny+1 + read(linp,*) icendif + read(linp,*) ibc(1),ibc(2),ibc(3),ibc(4) + read(linp,*) nreg + hx=1./nx + hy=1./ny + hx2=hx*hx + hy2=hy*hy + hxy2=hx2*hy2 + dcell=hxy2*dcell + write(lout,1011) ibc(1),ibc(2),ibc(3),ibc(4),icendif,dcell,hx,hy + 1011 format(' ibc_l ibc_b ibc_r ibc_t icendiff dcell hx hy'/ + + 4x,i1,5x,i1,5x,i1,5x,i1,7x,i1,6x,e8.2,2x,f6.4,2x,f6.4/) +c + do 10 irg=1,nreg + read(linp,*) il(irg),ir(irg),jb(irg),jt(irg) + read(linp,*) xk,yk,sreg,freg + read(linp,*) a(irg),b(irg),ab(irg) + write(lout,1000) il(irg),ir(irg),jb(irg),jt(irg),xk,yk,sreg,freg + 1000 format(1x,i3,',',i3,' X ',i3,',',i3,2x,1pe8.2,1x,1pe8.2,2x, + + 1pe8.1,1x,1pe8.1) + write(lout,1001) a(irg),b(irg),ab(irg) + 1001 format(17x,' a=',1pe10.3,' b=',1pe10.3,' ab=',1pe10.3) + xk=xk*hy2 + yk=yk*hx2 + sreg=sreg*hxy2 + freg=freg*hxy2 + a(irg)=a(irg)*hx2*hy + b(irg)=b(irg)*hx*hy2 + ab(irg)=ab(irg)*hx*hy + if(icendif.eq.0) then + a(irg)=a(irg)/2. + b(irg)=b(irg)/2. + ab(irg)=ab(irg)/4. + endif + if(il(irg).eq.1) il(irg)=0 + if(ir(irg).eq.nx) ir(irg)=nx1 + if(jb(irg).eq.1) jb(irg)=0 + if(jt(irg).eq.ny) jt(irg)=ny1 + do 20 i=il(irg),ir(irg) + do 20 j=jb(irg),jt(irg) + aw(i,j)=xk + as(i,j)=yk + ac(i,j)=sreg + 20 f(i,j)=freg + 10 continue + write(lout,*) ' - - - - - - - - - - - - - - - - - - - - - - - - -' +c defining coeficients by harmonic averaging + do 30 i=1,nx + asio=as(i,0) + do 30 j=1,ny1 + aa=as(i,j)*asio + if(aa.gt.0.) then + t=2.*aa/(as(i,j)+asio) + asio=as(i,j) + as(i,j)=t + else + asio=as(i,j) + as(i,j)=0. + endif + 30 continue + do 40 j=1,ny + awoj=aw(0,j) + do 40 i=1,nx1 + aa=aw(i,j)*awoj + if(aa.gt.0.) then + t=2.*aa/(aw(i,j)+awoj) + awoj=aw(i,j) + aw(i,j)=t + else + awoj=aw(i,j) + aw(i,j)=0. + endif + 40 continue + do 45 i=0,nx + do 45 j=0,ny + ae(i,j)=aw(i+1,j) + 45 an(i,j)=as(i,j+1) + do 50 i=1,nx + do 50 j=1,ny + ac(i,j)=ac(i,j)-aw(i,j)-as(i,j)-ae(i,j)- + + an(i,j) + 50 if(ac(i,j).eq.0.) ac(i,j)=dcell +c adding on the unsymmetric terms + do 51 irg=1,nreg +c icendif=0 ==> central diff g + if(icendif.eq.0) then + do 52 i=il(irg),ir(irg) + do 52 j=jb(irg),jt(irg) + aw(i,j)=aw(i,j)-a(irg) + ae(i,j)=ae(i,j)+a(irg) + an(i,j)=an(i,j)+b(irg) + 52 as(i,j)=as(i,j)-b(irg) +c icendif=1 ==> upstream diff s + elseif(icendif.eq.1) then + do 54 i=il(irg),ir(irg) + do 54 j=jb(irg),jt(irg) + ac(i,j)=ac(i,j)-a(irg) + ae(i,j)=ae(i,j)+a(irg) + an(i,j)=an(i,j)+b(irg) + 54 ac(i,j)=ac(i,j)-b(irg) + endif + 51 continue +c set boundary conditions for 5 point operator + do 60 j=1,ny +c left boundary + ae(0,j)=aw(1,j) + if(ibc(1).eq.1) then + ac(0,j)=aw(1,j) + f(0,j)=2.*aw(1,j)*0.0 + elseif(ibc(1).eq.2) then + ac(0,j)=-aw(1,j) + f(0,j)=hx*aw(1,j)*0.0 + endif + if(ac(0,j).eq.0.) then + ae(0,j)=0. + ac(0,j)=dcell + f(0,j)=0. + endif +c right boundary + aw(nx1,j)=ae(nx,j) + if(ibc(3).eq.1) then + ac(nx1,j)=ae(nx,j) + f(nx1,j)=2.*ae(nx,j)*0. + elseif(ibc(3).eq.2) then + ac(nx1,j)=-ae(nx,j) + f(nx1,j)=hx*ae(nx,j)*0. + endif + if(ac(nx1,j).eq.0.) then + aw(nx1,j)=0. + ac(nx1,j)=dcell + f(nx1,j)=0. + endif + 60 continue +c + do 80 i=1,nx +c lower boundary + an(i,0)=as(i,1) + if(ibc(2).eq.1) then + ac(i,0)=as(i,1) + f(i,0)=2.*as(i,1)*0. + elseif(ibc(2).eq.2) then + ac(i,0)=-as(i,1) + f(i,0)=hy*as(i,1)*0. + endif + if(ac(i,0).eq.0.) then + an(i,0)=0. + ac(i,0)=dcell + f(i,0)=0. + endif +c upper boundary + as(i,ny1)=an(i,ny) + if(ibc(4).eq.1) then + ac(i,ny1)=an(i,ny) + f(i,ny1)=2.*an(i,ny)*0. + elseif(ibc(4).eq.2) then + ac(i,ny1)=-an(i,ny) + f(i,ny1)=2.*an(i,ny)*0. + endif + if(ac(i,ny1).eq.0.) then + as(i,ny1)=0. + ac(i,ny1)=dcell + f(i,ny1)=0. + endif + 80 continue +c connections between ghost boundary points zeroed + do 83 j=1,ny1 + as(0,j)=0. + an(0,j-1)=0. + as(nx1,j)=0. + 83 an(nx1,j-1)=0. + do 86 i=1,nx1 + aw(i,0)=0. + ae(i-1,0)=0. + aw(i,ny1)=0. + 86 ae(i-1,ny1)=0. +c corner stencils and rhs defined + if(i32su.eq.32) then + do 90 j=0,ny1,ny1 + do 90 i=0,nx1,nx1 + ac(i,j)=dcell + aw(i,j)=0. + ae(i,j)=0. + as(i,j)=0. + an(i,j)=0. + 90 f(i,j)=0. + endif +c i32su=22 - boundary conditions absorbed + if(i32su.eq.22) then + do 100 j=1,ny + awac=aw(1,j)/ac(0,j) + ac(1,j)=ac(1,j)-awac*ae(0,j) + aw(1,j)=0. + f(1,j)=f(1,j)-awac*f(0,j) + ac(0,j)=0. + ae(0,j)=0. + f(0,j)=0 + awac=aw(nx1,j)/ac(nx1,j) + ac(nx,j)=ac(nx,j)-awac*ae(nx1,j) + ae(nx,j)=0. + f(nx,j)=f(nx,j)-awac*f(nx1,j) + ac(nx1,j)=0. + aw(nx1,j)=0. + 100 f(nx1,j)=0. +c + do 110 i=1,nx + asac=as(i,1)/ac(i,0) + ac(i,1)=ac(i,1)-asac*an(i,0) + as(i,1)=0. + f(i,1)=f(i,1)-asac*f(i,0) + ac(i,0)=0. + an(i,0)=0. + f(i,0)=0. + anac=an(i,ny)/ac(i,ny1) + ac(i,ny)=ac(i,ny)-anac*as(i,ny1) + an(i,ny)=0. + f(i,ny)=f(i,ny)-anac*f(i,ny1) + ac(i,ny1)=0. + as(i,ny1)=0. + 110 f(i,ny1)=0. + endif + return + end diff --git a/test/test_axibrill.par b/test/test_axibrill.par new file mode 100644 index 0000000..5095ee8 --- /dev/null +++ b/test/test_axibrill.par @@ -0,0 +1,55 @@ +###################################################################### +!DESC "Initial data for axisymmetric distored black hole" +###################################################################### + +ActiveThorns = "time iobasic ADMconstraints pugh interp cartgrid3d einstein ADM IDAxiBrillBH ioascii ioutil" + +#pugh::enable_all_storage = "yes" +#cactus::cctk_show_banners = 0 + +# GENERAL + +einstein::evolution_system = "ADM" + +driver::global_nx = 32 +driver::global_ny = 32 +driver::global_nz = 32 + +grid::type = "byspacing" +grid::dxyz = 0.4 +grid::domain = "full" + +time::dtfac = 0.25 + +cactus::cctk_initial_time = 0. +cactus::cctk_itlast = 1 + +adm::method = "stagleap" +adm::bound = "static" + +# MODEL + +einstein::initial_data = "axibrillbh" +idaxibrillbh::amp = 0.5 +idaxibrillbh::eta0 = 0.0 +idaxibrillbh::sigma = 1.0 +idaxibrillbh::etamax = 6.0 +idaxibrillbh::n = 2 +idaxibrillbh::ne = 102 +idaxibrillbh::nq = 27 +interp::order = 1 + + +# GAUGE +einstein::slicing = "geodesic" + + +# OUTPUT ######################################################## +IO::outdir = "test_axibrill" +IOASCII::out1d_every = 1 +IOASCII::out1D_vars = "einstein::curv einstein::metric einstein::grr admconstraints::ham" +IOBasic::outInfo_every = 1 +IOBasic::outInfo_vars = "einstein::gxx" + +################################################################## + diff --git a/test/test_axibrill/grr.dl b/test/test_axibrill/grr.dl new file mode 100644 index 0000000..b61114b --- /dev/null +++ b/test/test_axibrill/grr.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 1.0047713470372 +-10.045895 1.0065252883972 +-9.353074 1.0090391279161 +-8.660254 1.0126996946446 +-7.967434 1.0181251948643 +-7.274613 1.0263285292007 +-6.581793 1.0390179868368 +-5.888973 1.0591751694516 +-5.196152 1.0922253501803 +-4.503332 1.1485641657906 +-3.810512 1.2494458459285 +-3.117691 1.4418623483665 +-2.424871 1.8374906850228 +-1.732051 2.6806066878829 +-1.039230 3.7861908480670 +-0.346410 1.5424241733214 +0.346410 1.5424241733214 +1.039230 3.7861908480670 +1.732051 2.6806066878829 +2.424871 1.8374906850228 +3.117691 1.4418623483665 +3.810512 1.2494458459285 +4.503332 1.1485641657906 +5.196152 1.0922253501803 +5.888973 1.0591751694516 +6.581793 1.0390179868368 +7.274613 1.0263285292007 +7.967434 1.0181251948643 +8.660254 1.0126996946446 +9.353074 1.0090391279161 +10.045895 1.0065252883972 +10.738715 1.0047713470372 + + +"Time = 0.100000 +-10.738715 1.0047713470372 +-10.045895 1.0065469049184 +-9.353074 1.0090650018457 +-8.660254 1.0127310655224 +-7.967434 1.0181638167535 +-7.274613 1.0263768280130 +-6.581793 1.0390797715467 +-5.888973 1.0592564103933 +-5.196152 1.0923361371144 +-4.503332 1.1487231978359 +-3.810512 1.2496917886648 +-3.117691 1.4422862153388 +-2.424871 1.8383382776826 +-1.732051 2.6823553772885 +-1.039230 3.7870563491639 +-0.346410 1.5429262557666 +0.346410 1.5429262557667 +1.039230 3.7870563491640 +1.732051 2.6823553772885 +2.424871 1.8383382776826 +3.117691 1.4422862153388 +3.810512 1.2496917886648 +4.503332 1.1487231978359 +5.196152 1.0923361371144 +5.888973 1.0592564103933 +6.581793 1.0390797715467 +7.274613 1.0263768280130 +7.967434 1.0181638167535 +8.660254 1.0127310655224 +9.353074 1.0090650018457 +10.045895 1.0065469049184 +10.738715 1.0047713470372 diff --git a/test/test_axibrill/grr.xl b/test/test_axibrill/grr.xl new file mode 100644 index 0000000..21c1e74 --- /dev/null +++ b/test/test_axibrill/grr.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0739181071380 +-5.800000 1.0947338290899 +-5.400000 1.1226550387132 +-5.000000 1.1606600295738 +-4.600000 1.2132851657294 +-4.200000 1.2876509835220 +-3.800000 1.3953286042978 +-3.400000 1.5558653732435 +-3.000000 1.8036415991553 +-2.600000 2.2011817205028 +-2.200000 2.8622662625375 +-1.800000 3.9692227838200 +-1.400000 5.6226347181366 +-1.000000 6.8419735491225 +-0.600000 4.6470619376786 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 4.6470619376786 +1.000000 6.8419735491225 +1.400000 5.6226347181366 +1.800000 3.9692227838200 +2.200000 2.8622662625375 +2.600000 2.2011817205028 +3.000000 1.8036415991553 +3.400000 1.5558653732435 +3.800000 1.3953286042978 +4.200000 1.2876509835220 +4.600000 1.2132851657294 +5.000000 1.1606600295738 +5.400000 1.1226550387132 +5.800000 1.0947338290899 +6.200000 1.0739181071380 + + +"Time = 0.100000 +-6.200000 1.0739181071380 +-5.800000 1.0948206077590 +-5.400000 1.1227575208668 +-5.000000 1.1607824447183 +-4.600000 1.2134335784690 +-4.200000 1.2878338753800 +-3.800000 1.3955590244350 +-3.400000 1.5561622774693 +-3.000000 1.8040335571003 +-2.600000 2.2017055175379 +-2.200000 2.8629460735248 +-1.800000 3.9698974255919 +-1.400000 5.6221504951282 +-1.000000 6.8390359466190 +-0.600000 4.6476860634314 +-0.200000 1.5429262557667 +0.200000 1.5429262557667 +0.600000 4.6476860634314 +1.000000 6.8390359466190 +1.400000 5.6221504951282 +1.800000 3.9698974255919 +2.200000 2.8629460735248 +2.600000 2.2017055175379 +3.000000 1.8040335571003 +3.400000 1.5561622774693 +3.800000 1.3955590244350 +4.200000 1.2878338753800 +4.600000 1.2134335784690 +5.000000 1.1607824447183 +5.400000 1.1227575208668 +5.800000 1.0948206077590 +6.200000 1.0739181071380 diff --git a/test/test_axibrill/grr.yl b/test/test_axibrill/grr.yl new file mode 100644 index 0000000..21c1e74 --- /dev/null +++ b/test/test_axibrill/grr.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0739181071380 +-5.800000 1.0947338290899 +-5.400000 1.1226550387132 +-5.000000 1.1606600295738 +-4.600000 1.2132851657294 +-4.200000 1.2876509835220 +-3.800000 1.3953286042978 +-3.400000 1.5558653732435 +-3.000000 1.8036415991553 +-2.600000 2.2011817205028 +-2.200000 2.8622662625375 +-1.800000 3.9692227838200 +-1.400000 5.6226347181366 +-1.000000 6.8419735491225 +-0.600000 4.6470619376786 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 4.6470619376786 +1.000000 6.8419735491225 +1.400000 5.6226347181366 +1.800000 3.9692227838200 +2.200000 2.8622662625375 +2.600000 2.2011817205028 +3.000000 1.8036415991553 +3.400000 1.5558653732435 +3.800000 1.3953286042978 +4.200000 1.2876509835220 +4.600000 1.2132851657294 +5.000000 1.1606600295738 +5.400000 1.1226550387132 +5.800000 1.0947338290899 +6.200000 1.0739181071380 + + +"Time = 0.100000 +-6.200000 1.0739181071380 +-5.800000 1.0948206077590 +-5.400000 1.1227575208668 +-5.000000 1.1607824447183 +-4.600000 1.2134335784690 +-4.200000 1.2878338753800 +-3.800000 1.3955590244350 +-3.400000 1.5561622774693 +-3.000000 1.8040335571003 +-2.600000 2.2017055175379 +-2.200000 2.8629460735248 +-1.800000 3.9698974255919 +-1.400000 5.6221504951282 +-1.000000 6.8390359466190 +-0.600000 4.6476860634314 +-0.200000 1.5429262557667 +0.200000 1.5429262557667 +0.600000 4.6476860634314 +1.000000 6.8390359466190 +1.400000 5.6221504951282 +1.800000 3.9698974255919 +2.200000 2.8629460735248 +2.600000 2.2017055175379 +3.000000 1.8040335571003 +3.400000 1.5561622774693 +3.800000 1.3955590244350 +4.200000 1.2878338753800 +4.600000 1.2134335784690 +5.000000 1.1607824447183 +5.400000 1.1227575208668 +5.800000 1.0948206077590 +6.200000 1.0739181071380 diff --git a/test/test_axibrill/grr.zl b/test/test_axibrill/grr.zl new file mode 100644 index 0000000..1199449 --- /dev/null +++ b/test/test_axibrill/grr.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0001482724109 +-5.800000 1.0002150142174 +-5.400000 1.0003170268183 +-5.000000 1.0004761159728 +-4.600000 1.0007298197498 +-4.200000 1.0011446347552 +-3.800000 1.0018421916942 +-3.400000 1.0030531472576 +-3.000000 1.0052331829660 +-2.600000 1.0093255006370 +-2.200000 1.0173890280296 +-1.800000 1.0341953305475 +-1.400000 1.0715133709812 +-1.000000 1.1594305043567 +-0.600000 1.3596768153129 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 1.3596768153129 +1.000000 1.1594305043567 +1.400000 1.0715133709812 +1.800000 1.0341953305475 +2.200000 1.0173890280296 +2.600000 1.0093255006370 +3.000000 1.0052331829660 +3.400000 1.0030531472576 +3.800000 1.0018421916942 +4.200000 1.0011446347552 +4.600000 1.0007298197498 +5.000000 1.0004761159728 +5.400000 1.0003170268183 +5.800000 1.0002150142174 +6.200000 1.0001482724109 + + +"Time = 0.100000 +-6.200000 1.0001482724109 +-5.800000 1.0002968840798 +-5.400000 1.0004177293716 +-5.000000 1.0006027856002 +-4.600000 1.0008930712063 +-4.200000 1.0013611226786 +-3.800000 1.0021384458470 +-3.400000 1.0034726854505 +-3.000000 1.0058485563333 +-2.600000 1.0102591902811 +-2.200000 1.0188437960928 +-1.800000 1.0364773716567 +-1.400000 1.0749462488187 +-1.000000 1.1636700494274 +-0.600000 1.3624743812226 +-0.200000 1.5429262557666 +0.200000 1.5429262557667 +0.600000 1.3624743812227 +1.000000 1.1636700494275 +1.400000 1.0749462488188 +1.800000 1.0364773716568 +2.200000 1.0188437960929 +2.600000 1.0102591902812 +3.000000 1.0058485563333 +3.400000 1.0034726854505 +3.800000 1.0021384458470 +4.200000 1.0013611226785 +4.600000 1.0008930712063 +5.000000 1.0006027856002 +5.400000 1.0004177293716 +5.800000 1.0002968840798 +6.200000 1.0001482724109 diff --git a/test/test_axibrill/gxx.dl b/test/test_axibrill/gxx.dl new file mode 100644 index 0000000..4a1ae85 --- /dev/null +++ b/test/test_axibrill/gxx.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 1.0023856735186 +-10.045895 1.0032626441986 +-9.353074 1.0045195639580 +-8.660254 1.0063498473223 +-7.967434 1.0090625974322 +-7.274613 1.0131642646003 +-6.581793 1.0195089934184 +-5.888973 1.0295875847258 +-5.196152 1.0461126750901 +-4.503332 1.0742820828953 +-3.810512 1.1247229229642 +-3.117691 1.2209311741832 +-2.424871 1.4187453425114 +-1.732051 1.8403033439414 +-1.039230 2.3930954240335 +-0.346410 1.2712120866607 +0.346410 1.2712120866607 +1.039230 2.3930954240335 +1.732051 1.8403033439414 +2.424871 1.4187453425114 +3.117691 1.2209311741832 +3.810512 1.1247229229642 +4.503332 1.0742820828953 +5.196152 1.0461126750901 +5.888973 1.0295875847258 +6.581793 1.0195089934184 +7.274613 1.0131642646003 +7.967434 1.0090625974322 +8.660254 1.0063498473223 +9.353074 1.0045195639580 +10.045895 1.0032626441986 +10.738715 1.0023856735186 + + +"Time = 0.100000 +-10.738715 1.0023856735186 +-10.045895 1.0032621429018 +-9.353074 1.0045189675285 +-8.660254 1.0063491749091 +-7.967434 1.0090619234994 +-7.274613 1.0131637671915 +-6.581793 1.0195091644179 +-5.888973 1.0295895830741 +-5.196152 1.0461193086744 +-4.503332 1.0743001276570 +-3.810512 1.1247690032299 +-3.117691 1.2210453467923 +-2.424871 1.4190126823698 +-1.732051 1.8406890701277 +-1.039230 2.3922409311558 +-0.346410 1.2713456927855 +0.346410 1.2713456927855 +1.039230 2.3922409311558 +1.732051 1.8406890701277 +2.424871 1.4190126823698 +3.117691 1.2210453467923 +3.810512 1.1247690032299 +4.503332 1.0743001276570 +5.196152 1.0461193086744 +5.888973 1.0295895830741 +6.581793 1.0195091644179 +7.274613 1.0131637671915 +7.967434 1.0090619234994 +8.660254 1.0063491749091 +9.353074 1.0045189675285 +10.045895 1.0032621429018 +10.738715 1.0023856735186 diff --git a/test/test_axibrill/gxx.xl b/test/test_axibrill/gxx.xl new file mode 100644 index 0000000..ec4cbf7 --- /dev/null +++ b/test/test_axibrill/gxx.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0738412691888 +-5.800000 1.0946213186040 +-5.400000 1.1224870181122 +-5.000000 1.1604033841592 +-4.600000 1.2128827408884 +-4.200000 1.2870001894417 +-3.800000 1.3942365363301 +-3.400000 1.5539485960944 +-3.000000 1.8000856628758 +-2.600000 2.1941159456763 +-2.200000 2.8470017849757 +-1.800000 3.9330127498710 +-1.400000 5.5301820237739 +-1.000000 6.6172822587716 +-0.600000 4.2823557439107 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 4.2823557439107 +1.000000 6.6172822587716 +1.400000 5.5301820237739 +1.800000 3.9330127498710 +2.200000 2.8470017849757 +2.600000 2.1941159456763 +3.000000 1.8000856628758 +3.400000 1.5539485960944 +3.800000 1.3942365363301 +4.200000 1.2870001894417 +4.600000 1.2128827408884 +5.000000 1.1604033841592 +5.400000 1.1224870181122 +5.800000 1.0946213186040 +6.200000 1.0738412691888 + + +"Time = 0.100000 +-6.200000 1.0738412691888 +-5.800000 1.0947078550417 +-5.400000 1.1225891930270 +-5.000000 1.1605254080256 +-4.600000 1.2130306543370 +-4.200000 1.2871824416840 +-3.800000 1.3944661289803 +-3.400000 1.5542444015561 +-3.000000 1.8004760666107 +-2.600000 2.1946373273790 +-2.200000 2.8476778158887 +-1.800000 3.9336850269090 +-1.400000 5.5297096977908 +-1.000000 6.6142596559607 +-0.600000 4.2823968571863 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 4.2823968571863 +1.000000 6.6142596559607 +1.400000 5.5297096977908 +1.800000 3.9336850269090 +2.200000 2.8476778158887 +2.600000 2.1946373273790 +3.000000 1.8004760666107 +3.400000 1.5542444015561 +3.800000 1.3944661289803 +4.200000 1.2871824416840 +4.600000 1.2130306543370 +5.000000 1.1605254080256 +5.400000 1.1225891930270 +5.800000 1.0947078550417 +6.200000 1.0738412691888 diff --git a/test/test_axibrill/gxx.yl b/test/test_axibrill/gxx.yl new file mode 100644 index 0000000..34d7e93 --- /dev/null +++ b/test/test_axibrill/gxx.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0000768379492 +-5.800000 1.0001125104859 +-5.400000 1.0001680206010 +-5.000000 1.0002566454147 +-4.600000 1.0004024248410 +-4.200000 1.0006507940804 +-3.800000 1.0010920679677 +-3.400000 1.0019167771491 +-3.000000 1.0035559362794 +-2.600000 1.0070657748265 +-2.200000 1.0152644775618 +-1.800000 1.0362100339490 +-1.400000 1.0924526943627 +-1.000000 1.2246912903509 +-0.600000 1.3647061937679 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 1.3647061937679 +1.000000 1.2246912903509 +1.400000 1.0924526943627 +1.800000 1.0362100339490 +2.200000 1.0152644775618 +2.600000 1.0070657748265 +3.000000 1.0035559362794 +3.400000 1.0019167771491 +3.800000 1.0010920679677 +4.200000 1.0006507940804 +4.600000 1.0004024248410 +5.000000 1.0002566454147 +5.400000 1.0001680206010 +5.800000 1.0001125104859 +6.200000 1.0000768379492 + + +"Time = 0.100000 +-6.200000 1.0000768379492 +-5.800000 1.0000560137722 +-5.400000 1.0001027616656 +-5.000000 1.0001820245259 +-4.600000 1.0003190053665 +-4.200000 1.0005609513811 +-3.800000 1.0010022620367 +-3.400000 1.0018398289728 +-3.000000 1.0035148664799 +-2.600000 1.0070938843595 +-2.200000 1.0153873720803 +-1.800000 1.0363548978360 +-1.400000 1.0922282884786 +-1.000000 1.2237724608276 +-0.600000 1.3646339472628 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 1.3646339472628 +1.000000 1.2237724608276 +1.400000 1.0922282884786 +1.800000 1.0363548978360 +2.200000 1.0153873720803 +2.600000 1.0070938843595 +3.000000 1.0035148664799 +3.400000 1.0018398289728 +3.800000 1.0010022620367 +4.200000 1.0005609513811 +4.600000 1.0003190053665 +5.000000 1.0001820245259 +5.400000 1.0001027616656 +5.800000 1.0000560137722 +6.200000 1.0000768379492 diff --git a/test/test_axibrill/gxx.zl b/test/test_axibrill/gxx.zl new file mode 100644 index 0000000..8cc1e50 --- /dev/null +++ b/test/test_axibrill/gxx.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0000741362054 +-5.800000 1.0001075071087 +-5.400000 1.0001585134092 +-5.000000 1.0002380579864 +-4.600000 1.0003649098749 +-4.200000 1.0005723173776 +-3.800000 1.0009210958471 +-3.400000 1.0015265736288 +-3.000000 1.0026165914830 +-2.600000 1.0046627503185 +-2.200000 1.0086945140148 +-1.800000 1.0170976652738 +-1.400000 1.0357566854906 +-1.000000 1.0797152521783 +-0.600000 1.1798384076565 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 1.1798384076565 +1.000000 1.0797152521783 +1.400000 1.0357566854906 +1.800000 1.0170976652738 +2.200000 1.0086945140148 +2.600000 1.0046627503185 +3.000000 1.0026165914830 +3.400000 1.0015265736288 +3.800000 1.0009210958471 +4.200000 1.0005723173776 +4.600000 1.0003649098749 +5.000000 1.0002380579864 +5.400000 1.0001585134092 +5.800000 1.0001075071087 +6.200000 1.0000741362054 + + +"Time = 0.100000 +-6.200000 1.0000741362054 +-5.800000 1.0000666929878 +-5.400000 1.0001083944206 +-5.000000 1.0001752007912 +-4.600000 1.0002840356382 +-4.200000 1.0004654081661 +-3.800000 1.0007754064764 +-3.400000 1.0013217027171 +-3.000000 1.0023191177119 +-2.600000 1.0042180300259 +-2.200000 1.0080161300419 +-1.800000 1.0160650312357 +-1.400000 1.0342916046090 +-1.000000 1.0780518469549 +-0.600000 1.1788635786404 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 1.1788635786405 +1.000000 1.0780518469549 +1.400000 1.0342916046090 +1.800000 1.0160650312358 +2.200000 1.0080161300419 +2.600000 1.0042180300259 +3.000000 1.0023191177119 +3.400000 1.0013217027171 +3.800000 1.0007754064764 +4.200000 1.0004654081661 +4.600000 1.0002840356382 +5.000000 1.0001752007912 +5.400000 1.0001083944206 +5.800000 1.0000666929878 +6.200000 1.0000741362054 diff --git a/test/test_axibrill/gxy.dl b/test/test_axibrill/gxy.dl new file mode 100644 index 0000000..69f4a5f --- /dev/null +++ b/test/test_axibrill/gxy.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0023856735186 +-10.045895 0.0032626441986 +-9.353074 0.0045195639580 +-8.660254 0.0063498473223 +-7.967434 0.0090625974322 +-7.274613 0.0131642646003 +-6.581793 0.0195089934184 +-5.888973 0.0295875847258 +-5.196152 0.0461126750901 +-4.503332 0.0742820828953 +-3.810512 0.1247229229642 +-3.117691 0.2209311741832 +-2.424871 0.4187453425114 +-1.732051 0.8403033439414 +-1.039230 1.3930954240335 +-0.346410 0.2712120866607 +0.346410 0.2712120866607 +1.039230 1.3930954240335 +1.732051 0.8403033439414 +2.424871 0.4187453425114 +3.117691 0.2209311741832 +3.810512 0.1247229229642 +4.503332 0.0742820828953 +5.196152 0.0461126750901 +5.888973 0.0295875847258 +6.581793 0.0195089934184 +7.274613 0.0131642646003 +7.967434 0.0090625974322 +8.660254 0.0063498473223 +9.353074 0.0045195639580 +10.045895 0.0032626441986 +10.738715 0.0023856735186 + + +"Time = 0.100000 +-10.738715 0.0023856735186 +-10.045895 0.0032741761092 +-9.353074 0.0045336659915 +-8.660254 0.0063673886959 +-7.967434 0.0090848463395 +-7.274613 0.0131930731082 +-6.581793 0.0195472142109 +-5.888973 0.0296395954602 +-5.196152 0.0461852628933 +-4.503332 0.0743856737748 +-3.810512 0.1248726898949 +-3.117691 0.2211459665310 +-2.424871 0.4190420121163 +-1.732051 0.8406835004398 +-1.039230 1.3931076740829 +-0.346410 0.2712020390211 +0.346410 0.2712020390212 +1.039230 1.3931076740830 +1.732051 0.8406835004398 +2.424871 0.4190420121163 +3.117691 0.2211459665310 +3.810512 0.1248726898949 +4.503332 0.0743856737748 +5.196152 0.0461852628933 +5.888973 0.0296395954602 +6.581793 0.0195472142109 +7.274613 0.0131930731082 +7.967434 0.0090848463395 +8.660254 0.0063673886959 +9.353074 0.0045336659915 +10.045895 0.0032741761092 +10.738715 0.0023856735186 diff --git a/test/test_axibrill/gxy.xl b/test/test_axibrill/gxy.xl new file mode 100644 index 0000000..6e9518f --- /dev/null +++ b/test/test_axibrill/gxy.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 -0.0023819764254 +-5.800000 -0.0032628040898 +-5.400000 -0.0045365562264 +-5.000000 -0.0064161353664 +-4.600000 -0.0092557713430 +-4.200000 -0.0136666756877 +-3.800000 -0.0207492913858 +-3.400000 -0.0325852115350 +-3.000000 -0.0533390441917 +-2.600000 -0.0918550727443 +-2.200000 -0.1679092531796 +-1.800000 -0.3258903055412 +-1.400000 -0.6471688605391 +-1.000000 -1.1234564517543 +-0.600000 -1.0941185813036 +-0.200000 -0.2712120866607 +0.200000 0.2712120866607 +0.600000 1.0941185813036 +1.000000 1.1234564517543 +1.400000 0.6471688605391 +1.800000 0.3258903055412 +2.200000 0.1679092531796 +2.600000 0.0918550727443 +3.000000 0.0533390441917 +3.400000 0.0325852115350 +3.800000 0.0207492913858 +4.200000 0.0136666756877 +4.600000 0.0092557713430 +5.000000 0.0064161353664 +5.400000 0.0045365562264 +5.800000 0.0032628040898 +6.200000 0.0023819764254 + + +"Time = 0.100000 +-6.200000 -0.0023819764254 +-5.800000 -0.0032677957033 +-5.400000 -0.0045428566031 +-5.000000 -0.0064241726681 +-4.600000 -0.0092661381137 +-4.200000 -0.0136802127987 +-3.800000 -0.0207672384064 +-3.400000 -0.0326094432880 +-3.000000 -0.0533725390551 +-2.600000 -0.0919022146426 +-2.200000 -0.1679731336938 +-1.800000 -0.3259480248673 +-1.400000 -0.6470783272011 +-1.000000 -1.1230819971828 +-0.600000 -1.0942768657679 +-0.200000 -0.2712020390212 +0.200000 0.2712020390212 +0.600000 1.0942768657679 +1.000000 1.1230819971828 +1.400000 0.6470783272011 +1.800000 0.3259480248673 +2.200000 0.1679731336938 +2.600000 0.0919022146426 +3.000000 0.0533725390551 +3.400000 0.0326094432880 +3.800000 0.0207672384064 +4.200000 0.0136802127987 +4.600000 0.0092661381137 +5.000000 0.0064241726681 +5.400000 0.0045428566031 +5.800000 0.0032677957033 +6.200000 0.0023819764254 diff --git a/test/test_axibrill/gxy.yl b/test/test_axibrill/gxy.yl new file mode 100644 index 0000000..6e9518f --- /dev/null +++ b/test/test_axibrill/gxy.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 -0.0023819764254 +-5.800000 -0.0032628040898 +-5.400000 -0.0045365562264 +-5.000000 -0.0064161353664 +-4.600000 -0.0092557713430 +-4.200000 -0.0136666756877 +-3.800000 -0.0207492913858 +-3.400000 -0.0325852115350 +-3.000000 -0.0533390441917 +-2.600000 -0.0918550727443 +-2.200000 -0.1679092531796 +-1.800000 -0.3258903055412 +-1.400000 -0.6471688605391 +-1.000000 -1.1234564517543 +-0.600000 -1.0941185813036 +-0.200000 -0.2712120866607 +0.200000 0.2712120866607 +0.600000 1.0941185813036 +1.000000 1.1234564517543 +1.400000 0.6471688605391 +1.800000 0.3258903055412 +2.200000 0.1679092531796 +2.600000 0.0918550727443 +3.000000 0.0533390441917 +3.400000 0.0325852115350 +3.800000 0.0207492913858 +4.200000 0.0136666756877 +4.600000 0.0092557713430 +5.000000 0.0064161353664 +5.400000 0.0045365562264 +5.800000 0.0032628040898 +6.200000 0.0023819764254 + + +"Time = 0.100000 +-6.200000 -0.0023819764254 +-5.800000 -0.0032677957033 +-5.400000 -0.0045428566031 +-5.000000 -0.0064241726681 +-4.600000 -0.0092661381137 +-4.200000 -0.0136802127987 +-3.800000 -0.0207672384064 +-3.400000 -0.0326094432880 +-3.000000 -0.0533725390551 +-2.600000 -0.0919022146426 +-2.200000 -0.1679731336938 +-1.800000 -0.3259480248673 +-1.400000 -0.6470783272011 +-1.000000 -1.1230819971828 +-0.600000 -1.0942768657679 +-0.200000 -0.2712020390212 +0.200000 0.2712020390212 +0.600000 1.0942768657679 +1.000000 1.1230819971828 +1.400000 0.6470783272011 +1.800000 0.3259480248673 +2.200000 0.1679731336938 +2.600000 0.0919022146426 +3.000000 0.0533725390551 +3.400000 0.0326094432880 +3.800000 0.0207672384064 +4.200000 0.0136802127987 +4.600000 0.0092661381137 +5.000000 0.0064241726681 +5.400000 0.0045428566031 +5.800000 0.0032677957033 +6.200000 0.0023819764254 diff --git a/test/test_axibrill/gxy.zl b/test/test_axibrill/gxy.zl new file mode 100644 index 0000000..22f96fc --- /dev/null +++ b/test/test_axibrill/gxy.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000741362054 +-5.800000 0.0001075071087 +-5.400000 0.0001585134092 +-5.000000 0.0002380579864 +-4.600000 0.0003649098749 +-4.200000 0.0005723173776 +-3.800000 0.0009210958471 +-3.400000 0.0015265736288 +-3.000000 0.0026165914830 +-2.600000 0.0046627503185 +-2.200000 0.0086945140148 +-1.800000 0.0170976652738 +-1.400000 0.0357566854906 +-1.000000 0.0797152521783 +-0.600000 0.1798384076565 +-0.200000 0.2712120866607 +0.200000 0.2712120866607 +0.600000 0.1798384076565 +1.000000 0.0797152521783 +1.400000 0.0357566854906 +1.800000 0.0170976652738 +2.200000 0.0086945140148 +2.600000 0.0046627503185 +3.000000 0.0026165914830 +3.400000 0.0015265736288 +3.800000 0.0009210958471 +4.200000 0.0005723173776 +4.600000 0.0003649098749 +5.000000 0.0002380579864 +5.400000 0.0001585134092 +5.800000 0.0001075071087 +6.200000 0.0000741362054 + + +"Time = 0.100000 +-6.200000 0.0000741362054 +-5.800000 0.0001077724777 +-5.400000 0.0001589084897 +-5.000000 0.0002386614906 +-4.600000 0.0003658571380 +-4.200000 0.0005738482401 +-3.800000 0.0009236485895 +-3.400000 0.0015309678038 +-3.000000 0.0026243808106 +-2.600000 0.0046768451146 +-2.200000 0.0087198761390 +-1.800000 0.0171398054861 +-1.400000 0.0358051681469 +-1.000000 0.0796766587561 +-0.600000 0.1795623218381 +-0.200000 0.2712020390211 +0.200000 0.2712020390212 +0.600000 0.1795623218381 +1.000000 0.0796766587561 +1.400000 0.0358051681469 +1.800000 0.0171398054861 +2.200000 0.0087198761390 +2.600000 0.0046768451146 +3.000000 0.0026243808106 +3.400000 0.0015309678038 +3.800000 0.0009236485895 +4.200000 0.0005738482401 +4.600000 0.0003658571380 +5.000000 0.0002386614906 +5.400000 0.0001589084897 +5.800000 0.0001077724777 +6.200000 0.0000741362054 diff --git a/test/test_axibrill/gxz.dl b/test/test_axibrill/gxz.dl new file mode 100644 index 0000000..ff79b56 --- /dev/null +++ b/test/test_axibrill/gxz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 0.0000104304891 +-9.353074 0.0000123282110 +-8.660254 0.0000147062179 +-7.967434 0.0000177350614 +-7.274613 0.0000216227590 +-6.581793 0.0000268250349 +-5.888973 0.0000340839554 +-5.196152 0.0000449653032 +-4.503332 0.0000633301646 +-3.810512 0.0000997908888 +-3.117691 0.0001872750845 +-2.424871 0.0004371167759 +-1.732051 0.0011466109706 +-1.039230 0.0014951805690 +-0.346410 0.0003155871952 +0.346410 0.0003155871952 +1.039230 0.0014951805690 +1.732051 0.0011466109706 +2.424871 0.0004371167759 +3.117691 0.0001872750845 +3.810512 0.0000997908888 +4.503332 0.0000633301646 +5.196152 0.0000449653032 +5.888973 0.0000340839554 +6.581793 0.0000268250349 +7.274613 0.0000216227590 +7.967434 0.0000177350614 +8.660254 0.0000147062179 +9.353074 0.0000123282110 +10.045895 0.0000104304891 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/gxz.xl b/test/test_axibrill/gxz.xl new file mode 100644 index 0000000..e117ffd --- /dev/null +++ b/test/test_axibrill/gxz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000028212022 +-5.400000 -0.0000032408945 +-5.000000 -0.0000037171906 +-4.600000 -0.0000042597395 +-4.200000 -0.0000049344967 +-3.800000 -0.0000059311633 +-3.400000 -0.0000077983170 +-3.000000 -0.0000120729964 +-2.600000 -0.0000227613290 +-2.200000 -0.0000499025298 +-1.800000 -0.0001150276102 +-1.400000 -0.0002684367238 +-1.000000 -0.0006457552941 +-0.600000 -0.0009064046052 +-0.200000 -0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0009064046052 +1.000000 0.0006457552941 +1.400000 0.0002684367238 +1.800000 0.0001150276102 +2.200000 0.0000499025298 +2.600000 0.0000227613290 +3.000000 0.0000120729964 +3.400000 0.0000077983170 +3.800000 0.0000059311633 +4.200000 0.0000049344967 +4.600000 0.0000042597395 +5.000000 0.0000037171906 +5.400000 0.0000032408945 +5.800000 0.0000028212022 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gxz.yl b/test/test_axibrill/gxz.yl new file mode 100644 index 0000000..8e24688 --- /dev/null +++ b/test/test_axibrill/gxz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000000758418 +-5.400000 0.0000000815482 +-5.000000 0.0000000771245 +-4.600000 0.0000000467518 +-4.200000 -0.0000000451969 +-3.800000 -0.0000002835460 +-3.400000 -0.0000008766235 +-3.000000 -0.0000023454148 +-2.600000 -0.0000059600193 +-2.200000 -0.0000141242188 +-1.800000 -0.0000261180416 +-1.400000 -0.0000066835514 +-1.000000 0.0001378219136 +-0.600000 0.0003217221739 +-0.200000 0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0003217221739 +1.000000 0.0001378219136 +1.400000 -0.0000066835514 +1.800000 -0.0000261180416 +2.200000 -0.0000141242188 +2.600000 -0.0000059600193 +3.000000 -0.0000023454148 +3.400000 -0.0000008766235 +3.800000 -0.0000002835460 +4.200000 -0.0000000451969 +4.600000 0.0000000467518 +5.000000 0.0000000771245 +5.400000 0.0000000815482 +5.800000 0.0000000758418 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gxz.zl b/test/test_axibrill/gxz.zl new file mode 100644 index 0000000..bd71f9a --- /dev/null +++ b/test/test_axibrill/gxz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000050582828 +-5.400000 -0.0000069047747 +-5.000000 -0.0000096879902 +-4.600000 -0.0000140038570 +-4.200000 -0.0000208935258 +-3.800000 -0.0000322527345 +-3.400000 -0.0000515953094 +-3.000000 -0.0000856341611 +-2.600000 -0.0001474414753 +-2.200000 -0.0002621660374 +-1.800000 -0.0004749668679 +-1.400000 -0.0008384839165 +-1.000000 -0.0012608128810 +-0.600000 -0.0011306513736 +-0.200000 -0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0011306513736 +1.000000 0.0012608128810 +1.400000 0.0008384839166 +1.800000 0.0004749668679 +2.200000 0.0002621660374 +2.600000 0.0001474414753 +3.000000 0.0000856341611 +3.400000 0.0000515953094 +3.800000 0.0000322527345 +4.200000 0.0000208935258 +4.600000 0.0000140038570 +5.000000 0.0000096879902 +5.400000 0.0000069047747 +5.800000 0.0000050582828 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gyy.dl b/test/test_axibrill/gyy.dl new file mode 100644 index 0000000..4a1ae85 --- /dev/null +++ b/test/test_axibrill/gyy.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 1.0023856735186 +-10.045895 1.0032626441986 +-9.353074 1.0045195639580 +-8.660254 1.0063498473223 +-7.967434 1.0090625974322 +-7.274613 1.0131642646003 +-6.581793 1.0195089934184 +-5.888973 1.0295875847258 +-5.196152 1.0461126750901 +-4.503332 1.0742820828953 +-3.810512 1.1247229229642 +-3.117691 1.2209311741832 +-2.424871 1.4187453425114 +-1.732051 1.8403033439414 +-1.039230 2.3930954240335 +-0.346410 1.2712120866607 +0.346410 1.2712120866607 +1.039230 2.3930954240335 +1.732051 1.8403033439414 +2.424871 1.4187453425114 +3.117691 1.2209311741832 +3.810512 1.1247229229642 +4.503332 1.0742820828953 +5.196152 1.0461126750901 +5.888973 1.0295875847258 +6.581793 1.0195089934184 +7.274613 1.0131642646003 +7.967434 1.0090625974322 +8.660254 1.0063498473223 +9.353074 1.0045195639580 +10.045895 1.0032626441986 +10.738715 1.0023856735186 + + +"Time = 0.100000 +-10.738715 1.0023856735186 +-10.045895 1.0032621429018 +-9.353074 1.0045189675285 +-8.660254 1.0063491749091 +-7.967434 1.0090619234994 +-7.274613 1.0131637671915 +-6.581793 1.0195091644179 +-5.888973 1.0295895830741 +-5.196152 1.0461193086744 +-4.503332 1.0743001276570 +-3.810512 1.1247690032299 +-3.117691 1.2210453467923 +-2.424871 1.4190126823698 +-1.732051 1.8406890701277 +-1.039230 2.3922409311558 +-0.346410 1.2713456927855 +0.346410 1.2713456927855 +1.039230 2.3922409311558 +1.732051 1.8406890701277 +2.424871 1.4190126823698 +3.117691 1.2210453467923 +3.810512 1.1247690032299 +4.503332 1.0743001276570 +5.196152 1.0461193086744 +5.888973 1.0295895830741 +6.581793 1.0195091644179 +7.274613 1.0131637671915 +7.967434 1.0090619234994 +8.660254 1.0063491749091 +9.353074 1.0045189675285 +10.045895 1.0032621429018 +10.738715 1.0023856735186 diff --git a/test/test_axibrill/gyy.xl b/test/test_axibrill/gyy.xl new file mode 100644 index 0000000..34d7e93 --- /dev/null +++ b/test/test_axibrill/gyy.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0000768379492 +-5.800000 1.0001125104859 +-5.400000 1.0001680206010 +-5.000000 1.0002566454147 +-4.600000 1.0004024248410 +-4.200000 1.0006507940804 +-3.800000 1.0010920679677 +-3.400000 1.0019167771491 +-3.000000 1.0035559362794 +-2.600000 1.0070657748265 +-2.200000 1.0152644775618 +-1.800000 1.0362100339490 +-1.400000 1.0924526943627 +-1.000000 1.2246912903509 +-0.600000 1.3647061937679 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 1.3647061937679 +1.000000 1.2246912903509 +1.400000 1.0924526943627 +1.800000 1.0362100339490 +2.200000 1.0152644775618 +2.600000 1.0070657748265 +3.000000 1.0035559362794 +3.400000 1.0019167771491 +3.800000 1.0010920679677 +4.200000 1.0006507940804 +4.600000 1.0004024248410 +5.000000 1.0002566454147 +5.400000 1.0001680206010 +5.800000 1.0001125104859 +6.200000 1.0000768379492 + + +"Time = 0.100000 +-6.200000 1.0000768379492 +-5.800000 1.0000560137722 +-5.400000 1.0001027616656 +-5.000000 1.0001820245259 +-4.600000 1.0003190053665 +-4.200000 1.0005609513811 +-3.800000 1.0010022620367 +-3.400000 1.0018398289728 +-3.000000 1.0035148664799 +-2.600000 1.0070938843595 +-2.200000 1.0153873720803 +-1.800000 1.0363548978360 +-1.400000 1.0922282884786 +-1.000000 1.2237724608276 +-0.600000 1.3646339472628 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 1.3646339472628 +1.000000 1.2237724608276 +1.400000 1.0922282884786 +1.800000 1.0363548978360 +2.200000 1.0153873720803 +2.600000 1.0070938843595 +3.000000 1.0035148664799 +3.400000 1.0018398289728 +3.800000 1.0010022620367 +4.200000 1.0005609513811 +4.600000 1.0003190053665 +5.000000 1.0001820245259 +5.400000 1.0001027616656 +5.800000 1.0000560137722 +6.200000 1.0000768379492 diff --git a/test/test_axibrill/gyy.yl b/test/test_axibrill/gyy.yl new file mode 100644 index 0000000..ec4cbf7 --- /dev/null +++ b/test/test_axibrill/gyy.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0738412691888 +-5.800000 1.0946213186040 +-5.400000 1.1224870181122 +-5.000000 1.1604033841592 +-4.600000 1.2128827408884 +-4.200000 1.2870001894417 +-3.800000 1.3942365363301 +-3.400000 1.5539485960944 +-3.000000 1.8000856628758 +-2.600000 2.1941159456763 +-2.200000 2.8470017849757 +-1.800000 3.9330127498710 +-1.400000 5.5301820237739 +-1.000000 6.6172822587716 +-0.600000 4.2823557439107 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 4.2823557439107 +1.000000 6.6172822587716 +1.400000 5.5301820237739 +1.800000 3.9330127498710 +2.200000 2.8470017849757 +2.600000 2.1941159456763 +3.000000 1.8000856628758 +3.400000 1.5539485960944 +3.800000 1.3942365363301 +4.200000 1.2870001894417 +4.600000 1.2128827408884 +5.000000 1.1604033841592 +5.400000 1.1224870181122 +5.800000 1.0946213186040 +6.200000 1.0738412691888 + + +"Time = 0.100000 +-6.200000 1.0738412691888 +-5.800000 1.0947078550417 +-5.400000 1.1225891930270 +-5.000000 1.1605254080256 +-4.600000 1.2130306543370 +-4.200000 1.2871824416840 +-3.800000 1.3944661289803 +-3.400000 1.5542444015561 +-3.000000 1.8004760666107 +-2.600000 2.1946373273790 +-2.200000 2.8476778158887 +-1.800000 3.9336850269090 +-1.400000 5.5297096977908 +-1.000000 6.6142596559607 +-0.600000 4.2823968571863 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 4.2823968571863 +1.000000 6.6142596559607 +1.400000 5.5297096977908 +1.800000 3.9336850269090 +2.200000 2.8476778158887 +2.600000 2.1946373273790 +3.000000 1.8004760666107 +3.400000 1.5542444015561 +3.800000 1.3944661289803 +4.200000 1.2871824416840 +4.600000 1.2130306543370 +5.000000 1.1605254080256 +5.400000 1.1225891930270 +5.800000 1.0947078550417 +6.200000 1.0738412691888 diff --git a/test/test_axibrill/gyy.zl b/test/test_axibrill/gyy.zl new file mode 100644 index 0000000..8cc1e50 --- /dev/null +++ b/test/test_axibrill/gyy.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0000741362054 +-5.800000 1.0001075071087 +-5.400000 1.0001585134092 +-5.000000 1.0002380579864 +-4.600000 1.0003649098749 +-4.200000 1.0005723173776 +-3.800000 1.0009210958471 +-3.400000 1.0015265736288 +-3.000000 1.0026165914830 +-2.600000 1.0046627503185 +-2.200000 1.0086945140148 +-1.800000 1.0170976652738 +-1.400000 1.0357566854906 +-1.000000 1.0797152521783 +-0.600000 1.1798384076565 +-0.200000 1.2712120866607 +0.200000 1.2712120866607 +0.600000 1.1798384076565 +1.000000 1.0797152521783 +1.400000 1.0357566854906 +1.800000 1.0170976652738 +2.200000 1.0086945140148 +2.600000 1.0046627503185 +3.000000 1.0026165914830 +3.400000 1.0015265736288 +3.800000 1.0009210958471 +4.200000 1.0005723173776 +4.600000 1.0003649098749 +5.000000 1.0002380579864 +5.400000 1.0001585134092 +5.800000 1.0001075071087 +6.200000 1.0000741362054 + + +"Time = 0.100000 +-6.200000 1.0000741362054 +-5.800000 1.0000666929878 +-5.400000 1.0001083944206 +-5.000000 1.0001752007912 +-4.600000 1.0002840356382 +-4.200000 1.0004654081661 +-3.800000 1.0007754064764 +-3.400000 1.0013217027171 +-3.000000 1.0023191177119 +-2.600000 1.0042180300259 +-2.200000 1.0080161300419 +-1.800000 1.0160650312357 +-1.400000 1.0342916046090 +-1.000000 1.0780518469549 +-0.600000 1.1788635786404 +-0.200000 1.2713456927855 +0.200000 1.2713456927855 +0.600000 1.1788635786405 +1.000000 1.0780518469549 +1.400000 1.0342916046090 +1.800000 1.0160650312358 +2.200000 1.0080161300419 +2.600000 1.0042180300259 +3.000000 1.0023191177119 +3.400000 1.0013217027171 +3.800000 1.0007754064764 +4.200000 1.0004654081661 +4.600000 1.0002840356382 +5.000000 1.0001752007912 +5.400000 1.0001083944206 +5.800000 1.0000666929878 +6.200000 1.0000741362054 diff --git a/test/test_axibrill/gyz.dl b/test/test_axibrill/gyz.dl new file mode 100644 index 0000000..ff79b56 --- /dev/null +++ b/test/test_axibrill/gyz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 0.0000104304891 +-9.353074 0.0000123282110 +-8.660254 0.0000147062179 +-7.967434 0.0000177350614 +-7.274613 0.0000216227590 +-6.581793 0.0000268250349 +-5.888973 0.0000340839554 +-5.196152 0.0000449653032 +-4.503332 0.0000633301646 +-3.810512 0.0000997908888 +-3.117691 0.0001872750845 +-2.424871 0.0004371167759 +-1.732051 0.0011466109706 +-1.039230 0.0014951805690 +-0.346410 0.0003155871952 +0.346410 0.0003155871952 +1.039230 0.0014951805690 +1.732051 0.0011466109706 +2.424871 0.0004371167759 +3.117691 0.0001872750845 +3.810512 0.0000997908888 +4.503332 0.0000633301646 +5.196152 0.0000449653032 +5.888973 0.0000340839554 +6.581793 0.0000268250349 +7.274613 0.0000216227590 +7.967434 0.0000177350614 +8.660254 0.0000147062179 +9.353074 0.0000123282110 +10.045895 0.0000104304891 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/gyz.xl b/test/test_axibrill/gyz.xl new file mode 100644 index 0000000..8e24688 --- /dev/null +++ b/test/test_axibrill/gyz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000000758418 +-5.400000 0.0000000815482 +-5.000000 0.0000000771245 +-4.600000 0.0000000467518 +-4.200000 -0.0000000451969 +-3.800000 -0.0000002835460 +-3.400000 -0.0000008766235 +-3.000000 -0.0000023454148 +-2.600000 -0.0000059600193 +-2.200000 -0.0000141242188 +-1.800000 -0.0000261180416 +-1.400000 -0.0000066835514 +-1.000000 0.0001378219136 +-0.600000 0.0003217221739 +-0.200000 0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0003217221739 +1.000000 0.0001378219136 +1.400000 -0.0000066835514 +1.800000 -0.0000261180416 +2.200000 -0.0000141242188 +2.600000 -0.0000059600193 +3.000000 -0.0000023454148 +3.400000 -0.0000008766235 +3.800000 -0.0000002835460 +4.200000 -0.0000000451969 +4.600000 0.0000000467518 +5.000000 0.0000000771245 +5.400000 0.0000000815482 +5.800000 0.0000000758418 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gyz.yl b/test/test_axibrill/gyz.yl new file mode 100644 index 0000000..e117ffd --- /dev/null +++ b/test/test_axibrill/gyz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000028212022 +-5.400000 -0.0000032408945 +-5.000000 -0.0000037171906 +-4.600000 -0.0000042597395 +-4.200000 -0.0000049344967 +-3.800000 -0.0000059311633 +-3.400000 -0.0000077983170 +-3.000000 -0.0000120729964 +-2.600000 -0.0000227613290 +-2.200000 -0.0000499025298 +-1.800000 -0.0001150276102 +-1.400000 -0.0002684367238 +-1.000000 -0.0006457552941 +-0.600000 -0.0009064046052 +-0.200000 -0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0009064046052 +1.000000 0.0006457552941 +1.400000 0.0002684367238 +1.800000 0.0001150276102 +2.200000 0.0000499025298 +2.600000 0.0000227613290 +3.000000 0.0000120729964 +3.400000 0.0000077983170 +3.800000 0.0000059311633 +4.200000 0.0000049344967 +4.600000 0.0000042597395 +5.000000 0.0000037171906 +5.400000 0.0000032408945 +5.800000 0.0000028212022 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gyz.zl b/test/test_axibrill/gyz.zl new file mode 100644 index 0000000..bd71f9a --- /dev/null +++ b/test/test_axibrill/gyz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000050582828 +-5.400000 -0.0000069047747 +-5.000000 -0.0000096879902 +-4.600000 -0.0000140038570 +-4.200000 -0.0000208935258 +-3.800000 -0.0000322527345 +-3.400000 -0.0000515953094 +-3.000000 -0.0000856341611 +-2.600000 -0.0001474414753 +-2.200000 -0.0002621660374 +-1.800000 -0.0004749668679 +-1.400000 -0.0008384839165 +-1.000000 -0.0012608128810 +-0.600000 -0.0011306513736 +-0.200000 -0.0003155871952 +0.200000 0.0003155871952 +0.600000 0.0011306513736 +1.000000 0.0012608128810 +1.400000 0.0008384839166 +1.800000 0.0004749668679 +2.200000 0.0002621660374 +2.600000 0.0001474414753 +3.000000 0.0000856341611 +3.400000 0.0000515953094 +3.800000 0.0000322527345 +4.200000 0.0000208935258 +4.600000 0.0000140038570 +5.000000 0.0000096879902 +5.400000 0.0000069047747 +5.800000 0.0000050582828 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/gzz.dl b/test/test_axibrill/gzz.dl new file mode 100644 index 0000000..1bc84ed --- /dev/null +++ b/test/test_axibrill/gzz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 1.0047713470372 +-10.045895 1.0065252883972 +-9.353074 1.0090391279161 +-8.660254 1.0126996946446 +-7.967434 1.0181251948643 +-7.274613 1.0263285292007 +-6.581793 1.0390179868368 +-5.888973 1.0591751694516 +-5.196152 1.0922253501803 +-4.503332 1.1485641657906 +-3.810512 1.2494458459285 +-3.117691 1.4418623483665 +-2.424871 1.8374906850228 +-1.732051 2.6806066878829 +-1.039230 3.7861908480670 +-0.346410 1.5424241733214 +0.346410 1.5424241733214 +1.039230 3.7861908480670 +1.732051 2.6806066878829 +2.424871 1.8374906850228 +3.117691 1.4418623483665 +3.810512 1.2494458459285 +4.503332 1.1485641657906 +5.196152 1.0922253501803 +5.888973 1.0591751694516 +6.581793 1.0390179868368 +7.274613 1.0263285292007 +7.967434 1.0181251948643 +8.660254 1.0126996946446 +9.353074 1.0090391279161 +10.045895 1.0065252883972 +10.738715 1.0047713470372 + + +"Time = 0.100000 +-10.738715 1.0047713470372 +-10.045895 1.0065263547771 +-9.353074 1.0090404256532 +-8.660254 1.0127012444856 +-7.967434 1.0181269703370 +-7.274613 1.0263303124036 +-6.581793 1.0390192572428 +-5.888973 1.0591745382898 +-5.196152 1.0922194069951 +-4.503332 1.1485446699858 +-3.810512 1.2493928161895 +-3.117691 1.4417269190318 +-2.424871 1.8371569769718 +-1.732051 2.6797345468483 +-1.039230 3.7844911147382 +-0.346410 1.5424209549057 +0.346410 1.5424209549057 +1.039230 3.7844911147383 +1.732051 2.6797345468483 +2.424871 1.8371569769718 +3.117691 1.4417269190318 +3.810512 1.2493928161895 +4.503332 1.1485446699858 +5.196152 1.0922194069951 +5.888973 1.0591745382898 +6.581793 1.0390192572428 +7.274613 1.0263303124036 +7.967434 1.0181269703370 +8.660254 1.0127012444856 +9.353074 1.0090404256532 +10.045895 1.0065263547771 +10.738715 1.0047713470372 diff --git a/test/test_axibrill/gzz.xl b/test/test_axibrill/gzz.xl new file mode 100644 index 0000000..27114bc --- /dev/null +++ b/test/test_axibrill/gzz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0739181071380 +-5.800000 1.0947338290899 +-5.400000 1.1226550387132 +-5.000000 1.1606600295738 +-4.600000 1.2132851657294 +-4.200000 1.2876509835220 +-3.800000 1.3953286042978 +-3.400000 1.5558653732435 +-3.000000 1.8036415991553 +-2.600000 2.2011817205028 +-2.200000 2.8622662625375 +-1.800000 3.9692227838200 +-1.400000 5.6226347181366 +-1.000000 6.8419735491225 +-0.600000 4.6470619376786 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 4.6470619376786 +1.000000 6.8419735491225 +1.400000 5.6226347181366 +1.800000 3.9692227838200 +2.200000 2.8622662625375 +2.600000 2.2011817205028 +3.000000 1.8036415991553 +3.400000 1.5558653732435 +3.800000 1.3953286042978 +4.200000 1.2876509835220 +4.600000 1.2132851657294 +5.000000 1.1606600295738 +5.400000 1.1226550387132 +5.800000 1.0947338290899 +6.200000 1.0739181071380 + + +"Time = 0.100000 +-6.200000 1.0739181071380 +-5.800000 1.0947143047788 +-5.400000 1.1226338472751 +-5.000000 1.1606361506609 +-4.600000 1.2132566226526 +-4.200000 1.2876129632774 +-3.800000 1.3952711694185 +-3.400000 1.5557664035536 +-3.000000 1.8034539371645 +-2.600000 2.2008038323422 +-2.200000 2.8614854004588 +-1.800000 3.9675615381438 +-1.400000 5.6188304434618 +-1.000000 6.8361535302706 +-0.600000 4.6465979692199 +-0.200000 1.5424209549057 +0.200000 1.5424209549057 +0.600000 4.6465979692199 +1.000000 6.8361535302706 +1.400000 5.6188304434618 +1.800000 3.9675615381438 +2.200000 2.8614854004588 +2.600000 2.2008038323422 +3.000000 1.8034539371645 +3.400000 1.5557664035536 +3.800000 1.3952711694185 +4.200000 1.2876129632774 +4.600000 1.2132566226526 +5.000000 1.1606361506609 +5.400000 1.1226338472751 +5.800000 1.0947143047788 +6.200000 1.0739181071380 diff --git a/test/test_axibrill/gzz.yl b/test/test_axibrill/gzz.yl new file mode 100644 index 0000000..27114bc --- /dev/null +++ b/test/test_axibrill/gzz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0739181071380 +-5.800000 1.0947338290899 +-5.400000 1.1226550387132 +-5.000000 1.1606600295738 +-4.600000 1.2132851657294 +-4.200000 1.2876509835220 +-3.800000 1.3953286042978 +-3.400000 1.5558653732435 +-3.000000 1.8036415991553 +-2.600000 2.2011817205028 +-2.200000 2.8622662625375 +-1.800000 3.9692227838200 +-1.400000 5.6226347181366 +-1.000000 6.8419735491225 +-0.600000 4.6470619376786 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 4.6470619376786 +1.000000 6.8419735491225 +1.400000 5.6226347181366 +1.800000 3.9692227838200 +2.200000 2.8622662625375 +2.600000 2.2011817205028 +3.000000 1.8036415991553 +3.400000 1.5558653732435 +3.800000 1.3953286042978 +4.200000 1.2876509835220 +4.600000 1.2132851657294 +5.000000 1.1606600295738 +5.400000 1.1226550387132 +5.800000 1.0947338290899 +6.200000 1.0739181071380 + + +"Time = 0.100000 +-6.200000 1.0739181071380 +-5.800000 1.0947143047788 +-5.400000 1.1226338472751 +-5.000000 1.1606361506609 +-4.600000 1.2132566226526 +-4.200000 1.2876129632774 +-3.800000 1.3952711694185 +-3.400000 1.5557664035536 +-3.000000 1.8034539371645 +-2.600000 2.2008038323422 +-2.200000 2.8614854004588 +-1.800000 3.9675615381438 +-1.400000 5.6188304434618 +-1.000000 6.8361535302706 +-0.600000 4.6465979692199 +-0.200000 1.5424209549057 +0.200000 1.5424209549057 +0.600000 4.6465979692199 +1.000000 6.8361535302706 +1.400000 5.6188304434618 +1.800000 3.9675615381438 +2.200000 2.8614854004588 +2.600000 2.2008038323422 +3.000000 1.8034539371645 +3.400000 1.5557664035536 +3.800000 1.3952711694185 +4.200000 1.2876129632774 +4.600000 1.2132566226526 +5.000000 1.1606361506609 +5.400000 1.1226338472751 +5.800000 1.0947143047788 +6.200000 1.0739181071380 diff --git a/test/test_axibrill/gzz.zl b/test/test_axibrill/gzz.zl new file mode 100644 index 0000000..5bc21ee --- /dev/null +++ b/test/test_axibrill/gzz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 1.0001482724109 +-5.800000 1.0002150142174 +-5.400000 1.0003170268183 +-5.000000 1.0004761159728 +-4.600000 1.0007298197498 +-4.200000 1.0011446347552 +-3.800000 1.0018421916942 +-3.400000 1.0030531472576 +-3.000000 1.0052331829660 +-2.600000 1.0093255006370 +-2.200000 1.0173890280296 +-1.800000 1.0341953305475 +-1.400000 1.0715133709812 +-1.000000 1.1594305043567 +-0.600000 1.3596768153129 +-0.200000 1.5424241733214 +0.200000 1.5424241733214 +0.600000 1.3596768153129 +1.000000 1.1594305043567 +1.400000 1.0715133709812 +1.800000 1.0341953305475 +2.200000 1.0173890280296 +2.600000 1.0093255006370 +3.000000 1.0052331829660 +3.400000 1.0030531472576 +3.800000 1.0018421916942 +4.200000 1.0011446347552 +4.600000 1.0007298197498 +5.000000 1.0004761159728 +5.400000 1.0003170268183 +5.800000 1.0002150142174 +6.200000 1.0001482724109 + + +"Time = 0.100000 +-6.200000 1.0001482724109 +-5.800000 1.0002964775119 +-5.400000 1.0004171191347 +-5.000000 1.0006018400763 +-4.600000 1.0008915551420 +-4.200000 1.0013586026703 +-3.800000 1.0021340900956 +-3.400000 1.0034648361384 +-3.000000 1.0058337655154 +-2.600000 1.0102299694147 +-2.200000 1.0187833024910 +-1.800000 1.0363470786027 +-1.400000 1.0746650529506 +-1.000000 1.1631367226199 +-0.600000 1.3618665084454 +-0.200000 1.5424209549057 +0.200000 1.5424209549057 +0.600000 1.3618665084455 +1.000000 1.1631367226199 +1.400000 1.0746650529507 +1.800000 1.0363470786027 +2.200000 1.0187833024911 +2.600000 1.0102299694147 +3.000000 1.0058337655154 +3.400000 1.0034648361384 +3.800000 1.0021340900956 +4.200000 1.0013586026703 +4.600000 1.0008915551420 +5.000000 1.0006018400763 +5.400000 1.0004171191347 +5.800000 1.0002964775119 +6.200000 1.0001482724109 diff --git a/test/test_axibrill/ham.dl b/test/test_axibrill/ham.dl new file mode 100644 index 0000000..79394b7 --- /dev/null +++ b/test/test_axibrill/ham.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000014638458 +-10.045895 0.0000014638458 +-9.353074 0.0000027732580 +-8.660254 0.0000025965139 +-7.967434 -0.0000011910462 +-7.274613 -0.0000016372592 +-6.581793 -0.0000122980250 +-5.888973 -0.0000383358252 +-5.196152 -0.0001136516764 +-4.503332 -0.0003382162841 +-3.810512 -0.0010617974835 +-3.117691 -0.0033606404519 +-2.424871 -0.0096004990825 +-1.732051 0.0034069976715 +-1.039230 0.1538123810766 +-0.346410 -0.0221673852299 +0.346410 -0.0221673852309 +1.039230 0.1538123810761 +1.732051 0.0034069976697 +2.424871 -0.0096004990838 +3.117691 -0.0033606404525 +3.810512 -0.0010617974838 +4.503332 -0.0003382162842 +5.196152 -0.0001136516764 +5.888973 -0.0000383358251 +6.581793 -0.0000122980250 +7.274613 -0.0000016372591 +7.967434 -0.0000011910461 +8.660254 0.0000025965140 +9.353074 0.0000027732580 +10.045895 0.0000014638459 +10.738715 0.0000014638459 + + +"Time = 0.100000 +-10.738715 0.0000657593891 +-10.045895 0.0000657593891 +-9.353074 0.0000025219341 +-8.660254 0.0000023355660 +-7.967434 -0.0000007710912 +-7.274613 -0.0000021420661 +-6.581793 -0.0000124931663 +-5.888973 -0.0000388749656 +-5.196152 -0.0001137204525 +-4.503332 -0.0003397398652 +-3.810512 -0.0010635039815 +-3.117691 -0.0033524660406 +-2.424871 -0.0095207194483 +-1.732051 0.0035981784656 +-1.039230 0.1525897284426 +-0.346410 -0.0221919291661 +0.346410 -0.0221919291671 +1.039230 0.1525897284420 +1.732051 0.0035981784637 +2.424871 -0.0095207194496 +3.117691 -0.0033524660413 +3.810512 -0.0010635039818 +4.503332 -0.0003397398652 +5.196152 -0.0001137204525 +5.888973 -0.0000388749655 +6.581793 -0.0000124931663 +7.274613 -0.0000021420660 +7.967434 -0.0000007710911 +8.660254 0.0000023355661 +9.353074 0.0000025219342 +10.045895 0.0000657593892 +10.738715 0.0000657593892 diff --git a/test/test_axibrill/ham.xl b/test/test_axibrill/ham.xl new file mode 100644 index 0000000..ec1b160 --- /dev/null +++ b/test/test_axibrill/ham.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 -0.0004701400616 +-5.800000 -0.0004701400616 +-5.400000 -0.0006850877676 +-5.000000 -0.0009893337733 +-4.600000 -0.0014885165236 +-4.200000 -0.0022019181612 +-3.800000 -0.0033291810551 +-3.400000 -0.0049008135377 +-3.000000 -0.0070206669498 +-2.600000 -0.0090947801163 +-2.200000 -0.0081724314365 +-1.800000 0.0108961958208 +-1.400000 0.0968245922535 +-1.000000 0.2157354391563 +-0.600000 0.0228877969333 +-0.200000 -0.0221673852309 +0.200000 -0.0221673852309 +0.600000 0.0228877969333 +1.000000 0.2157354391563 +1.400000 0.0968245922535 +1.800000 0.0108961958208 +2.200000 -0.0081724314365 +2.600000 -0.0090947801163 +3.000000 -0.0070206669498 +3.400000 -0.0049008135377 +3.800000 -0.0033291810551 +4.200000 -0.0022019181612 +4.600000 -0.0014885165236 +5.000000 -0.0009893337733 +5.400000 -0.0006850877676 +5.800000 -0.0004701400616 +6.200000 -0.0004701400616 + + +"Time = 0.100000 +-6.200000 -0.0007173815468 +-5.800000 -0.0007173815468 +-5.400000 -0.0006845652019 +-5.000000 -0.0009901663786 +-4.600000 -0.0014872816184 +-4.200000 -0.0022033172533 +-3.800000 -0.0033266691541 +-3.400000 -0.0048941424669 +-3.000000 -0.0070044028964 +-2.600000 -0.0090615783225 +-2.200000 -0.0081048753384 +-1.800000 0.0107201891040 +-1.400000 0.0952387529008 +-1.000000 0.2141614200826 +-0.600000 0.0236059453050 +-0.200000 -0.0221919291671 +0.200000 -0.0221919291671 +0.600000 0.0236059453050 +1.000000 0.2141614200826 +1.400000 0.0952387529007 +1.800000 0.0107201891040 +2.200000 -0.0081048753384 +2.600000 -0.0090615783225 +3.000000 -0.0070044028964 +3.400000 -0.0048941424669 +3.800000 -0.0033266691541 +4.200000 -0.0022033172533 +4.600000 -0.0014872816184 +5.000000 -0.0009901663786 +5.400000 -0.0006845652019 +5.800000 -0.0007173815468 +6.200000 -0.0007173815468 diff --git a/test/test_axibrill/ham.yl b/test/test_axibrill/ham.yl new file mode 100644 index 0000000..ec1b160 --- /dev/null +++ b/test/test_axibrill/ham.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 -0.0004701400616 +-5.800000 -0.0004701400616 +-5.400000 -0.0006850877676 +-5.000000 -0.0009893337733 +-4.600000 -0.0014885165236 +-4.200000 -0.0022019181612 +-3.800000 -0.0033291810551 +-3.400000 -0.0049008135377 +-3.000000 -0.0070206669498 +-2.600000 -0.0090947801163 +-2.200000 -0.0081724314365 +-1.800000 0.0108961958208 +-1.400000 0.0968245922535 +-1.000000 0.2157354391563 +-0.600000 0.0228877969333 +-0.200000 -0.0221673852309 +0.200000 -0.0221673852309 +0.600000 0.0228877969333 +1.000000 0.2157354391563 +1.400000 0.0968245922535 +1.800000 0.0108961958208 +2.200000 -0.0081724314365 +2.600000 -0.0090947801163 +3.000000 -0.0070206669498 +3.400000 -0.0049008135377 +3.800000 -0.0033291810551 +4.200000 -0.0022019181612 +4.600000 -0.0014885165236 +5.000000 -0.0009893337733 +5.400000 -0.0006850877676 +5.800000 -0.0004701400616 +6.200000 -0.0004701400616 + + +"Time = 0.100000 +-6.200000 -0.0007173815468 +-5.800000 -0.0007173815468 +-5.400000 -0.0006845652019 +-5.000000 -0.0009901663786 +-4.600000 -0.0014872816184 +-4.200000 -0.0022033172533 +-3.800000 -0.0033266691541 +-3.400000 -0.0048941424669 +-3.000000 -0.0070044028964 +-2.600000 -0.0090615783225 +-2.200000 -0.0081048753384 +-1.800000 0.0107201891040 +-1.400000 0.0952387529008 +-1.000000 0.2141614200826 +-0.600000 0.0236059453050 +-0.200000 -0.0221919291671 +0.200000 -0.0221919291671 +0.600000 0.0236059453050 +1.000000 0.2141614200826 +1.400000 0.0952387529007 +1.800000 0.0107201891040 +2.200000 -0.0081048753384 +2.600000 -0.0090615783225 +3.000000 -0.0070044028964 +3.400000 -0.0048941424669 +3.800000 -0.0033266691541 +4.200000 -0.0022033172533 +4.600000 -0.0014872816184 +5.000000 -0.0009901663786 +5.400000 -0.0006845652019 +5.800000 -0.0007173815468 +6.200000 -0.0007173815468 diff --git a/test/test_axibrill/ham.zl b/test/test_axibrill/ham.zl new file mode 100644 index 0000000..617a8b1 --- /dev/null +++ b/test/test_axibrill/ham.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000173742585 +-5.800000 0.0000173742585 +-5.400000 0.0000161623847 +-5.000000 0.0000020491782 +-4.600000 0.0000072742932 +-4.200000 -0.0000025338727 +-3.800000 -0.0000246116104 +-3.400000 -0.0001304158449 +-3.000000 -0.0004016490484 +-2.600000 -0.0010650193679 +-2.200000 -0.0024837160856 +-1.800000 -0.0048083487612 +-1.400000 -0.0105719796391 +-1.000000 -0.0103812389671 +-0.600000 0.0008300963546 +-0.200000 -0.0221673852299 +0.200000 -0.0221673852309 +0.600000 0.0008300963449 +1.000000 -0.0103812389699 +1.400000 -0.0105719796526 +1.800000 -0.0048083487722 +2.200000 -0.0024837160913 +2.600000 -0.0010650193708 +3.000000 -0.0004016490499 +3.400000 -0.0001304158455 +3.800000 -0.0000246116107 +4.200000 -0.0000025338728 +4.600000 0.0000072742932 +5.000000 0.0000020491782 +5.400000 0.0000161623847 +5.800000 0.0000173742585 +6.200000 0.0000173742585 + + +"Time = 0.100000 +-6.200000 -0.0002727532280 +-5.800000 -0.0002727532280 +-5.400000 0.0000163121128 +-5.000000 0.0000026075888 +-4.600000 0.0000049959260 +-4.200000 -0.0000074430803 +-3.800000 -0.0000358051660 +-3.400000 -0.0001470636651 +-3.000000 -0.0004257977552 +-2.600000 -0.0010930786067 +-2.200000 -0.0024587148782 +-1.800000 -0.0046600555456 +-1.400000 -0.0097776796970 +-1.000000 -0.0090358360400 +-0.600000 0.0012574988237 +-0.200000 -0.0221919291661 +0.200000 -0.0221919291671 +0.600000 0.0012574988142 +1.000000 -0.0090358360427 +1.400000 -0.0097776797103 +1.800000 -0.0046600555563 +2.200000 -0.0024587148839 +2.600000 -0.0010930786096 +3.000000 -0.0004257977566 +3.400000 -0.0001470636658 +3.800000 -0.0000358051664 +4.200000 -0.0000074430804 +4.600000 0.0000049959259 +5.000000 0.0000026075888 +5.400000 0.0000163121128 +5.800000 -0.0002727532280 +6.200000 -0.0002727532280 diff --git a/test/test_axibrill/kxx.dl b/test/test_axibrill/kxx.dl new file mode 100644 index 0000000..36cf301 --- /dev/null +++ b/test/test_axibrill/kxx.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 0.0000085705736 +-9.353074 0.0000086277422 +-8.660254 0.0000099847810 +-7.967434 0.0000103198532 +-7.274613 0.0000078479308 +-6.581793 -0.0000028871091 +-5.888973 -0.0000346640697 +-5.196152 -0.0001211110753 +-4.503332 -0.0003500907689 +-3.810512 -0.0009587573051 +-3.117691 -0.0025750272658 +-2.424871 -0.0066670406042 +-1.732051 -0.0115173567012 +-1.039230 0.0474704656402 +-0.346410 -0.2159908706856 +0.346410 -0.2159908706949 +1.039230 0.0474704656391 +1.732051 -0.0115173567015 +2.424871 -0.0066670406043 +3.117691 -0.0025750272658 +3.810512 -0.0009587573051 +4.503332 -0.0003500907689 +5.196152 -0.0001211110753 +5.888973 -0.0000346640697 +6.581793 -0.0000028871091 +7.274613 0.0000078479308 +7.967434 0.0000103198532 +8.660254 0.0000099847810 +9.353074 0.0000086277422 +10.045895 0.0000085705736 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kxx.xl b/test/test_axibrill/kxx.xl new file mode 100644 index 0000000..3174e3f --- /dev/null +++ b/test/test_axibrill/kxx.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0015197947238 +-5.400000 -0.0018322768222 +-5.000000 -0.0022559661066 +-4.600000 -0.0028244181236 +-4.200000 -0.0035991059530 +-3.800000 -0.0046927179501 +-3.400000 -0.0062576525416 +-3.000000 -0.0085423304523 +-2.600000 -0.0117947275939 +-2.200000 -0.0158838676806 +-1.800000 -0.0168268845659 +-1.400000 0.0134236805909 +-1.000000 0.1363708129324 +-0.600000 -0.0055454807000 +-0.200000 -0.2159908706949 +0.200000 -0.2159908706949 +0.600000 -0.0055454807000 +1.000000 0.1363708129324 +1.400000 0.0134236805909 +1.800000 -0.0168268845659 +2.200000 -0.0158838676806 +2.600000 -0.0117947275939 +3.000000 -0.0085423304523 +3.400000 -0.0062576525416 +3.800000 -0.0046927179501 +4.200000 -0.0035991059530 +4.600000 -0.0028244181236 +5.000000 -0.0022559661066 +5.400000 -0.0018322768222 +5.800000 -0.0015197947238 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxx.yl b/test/test_axibrill/kxx.yl new file mode 100644 index 0000000..5016752 --- /dev/null +++ b/test/test_axibrill/kxx.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0009763104407 +-5.400000 0.0011698404956 +-5.000000 0.0013788092879 +-4.600000 0.0015918427986 +-4.200000 0.0017724560880 +-3.800000 0.0018333521556 +-3.400000 0.0016251531446 +-3.000000 0.0008961293712 +-2.600000 -0.0006375099145 +-2.200000 -0.0028897206129 +-1.800000 -0.0036405719054 +-1.400000 0.0064347647757 +-1.000000 0.0414853926180 +-0.600000 0.0111941003027 +-0.200000 -0.2159908706949 +0.200000 -0.2159908706949 +0.600000 0.0111941003027 +1.000000 0.0414853926180 +1.400000 0.0064347647757 +1.800000 -0.0036405719054 +2.200000 -0.0028897206129 +2.600000 -0.0006375099145 +3.000000 0.0008961293712 +3.400000 0.0016251531446 +3.800000 0.0018333521556 +4.200000 0.0017724560880 +4.600000 0.0015918427986 +5.000000 0.0013788092879 +5.400000 0.0011698404956 +5.800000 0.0009763104407 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxx.zl b/test/test_axibrill/kxx.zl new file mode 100644 index 0000000..c2b5d8c --- /dev/null +++ b/test/test_axibrill/kxx.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0007006734549 +-5.400000 0.0008972695723 +-5.000000 0.0011678088980 +-4.600000 0.0015677084497 +-4.200000 0.0021755439579 +-3.800000 0.0031378726152 +-3.400000 0.0047188392430 +-3.000000 0.0074338163184 +-2.600000 0.0123080307489 +-2.200000 0.0214841667872 +-1.800000 0.0395115266094 +-1.400000 0.0749484466294 +-1.000000 0.1407518820991 +-0.600000 0.2212209361939 +-0.200000 -0.2159908706856 +0.200000 -0.2159908706949 +0.600000 0.2212209361848 +1.000000 0.1407518820987 +1.400000 0.0749484466270 +1.800000 0.0395115266079 +2.200000 0.0214841667865 +2.600000 0.0123080307485 +3.000000 0.0074338163183 +3.400000 0.0047188392429 +3.800000 0.0031378726151 +4.200000 0.0021755439578 +4.600000 0.0015677084496 +5.000000 0.0011678088980 +5.400000 0.0008972695722 +5.800000 0.0007006734549 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxy.dl b/test/test_axibrill/kxy.dl new file mode 100644 index 0000000..e42e46b --- /dev/null +++ b/test/test_axibrill/kxy.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 -0.0001607656272 +-9.353074 -0.0002043062003 +-8.660254 -0.0002609410203 +-7.967434 -0.0003409997084 +-7.274613 -0.0004571708596 +-6.581793 -0.0006310589271 +-5.888973 -0.0008989323378 +-5.196152 -0.0013229452361 +-4.503332 -0.0020071146078 +-3.810512 -0.0031133563523 +-3.117691 -0.0048431623453 +-2.424871 -0.0074056261850 +-1.732051 -0.0113972068263 +-1.039230 -0.0009622358586 +-0.346410 0.0162143152080 +0.346410 0.0162143152054 +1.039230 -0.0009622358593 +1.732051 -0.0113972068263 +2.424871 -0.0074056261850 +3.117691 -0.0048431623453 +3.810512 -0.0031133563523 +4.503332 -0.0020071146078 +5.196152 -0.0013229452361 +5.888973 -0.0008989323378 +6.581793 -0.0006310589271 +7.274613 -0.0004571708596 +7.967434 -0.0003409997084 +8.660254 -0.0002609410203 +9.353074 -0.0002043062003 +10.045895 -0.0001607656272 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kxy.xl b/test/test_axibrill/kxy.xl new file mode 100644 index 0000000..d1b8523 --- /dev/null +++ b/test/test_axibrill/kxy.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000870027403 +-5.400000 0.0001129589476 +-5.000000 0.0001485498545 +-4.600000 0.0001978771376 +-4.200000 0.0002671814956 +-3.800000 0.0003665725087 +-3.400000 0.0005121156065 +-3.000000 0.0007318733645 +-2.600000 0.0010642072393 +-2.200000 0.0014947638977 +-1.800000 0.0014271696868 +-1.400000 -0.0026102624695 +-1.000000 -0.0168340778645 +-0.600000 0.0237414107936 +-0.200000 -0.0162143152054 +0.200000 0.0162143152054 +0.600000 -0.0237414107936 +1.000000 0.0168340778645 +1.400000 0.0026102624695 +1.800000 -0.0014271696868 +2.200000 -0.0014947638977 +2.600000 -0.0010642072393 +3.000000 -0.0007318733645 +3.400000 -0.0005121156065 +3.800000 -0.0003665725087 +4.200000 -0.0002671814956 +4.600000 -0.0001978771376 +5.000000 -0.0001485498545 +5.400000 -0.0001129589476 +5.800000 -0.0000870027403 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxy.yl b/test/test_axibrill/kxy.yl new file mode 100644 index 0000000..d1b8523 --- /dev/null +++ b/test/test_axibrill/kxy.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000870027403 +-5.400000 0.0001129589476 +-5.000000 0.0001485498545 +-4.600000 0.0001978771376 +-4.200000 0.0002671814956 +-3.800000 0.0003665725087 +-3.400000 0.0005121156065 +-3.000000 0.0007318733645 +-2.600000 0.0010642072393 +-2.200000 0.0014947638977 +-1.800000 0.0014271696868 +-1.400000 -0.0026102624695 +-1.000000 -0.0168340778645 +-0.600000 0.0237414107936 +-0.200000 -0.0162143152054 +0.200000 0.0162143152054 +0.600000 -0.0237414107936 +1.000000 0.0168340778645 +1.400000 0.0026102624695 +1.800000 -0.0014271696868 +2.200000 -0.0014947638977 +2.600000 -0.0010642072393 +3.000000 -0.0007318733645 +3.400000 -0.0005121156065 +3.800000 -0.0003665725087 +4.200000 -0.0002671814956 +4.600000 -0.0001978771376 +5.000000 -0.0001485498545 +5.400000 -0.0001129589476 +5.800000 -0.0000870027403 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxy.zl b/test/test_axibrill/kxy.zl new file mode 100644 index 0000000..b1fbade --- /dev/null +++ b/test/test_axibrill/kxy.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000045665970 +-5.400000 -0.0000070830040 +-5.000000 -0.0000112281819 +-4.600000 -0.0000183778308 +-4.200000 -0.0000311545132 +-3.800000 -0.0000549552408 +-3.400000 -0.0001011428415 +-3.000000 -0.0001944945494 +-2.600000 -0.0003896886732 +-2.200000 -0.0008022042095 +-1.800000 -0.0016104565632 +-1.400000 -0.0024913224279 +-1.000000 0.0031222815469 +-0.600000 0.0622456281486 +-0.200000 0.0162143152080 +0.200000 0.0162143152054 +0.600000 0.0622456281462 +1.000000 0.0031222815476 +1.400000 -0.0024913224283 +1.800000 -0.0016104565634 +2.200000 -0.0008022042096 +2.600000 -0.0003896886732 +3.000000 -0.0001944945494 +3.400000 -0.0001011428415 +3.800000 -0.0000549552408 +4.200000 -0.0000311545132 +4.600000 -0.0000183778308 +5.000000 -0.0000112281819 +5.400000 -0.0000070830040 +5.800000 -0.0000045665970 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxz.dl b/test/test_axibrill/kxz.dl new file mode 100644 index 0000000..c0ababb --- /dev/null +++ b/test/test_axibrill/kxz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 -0.0001451697127 +-9.353074 -0.0001785994722 +-8.660254 -0.0002187556839 +-7.967434 -0.0002718043767 +-7.274613 -0.0003431328848 +-6.581793 -0.0004429176778 +-5.888973 -0.0005891645479 +-5.196152 -0.0008197569962 +-4.503332 -0.0012277415407 +-3.810512 -0.0020763136843 +-3.117691 -0.0042272636040 +-2.424871 -0.0109164787198 +-1.732051 -0.0342037883380 +-1.039230 -0.0838783710283 +-0.346410 -0.5098301979927 +0.346410 -0.5098301979908 +1.039230 -0.0838783710287 +1.732051 -0.0342037883381 +2.424871 -0.0109164787198 +3.117691 -0.0042272636040 +3.810512 -0.0020763136843 +4.503332 -0.0012277415407 +5.196152 -0.0008197569962 +5.888973 -0.0005891645479 +6.581793 -0.0004429176778 +7.274613 -0.0003431328848 +7.967434 -0.0002718043767 +8.660254 -0.0002187556839 +9.353074 -0.0001785994722 +10.045895 -0.0001451697127 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kxz.xl b/test/test_axibrill/kxz.xl new file mode 100644 index 0000000..dab385e --- /dev/null +++ b/test/test_axibrill/kxz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000491550568 +-5.400000 0.0000581292210 +-5.000000 0.0000687507059 +-4.600000 0.0000814000721 +-4.200000 0.0000975753642 +-3.800000 0.0001215203941 +-3.400000 0.0001655679742 +-3.000000 0.0002654274560 +-2.600000 0.0005178712368 +-2.200000 0.0011802408142 +-1.800000 0.0028957627860 +-1.400000 0.0078811502875 +-1.000000 0.0293884693404 +-0.600000 0.1365262666164 +-0.200000 0.5098301979908 +0.200000 -0.5098301979908 +0.600000 -0.1365262666164 +1.000000 -0.0293884693404 +1.400000 -0.0078811502875 +1.800000 -0.0028957627860 +2.200000 -0.0011802408142 +2.600000 -0.0005178712368 +3.000000 -0.0002654274560 +3.400000 -0.0001655679742 +3.800000 -0.0001215203941 +4.200000 -0.0000975753642 +4.600000 -0.0000814000721 +5.000000 -0.0000687507059 +5.400000 -0.0000581292210 +5.800000 -0.0000491550568 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxz.yl b/test/test_axibrill/kxz.yl new file mode 100644 index 0000000..8040149 --- /dev/null +++ b/test/test_axibrill/kxz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000013084786 +-5.400000 -0.0000014616840 +-5.000000 -0.0000014244660 +-4.600000 -0.0000008905245 +-4.200000 0.0000008970585 +-3.800000 0.0000058023876 +-3.400000 0.0000185286609 +-3.000000 0.0000512435980 +-2.600000 0.0001345171776 +-2.200000 0.0003303990952 +-1.800000 0.0006482629046 +-1.400000 0.0001873331152 +-1.000000 -0.0062622014369 +-0.600000 -0.0484421382535 +-0.200000 -0.5098301979908 +0.200000 -0.5098301979908 +0.600000 -0.0484421382535 +1.000000 -0.0062622014369 +1.400000 0.0001873331152 +1.800000 0.0006482629046 +2.200000 0.0003303990952 +2.600000 0.0001345171776 +3.000000 0.0000512435980 +3.400000 0.0000185286609 +3.800000 0.0000058023876 +4.200000 0.0000008970585 +4.600000 -0.0000008905245 +5.000000 -0.0000014244660 +5.400000 -0.0000014616840 +5.800000 -0.0000013084786 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kxz.zl b/test/test_axibrill/kxz.zl new file mode 100644 index 0000000..259f6e3 --- /dev/null +++ b/test/test_axibrill/kxz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000876451202 +-5.400000 0.0001236316832 +-5.000000 0.0001800116729 +-4.600000 0.0002715082599 +-4.200000 0.0004252744511 +-3.800000 0.0006948887984 +-3.400000 0.0011888574292 +-3.000000 0.0021410060426 +-2.600000 0.0040833867205 +-2.200000 0.0083105238803 +-1.800000 0.0182031061767 +-1.400000 0.0429939633109 +-1.000000 0.1069777567559 +-0.600000 0.2569884409012 +-0.200000 0.5098301979927 +0.200000 -0.5098301979908 +0.600000 -0.2569884409010 +1.000000 -0.1069777567563 +1.400000 -0.0429939633107 +1.800000 -0.0182031061766 +2.200000 -0.0083105238803 +2.600000 -0.0040833867205 +3.000000 -0.0021410060426 +3.400000 -0.0011888574291 +3.800000 -0.0006948887984 +4.200000 -0.0004252744511 +4.600000 -0.0002715082598 +5.000000 -0.0001800116729 +5.400000 -0.0001236316832 +5.800000 -0.0000876451202 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyy.dl b/test/test_axibrill/kyy.dl new file mode 100644 index 0000000..36cf301 --- /dev/null +++ b/test/test_axibrill/kyy.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 0.0000085705736 +-9.353074 0.0000086277422 +-8.660254 0.0000099847810 +-7.967434 0.0000103198532 +-7.274613 0.0000078479308 +-6.581793 -0.0000028871091 +-5.888973 -0.0000346640697 +-5.196152 -0.0001211110753 +-4.503332 -0.0003500907689 +-3.810512 -0.0009587573051 +-3.117691 -0.0025750272658 +-2.424871 -0.0066670406042 +-1.732051 -0.0115173567012 +-1.039230 0.0474704656402 +-0.346410 -0.2159908706856 +0.346410 -0.2159908706949 +1.039230 0.0474704656391 +1.732051 -0.0115173567015 +2.424871 -0.0066670406043 +3.117691 -0.0025750272658 +3.810512 -0.0009587573051 +4.503332 -0.0003500907689 +5.196152 -0.0001211110753 +5.888973 -0.0000346640697 +6.581793 -0.0000028871091 +7.274613 0.0000078479308 +7.967434 0.0000103198532 +8.660254 0.0000099847810 +9.353074 0.0000086277422 +10.045895 0.0000085705736 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kyy.xl b/test/test_axibrill/kyy.xl new file mode 100644 index 0000000..5016752 --- /dev/null +++ b/test/test_axibrill/kyy.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0009763104407 +-5.400000 0.0011698404956 +-5.000000 0.0013788092879 +-4.600000 0.0015918427986 +-4.200000 0.0017724560880 +-3.800000 0.0018333521556 +-3.400000 0.0016251531446 +-3.000000 0.0008961293712 +-2.600000 -0.0006375099145 +-2.200000 -0.0028897206129 +-1.800000 -0.0036405719054 +-1.400000 0.0064347647757 +-1.000000 0.0414853926180 +-0.600000 0.0111941003027 +-0.200000 -0.2159908706949 +0.200000 -0.2159908706949 +0.600000 0.0111941003027 +1.000000 0.0414853926180 +1.400000 0.0064347647757 +1.800000 -0.0036405719054 +2.200000 -0.0028897206129 +2.600000 -0.0006375099145 +3.000000 0.0008961293712 +3.400000 0.0016251531446 +3.800000 0.0018333521556 +4.200000 0.0017724560880 +4.600000 0.0015918427986 +5.000000 0.0013788092879 +5.400000 0.0011698404956 +5.800000 0.0009763104407 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyy.yl b/test/test_axibrill/kyy.yl new file mode 100644 index 0000000..3174e3f --- /dev/null +++ b/test/test_axibrill/kyy.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0015197947238 +-5.400000 -0.0018322768222 +-5.000000 -0.0022559661066 +-4.600000 -0.0028244181236 +-4.200000 -0.0035991059530 +-3.800000 -0.0046927179501 +-3.400000 -0.0062576525416 +-3.000000 -0.0085423304523 +-2.600000 -0.0117947275939 +-2.200000 -0.0158838676806 +-1.800000 -0.0168268845659 +-1.400000 0.0134236805909 +-1.000000 0.1363708129324 +-0.600000 -0.0055454807000 +-0.200000 -0.2159908706949 +0.200000 -0.2159908706949 +0.600000 -0.0055454807000 +1.000000 0.1363708129324 +1.400000 0.0134236805909 +1.800000 -0.0168268845659 +2.200000 -0.0158838676806 +2.600000 -0.0117947275939 +3.000000 -0.0085423304523 +3.400000 -0.0062576525416 +3.800000 -0.0046927179501 +4.200000 -0.0035991059530 +4.600000 -0.0028244181236 +5.000000 -0.0022559661066 +5.400000 -0.0018322768222 +5.800000 -0.0015197947238 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyy.zl b/test/test_axibrill/kyy.zl new file mode 100644 index 0000000..c2b5d8c --- /dev/null +++ b/test/test_axibrill/kyy.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0007006734549 +-5.400000 0.0008972695723 +-5.000000 0.0011678088980 +-4.600000 0.0015677084497 +-4.200000 0.0021755439579 +-3.800000 0.0031378726152 +-3.400000 0.0047188392430 +-3.000000 0.0074338163184 +-2.600000 0.0123080307489 +-2.200000 0.0214841667872 +-1.800000 0.0395115266094 +-1.400000 0.0749484466294 +-1.000000 0.1407518820991 +-0.600000 0.2212209361939 +-0.200000 -0.2159908706856 +0.200000 -0.2159908706949 +0.600000 0.2212209361848 +1.000000 0.1407518820987 +1.400000 0.0749484466270 +1.800000 0.0395115266079 +2.200000 0.0214841667865 +2.600000 0.0123080307485 +3.000000 0.0074338163183 +3.400000 0.0047188392429 +3.800000 0.0031378726151 +4.200000 0.0021755439578 +4.600000 0.0015677084496 +5.000000 0.0011678088980 +5.400000 0.0008972695722 +5.800000 0.0007006734549 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyz.dl b/test/test_axibrill/kyz.dl new file mode 100644 index 0000000..c0ababb --- /dev/null +++ b/test/test_axibrill/kyz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 -0.0001451697127 +-9.353074 -0.0001785994722 +-8.660254 -0.0002187556839 +-7.967434 -0.0002718043767 +-7.274613 -0.0003431328848 +-6.581793 -0.0004429176778 +-5.888973 -0.0005891645479 +-5.196152 -0.0008197569962 +-4.503332 -0.0012277415407 +-3.810512 -0.0020763136843 +-3.117691 -0.0042272636040 +-2.424871 -0.0109164787198 +-1.732051 -0.0342037883380 +-1.039230 -0.0838783710283 +-0.346410 -0.5098301979927 +0.346410 -0.5098301979908 +1.039230 -0.0838783710287 +1.732051 -0.0342037883381 +2.424871 -0.0109164787198 +3.117691 -0.0042272636040 +3.810512 -0.0020763136843 +4.503332 -0.0012277415407 +5.196152 -0.0008197569962 +5.888973 -0.0005891645479 +6.581793 -0.0004429176778 +7.274613 -0.0003431328848 +7.967434 -0.0002718043767 +8.660254 -0.0002187556839 +9.353074 -0.0001785994722 +10.045895 -0.0001451697127 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kyz.xl b/test/test_axibrill/kyz.xl new file mode 100644 index 0000000..8040149 --- /dev/null +++ b/test/test_axibrill/kyz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0000013084786 +-5.400000 -0.0000014616840 +-5.000000 -0.0000014244660 +-4.600000 -0.0000008905245 +-4.200000 0.0000008970585 +-3.800000 0.0000058023876 +-3.400000 0.0000185286609 +-3.000000 0.0000512435980 +-2.600000 0.0001345171776 +-2.200000 0.0003303990952 +-1.800000 0.0006482629046 +-1.400000 0.0001873331152 +-1.000000 -0.0062622014369 +-0.600000 -0.0484421382535 +-0.200000 -0.5098301979908 +0.200000 -0.5098301979908 +0.600000 -0.0484421382535 +1.000000 -0.0062622014369 +1.400000 0.0001873331152 +1.800000 0.0006482629046 +2.200000 0.0003303990952 +2.600000 0.0001345171776 +3.000000 0.0000512435980 +3.400000 0.0000185286609 +3.800000 0.0000058023876 +4.200000 0.0000008970585 +4.600000 -0.0000008905245 +5.000000 -0.0000014244660 +5.400000 -0.0000014616840 +5.800000 -0.0000013084786 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyz.yl b/test/test_axibrill/kyz.yl new file mode 100644 index 0000000..dab385e --- /dev/null +++ b/test/test_axibrill/kyz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000491550568 +-5.400000 0.0000581292210 +-5.000000 0.0000687507059 +-4.600000 0.0000814000721 +-4.200000 0.0000975753642 +-3.800000 0.0001215203941 +-3.400000 0.0001655679742 +-3.000000 0.0002654274560 +-2.600000 0.0005178712368 +-2.200000 0.0011802408142 +-1.800000 0.0028957627860 +-1.400000 0.0078811502875 +-1.000000 0.0293884693404 +-0.600000 0.1365262666164 +-0.200000 0.5098301979908 +0.200000 -0.5098301979908 +0.600000 -0.1365262666164 +1.000000 -0.0293884693404 +1.400000 -0.0078811502875 +1.800000 -0.0028957627860 +2.200000 -0.0011802408142 +2.600000 -0.0005178712368 +3.000000 -0.0002654274560 +3.400000 -0.0001655679742 +3.800000 -0.0001215203941 +4.200000 -0.0000975753642 +4.600000 -0.0000814000721 +5.000000 -0.0000687507059 +5.400000 -0.0000581292210 +5.800000 -0.0000491550568 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kyz.zl b/test/test_axibrill/kyz.zl new file mode 100644 index 0000000..259f6e3 --- /dev/null +++ b/test/test_axibrill/kyz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0000876451202 +-5.400000 0.0001236316832 +-5.000000 0.0001800116729 +-4.600000 0.0002715082599 +-4.200000 0.0004252744511 +-3.800000 0.0006948887984 +-3.400000 0.0011888574292 +-3.000000 0.0021410060426 +-2.600000 0.0040833867205 +-2.200000 0.0083105238803 +-1.800000 0.0182031061767 +-1.400000 0.0429939633109 +-1.000000 0.1069777567559 +-0.600000 0.2569884409012 +-0.200000 0.5098301979927 +0.200000 -0.5098301979908 +0.600000 -0.2569884409010 +1.000000 -0.1069777567563 +1.400000 -0.0429939633107 +1.800000 -0.0182031061766 +2.200000 -0.0083105238803 +2.600000 -0.0040833867205 +3.000000 -0.0021410060426 +3.400000 -0.0011888574291 +3.800000 -0.0006948887984 +4.200000 -0.0004252744511 +4.600000 -0.0002715082598 +5.000000 -0.0001800116729 +5.400000 -0.0001236316832 +5.800000 -0.0000876451202 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kzz.dl b/test/test_axibrill/kzz.dl new file mode 100644 index 0000000..5d97eae --- /dev/null +++ b/test/test_axibrill/kzz.dl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-10.738715 0.0000000000000 +-10.045895 0.0000000000000 +-9.353074 0.0000000000000 +-8.660254 0.0000000000000 +-7.967434 0.0000000000000 +-7.274613 0.0000000000000 +-6.581793 0.0000000000000 +-5.888973 0.0000000000000 +-5.196152 0.0000000000000 +-4.503332 0.0000000000000 +-3.810512 0.0000000000000 +-3.117691 0.0000000000000 +-2.424871 0.0000000000000 +-1.732051 0.0000000000000 +-1.039230 0.0000000000000 +-0.346410 0.0000000000000 +0.346410 0.0000000000000 +1.039230 0.0000000000000 +1.732051 0.0000000000000 +2.424871 0.0000000000000 +3.117691 0.0000000000000 +3.810512 0.0000000000000 +4.503332 0.0000000000000 +5.196152 0.0000000000000 +5.888973 0.0000000000000 +6.581793 0.0000000000000 +7.274613 0.0000000000000 +7.967434 0.0000000000000 +8.660254 0.0000000000000 +9.353074 0.0000000000000 +10.045895 0.0000000000000 +10.738715 0.0000000000000 + + +"Time = 0.100000 +-10.738715 0.0000000000000 +-10.045895 -0.0000134687561 +-9.353074 -0.0000188077303 +-8.660254 -0.0000230606786 +-7.967434 -0.0000271947147 +-7.274613 -0.0000283022170 +-6.581793 -0.0000209561913 +-5.888973 0.0000109484695 +-5.196152 0.0001084234450 +-4.503332 0.0003778679160 +-3.810512 0.0011023322365 +-3.117691 0.0030515398680 +-2.424871 0.0083117378901 +-1.732051 0.0259702722503 +-1.039230 0.0949319903994 +-0.346410 0.0048085674989 +0.346410 0.0048085675004 +1.039230 0.0949319903980 +1.732051 0.0259702722497 +2.424871 0.0083117378898 +3.117691 0.0030515398679 +3.810512 0.0011023322365 +4.503332 0.0003778679159 +5.196152 0.0001084234450 +5.888973 0.0000109484695 +6.581793 -0.0000209561913 +7.274613 -0.0000283022170 +7.967434 -0.0000271947147 +8.660254 -0.0000230606786 +9.353074 -0.0000188077303 +10.045895 -0.0000134687561 +10.738715 0.0000000000000 diff --git a/test/test_axibrill/kzz.xl b/test/test_axibrill/kzz.xl new file mode 100644 index 0000000..68e97b0 --- /dev/null +++ b/test/test_axibrill/kzz.xl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0003372646570 +-5.400000 0.0003803045835 +-5.000000 0.0004419339083 +-4.600000 0.0005459621639 +-4.200000 0.0007522233968 +-3.800000 0.0011763947589 +-3.400000 0.0020974080741 +-3.000000 0.0041112685595 +-2.600000 0.0085544096320 +-2.200000 0.0183614282244 +-1.800000 0.0415439803084 +-1.400000 0.1107716887945 +-1.000000 0.2636317369049 +-0.600000 0.0702985513572 +-0.200000 0.0048085675004 +0.200000 0.0048085675004 +0.600000 0.0702985513572 +1.000000 0.2636317369049 +1.400000 0.1107716887945 +1.800000 0.0415439803084 +2.200000 0.0183614282244 +2.600000 0.0085544096320 +3.000000 0.0041112685595 +3.400000 0.0020974080741 +3.800000 0.0011763947589 +4.200000 0.0007522233968 +4.600000 0.0005459621639 +5.000000 0.0004419339083 +5.400000 0.0003803045835 +5.800000 0.0003372646570 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kzz.yl b/test/test_axibrill/kzz.yl new file mode 100644 index 0000000..68e97b0 --- /dev/null +++ b/test/test_axibrill/kzz.yl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 0.0003372646570 +-5.400000 0.0003803045835 +-5.000000 0.0004419339083 +-4.600000 0.0005459621639 +-4.200000 0.0007522233968 +-3.800000 0.0011763947589 +-3.400000 0.0020974080741 +-3.000000 0.0041112685595 +-2.600000 0.0085544096320 +-2.200000 0.0183614282244 +-1.800000 0.0415439803084 +-1.400000 0.1107716887945 +-1.000000 0.2636317369049 +-0.600000 0.0702985513572 +-0.200000 0.0048085675004 +0.200000 0.0048085675004 +0.600000 0.0702985513572 +1.000000 0.2636317369049 +1.400000 0.1107716887945 +1.800000 0.0415439803084 +2.200000 0.0183614282244 +2.600000 0.0085544096320 +3.000000 0.0041112685595 +3.400000 0.0020974080741 +3.800000 0.0011763947589 +4.200000 0.0007522233968 +4.600000 0.0005459621639 +5.000000 0.0004419339083 +5.400000 0.0003803045835 +5.800000 0.0003372646570 +6.200000 0.0000000000000 diff --git a/test/test_axibrill/kzz.zl b/test/test_axibrill/kzz.zl new file mode 100644 index 0000000..d5c33ef --- /dev/null +++ b/test/test_axibrill/kzz.zl @@ -0,0 +1,70 @@ + + +"Time = 0.000000 +-6.200000 0.0000000000000 +-5.800000 0.0000000000000 +-5.400000 0.0000000000000 +-5.000000 0.0000000000000 +-4.600000 0.0000000000000 +-4.200000 0.0000000000000 +-3.800000 0.0000000000000 +-3.400000 0.0000000000000 +-3.000000 0.0000000000000 +-2.600000 0.0000000000000 +-2.200000 0.0000000000000 +-1.800000 0.0000000000000 +-1.400000 0.0000000000000 +-1.000000 0.0000000000000 +-0.600000 0.0000000000000 +-0.200000 0.0000000000000 +0.200000 0.0000000000000 +0.600000 0.0000000000000 +1.000000 0.0000000000000 +1.400000 0.0000000000000 +1.800000 0.0000000000000 +2.200000 0.0000000000000 +2.600000 0.0000000000000 +3.000000 0.0000000000000 +3.400000 0.0000000000000 +3.800000 0.0000000000000 +4.200000 0.0000000000000 +4.600000 0.0000000000000 +5.000000 0.0000000000000 +5.400000 0.0000000000000 +5.800000 0.0000000000000 +6.200000 0.0000000000000 + + +"Time = 0.100000 +-6.200000 0.0000000000000 +-5.800000 -0.0014237912519 +-5.400000 -0.0017921910026 +-5.000000 -0.0023361936423 +-4.600000 -0.0031361597781 +-4.200000 -0.0043560610296 +-3.800000 -0.0062909806168 +-3.400000 -0.0094905203435 +-3.000000 -0.0150256214714 +-2.600000 -0.0250717712537 +-2.200000 -0.0442507664950 +-1.800000 -0.0825906790244 +-1.400000 -0.1618456693892 +-1.000000 -0.3149117473914 +-0.600000 -0.4984627671646 +-0.200000 0.0048085674989 +0.200000 0.0048085675004 +0.600000 -0.4984627671737 +1.000000 -0.3149117473929 +1.400000 -0.1618456693915 +1.800000 -0.0825906790257 +2.200000 -0.0442507664955 +2.600000 -0.0250717712539 +3.000000 -0.0150256214714 +3.400000 -0.0094905203435 +3.800000 -0.0062909806168 +4.200000 -0.0043560610295 +4.600000 -0.0031361597780 +5.000000 -0.0023361936423 +5.400000 -0.0017921910026 +5.800000 -0.0014237912519 +6.200000 0.0000000000000 |