From d96b55d517acc63a6c1e61e16757911453962438 Mon Sep 17 00:00:00 2001 From: Zeeshan Ahmad Date: Sat, 29 Sep 2018 19:16:30 -0400 Subject: [PATCH] Initial files --- .clang-format | 29 + .gitignore | 212 ++++++++ LICENSE | 502 ++++++++++++++++++ Makefile | 55 ++ README.md | 6 + include/base/electrodepApp.h | 33 ++ run_tests | 12 + scripts/install-format-hook.sh | 26 + src/base/electrodepApp.C | 93 ++++ src/main.C | 35 ++ test/include/base/electrodepTestApp.h | 31 ++ test/src/base/electrodepTestApp.C | 105 ++++ .../gold/simple_diffusion_out.e | Bin 0 -> 19804 bytes .../simple_diffusion/simple_diffusion.i | 44 ++ test/tests/kernels/simple_diffusion/tests | 7 + testroot | 4 + unit/Makefile | 70 +++ unit/include/place_holder | 0 unit/run_tests | 18 + unit/src/SampleTest.C | 32 ++ unit/src/main.C | 34 ++ 21 files changed, 1348 insertions(+) create mode 100644 .clang-format create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 include/base/electrodepApp.h create mode 100755 run_tests create mode 100755 scripts/install-format-hook.sh create mode 100644 src/base/electrodepApp.C create mode 100644 src/main.C create mode 100644 test/include/base/electrodepTestApp.h create mode 100644 test/src/base/electrodepTestApp.C create mode 100644 test/tests/kernels/simple_diffusion/gold/simple_diffusion_out.e create mode 100644 test/tests/kernels/simple_diffusion/simple_diffusion.i create mode 100644 test/tests/kernels/simple_diffusion/tests create mode 100644 testroot create mode 100644 unit/Makefile create mode 100644 unit/include/place_holder create mode 100755 unit/run_tests create mode 100644 unit/src/SampleTest.C create mode 100644 unit/src/main.C diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..74b5481 --- /dev/null +++ b/.clang-format @@ -0,0 +1,29 @@ +BasedOnStyle: LLVM + +TabWidth: 2 +ColumnLimit: 100 +UseTab: Never + +CommentPragmas: '^/' +ReflowComments: true +AlignTrailingComments: true +SpacesBeforeTrailingComments: 1 + +SpaceBeforeParens: ControlStatements +SpacesInSquareBrackets: false +BreakBeforeBraces: Allman +PointerAlignment: Middle + +BinPackParameters: false +BinPackArguments: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +AllowShortBlocksOnASingleLine: false +AllowShortFunctionsOnASingleLine: true +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false + +SortIncludes: false +IndentCaseLabels: true +ConstructorInitializerIndentWidth: 2 +AlwaysBreakAfterDefinitionReturnType: TopLevel +AlwaysBreakTemplateDeclarations: true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0b871f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,212 @@ +.libs +*.la +*.lo +*.d +*.o +*.a +*-opt +*-dbg +*-oprof +*-prof +*-devel +*.e +*.nav +*.log +*.aux +*.toc +*.snm +*.csv +*.dylib +*.so +*.so.* +*.vrb +*.jou +*.pyc +*.mod +*.e.* +*.e-s* +*.cfg +*.lbd.* +*.nem +*.spd +*.pex +*.pdf +*.plist* +*.bbl +*.blg +*.spl +*.idx +traceout*.txt +temp_print_trace.* +*.xda +*.xda.* +*.xdr +*.xdr.* +*.mps +*.msmp +*.msmp-* +*.muds +# Latex garbage +*.lot +*.lof +*.poly +*.mpx +*.btr +*.xml +*.gmv +*.plt +*.slh +*.eps +*.dat +*.gp +*.plugin +*.outp +*.patch +*.txt +*.bib.bak +*.out +*.vtk +*.vtu +*.pvtu +.depend +*.png +*.gif +*.tif +*.jpg +*.tiff +*.ps +*.bmp +*.html +*.xyz +*Revision.h +*.json +*.bak +*.processor.* +.clang_complete +.failed_tests +compile_commands.json +build + +# Allow certain files in gold directories +!**/gold/*.e +!**/gold/*.e-s* +!**/gold/*.csv +!**/gold/*.vtk +!**/gold/*.vtu +!**/gold/*.pvtu + +peacock_run_tmp.i +yaml_dump* +test/tests/outputs/format/dump.i + +# Generated header file +MooseRevision.h + +# Precompiled headers +moose/include/base/Precompiled.h.gch + +# test garbagge +*.FAILED.txt + +# eclipse garbage +.project +.cproject +.metadata +.settings +.pydevproject + +# vim garbage +*~ +.*.swp +.*.swo + +framework/contrib/exodiff/exodiff + +# Mac garbage +.DS_Store +*.dSYM + +# Unit testing stuffbmoose_unit/test_results.xml +!unit/data/csv/*.csv + +# gcov code coverage files +*.gcno +*.gcda +*.gcov + +# paraview state files +*.pvsm + +#Peacock generated files +peacock_*.i +peacock_*.e + +# On linux, shared libs end in .0 sometimes +libpcre-opt* +libpcre-dbg* +libmoose-opt* +libmoose-dbg* + +#doxygen generated +*/doc/doxygen/html/* +*/doc/doxygen/**/* +moose/doc/doxygen/html/* +modules/*/doc/doxygen/html/* +tutorials/*/*/doc/doxygen/html/* +ICE/ +framework/contrib/asio/ + +# Restartable Data +*.rd +*.rd-* + +# Checkpoint Files +*.cpa +*.cpr +*.cpa-* +*.cpr-* + +# phase_field/tests/solution_rasterizer +out.xyz + +# JIT and automatic differentiation cache files +.jitcache/ +.jitdir/ +tmp_jit_* + +# Do not store ipython notebook checkpoints +*-checkpoint.ipynb* + +# MooseDocs +site +!**/doc/content/**/*.md +!**/doc/content/**/*.jpg +!**/doc/content/**/*.jpeg +!**/doc/content/**/*.gif +!**/doc/content/**/*.png +!**/doc/content/**/*.svg +!**/doc/content/**/*.ogg +!**/doc/content/**/*.webm +!**/doc/content/**/*.mp4 +!**/doc/content/**/*.css +!**/doc/content/**/*.js +!**/doc/content/**/*.bib +!**/doc/content/**/*.woff +!**/doc/content/**/*.woff2 + +# Chigger +!python/chigger/tests/**/gold/*.png +!python/chigger/tests/input/*.e* +!python/chigger/logos/*.png +!python/chigger/contrib/*.xml + +# Peacock +python/peacock/tests/exodus_tab/TestOutputPlugin_repr.py +python/peacock/tests/exodus_tab/TestExodusPluginManager_repr.py +python/peacock/tests/input_tab/InputFileEditor/fsp_test.i +python/peacock/tests/postprocessor_tab/TestPostprocessorPluginManager_test_script.py +!python/peacock/tests/**/gold/*.png +!python/peacock/icons/**/*.* +!python/peacock/tests/**/input/*.* +peacock_tmp_diff.exo +*.e.diff diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/LICENSE @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, 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 library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete 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 distribute a copy of this License along with the +Library. + + 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 Library or any portion +of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +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 Library, 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 Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you 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. + + If distribution of 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 satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be 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. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library 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. + + 9. 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 Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +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 with +this License. + + 11. 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 Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library 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 Library. + +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. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library 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. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +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 Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +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 + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. 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 LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. 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. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..264f68f --- /dev/null +++ b/Makefile @@ -0,0 +1,55 @@ +############################################################################### +################### MOOSE Application Standard Makefile ####################### +############################################################################### +# +# Optional Environment variables +# MOOSE_DIR - Root directory of the MOOSE project +# +############################################################################### +# Use the MOOSE submodule if it exists and MOOSE_DIR is not set +MOOSE_SUBMODULE := $(CURDIR)/moose +ifneq ($(wildcard $(MOOSE_SUBMODULE)/framework/Makefile),) + MOOSE_DIR ?= $(MOOSE_SUBMODULE) +else + MOOSE_DIR ?= $(shell dirname `pwd`)/moose +endif + +# framework +FRAMEWORK_DIR := $(MOOSE_DIR)/framework +include $(FRAMEWORK_DIR)/build.mk +include $(FRAMEWORK_DIR)/moose.mk + +################################## MODULES #################################### +# To use certain physics included with MOOSE, set variables below to +# yes as needed. Or set ALL_MODULES to yes to turn on everything (overrides +# other set variables). + +ALL_MODULES := no + +CHEMICAL_REACTIONS := no +CONTACT := no +FLUID_PROPERTIES := no +HEAT_CONDUCTION := no +MISC := no +NAVIER_STOKES := no +PHASE_FIELD := no +RDG := no +RICHARDS := no +SOLID_MECHANICS := no +STOCHASTIC_TOOLS := no +TENSOR_MECHANICS := no +XFEM := no +POROUS_FLOW := no + +include $(MOOSE_DIR)/modules/modules.mk +############################################################################### + +# dep apps +APPLICATION_DIR := $(CURDIR) +APPLICATION_NAME := electrodep +BUILD_EXEC := yes +GEN_REVISION := no +include $(FRAMEWORK_DIR)/app.mk + +############################################################################### +# Additional special case targets should be added here diff --git a/README.md b/README.md new file mode 100644 index 0000000..3a22f22 --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +electrodep +===== + +"Fork electrodep" to create a new MOOSE-based application. + +For more information see: [http://mooseframework.org/create-an-app/](http://mooseframework.org/create-an-app/) diff --git a/include/base/electrodepApp.h b/include/base/electrodepApp.h new file mode 100644 index 0000000..5fe721b --- /dev/null +++ b/include/base/electrodepApp.h @@ -0,0 +1,33 @@ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html +#ifndef ELECTRODEPAPP_H +#define ELECTRODEPAPP_H + +#include "MooseApp.h" + +class electrodepApp; + +template <> +InputParameters validParams(); + +class electrodepApp : public MooseApp +{ +public: + electrodepApp(InputParameters parameters); + virtual ~electrodepApp(); + + static void registerApps(); + static void registerObjects(Factory & factory); + static void registerObjectDepends(Factory & factory); + static void associateSyntax(Syntax & syntax, ActionFactory & action_factory); + static void associateSyntaxDepends(Syntax & syntax, ActionFactory & action_factory); + static void registerExecFlags(Factory & factory); +}; + +#endif /* ELECTRODEPAPP_H */ diff --git a/run_tests b/run_tests new file mode 100755 index 0000000..686457a --- /dev/null +++ b/run_tests @@ -0,0 +1,12 @@ +#!/usr/bin/env python +import sys, os + +MOOSE_DIR = os.path.abspath(os.environ.get('MOOSE_DIR', os.path.join(os.path.dirname(__file__), '..', 'moose'))) +if os.path.exists(os.path.abspath(os.path.join('moose', 'framework', 'Makefile'))): + MOOSE_DIR = os.path.abspath('moose') +MOOSE_DIR = os.environ.get('MOOSE_DIR', MOOSE_DIR) + +sys.path.append(os.path.join(MOOSE_DIR, 'python')) + +from TestHarness import TestHarness +TestHarness.buildAndRun(sys.argv, None, MOOSE_DIR) diff --git a/scripts/install-format-hook.sh b/scripts/install-format-hook.sh new file mode 100755 index 0000000..44a2037 --- /dev/null +++ b/scripts/install-format-hook.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +REPO_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/../" +hookfile="$REPO_DIR/.git/hooks/pre-commit" + +if [[ -f $hookfile ]]; then + echo "'$hookfile' already exists - aborting" 1>&2 + exit 1 +fi + +echo '#!/bin/bash +patch=$(git clang-format --diff -- $(git diff --staged --name-only -- src include tests unit)) +if [[ "$patch" =~ "no modified files to format" || "$patch" =~ "clang-format did not modify any files" ]]; then + echo "" > /dev/null +else + echo "" + echo "Your code is not properly formatted." >&2 + echo "Run 'git clang-format' to resolve the following issues:" >&2 + echo "" + echo "$patch" + exit 1 +fi +' > $hookfile + +chmod a+x $hookfile + diff --git a/src/base/electrodepApp.C b/src/base/electrodepApp.C new file mode 100644 index 0000000..0e3cc73 --- /dev/null +++ b/src/base/electrodepApp.C @@ -0,0 +1,93 @@ +#include "electrodepApp.h" +#include "Moose.h" +#include "AppFactory.h" +#include "ModulesApp.h" +#include "MooseSyntax.h" + +template <> +InputParameters +validParams() +{ + InputParameters params = validParams(); + return params; +} + +electrodepApp::electrodepApp(InputParameters parameters) : MooseApp(parameters) +{ + Moose::registerObjects(_factory); + ModulesApp::registerObjects(_factory); + electrodepApp::registerObjects(_factory); + + Moose::associateSyntax(_syntax, _action_factory); + ModulesApp::associateSyntax(_syntax, _action_factory); + electrodepApp::associateSyntax(_syntax, _action_factory); + + Moose::registerExecFlags(_factory); + ModulesApp::registerExecFlags(_factory); + electrodepApp::registerExecFlags(_factory); +} + +electrodepApp::~electrodepApp() {} + +void +electrodepApp::registerApps() +{ + registerApp(electrodepApp); +} + +void +electrodepApp::registerObjects(Factory & factory) +{ + Registry::registerObjectsTo(factory, {"electrodepApp"}); +} + +void +electrodepApp::associateSyntax(Syntax & /*syntax*/, ActionFactory & action_factory) +{ + Registry::registerActionsTo(action_factory, {"electrodepApp"}); + + /* Uncomment Syntax parameter and register your new production objects here! */ +} + +void +electrodepApp::registerObjectDepends(Factory & /*factory*/) +{ +} + +void +electrodepApp::associateSyntaxDepends(Syntax & /*syntax*/, ActionFactory & /*action_factory*/) +{ +} + +void +electrodepApp::registerExecFlags(Factory & /*factory*/) +{ + /* Uncomment Factory parameter and register your new execution flags here! */ +} + +/*************************************************************************************************** + *********************** Dynamic Library Entry Points - DO NOT MODIFY ****************************** + **************************************************************************************************/ +extern "C" void +electrodepApp__registerApps() +{ + electrodepApp::registerApps(); +} + +extern "C" void +electrodepApp__registerObjects(Factory & factory) +{ + electrodepApp::registerObjects(factory); +} + +extern "C" void +electrodepApp__associateSyntax(Syntax & syntax, ActionFactory & action_factory) +{ + electrodepApp::associateSyntax(syntax, action_factory); +} + +extern "C" void +electrodepApp__registerExecFlags(Factory & factory) +{ + electrodepApp::registerExecFlags(factory); +} diff --git a/src/main.C b/src/main.C new file mode 100644 index 0000000..35f8497 --- /dev/null +++ b/src/main.C @@ -0,0 +1,35 @@ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html +#include "electrodepTestApp.h" +#include "MooseInit.h" +#include "Moose.h" +#include "MooseApp.h" +#include "AppFactory.h" + +// Create a performance log +PerfLog Moose::perf_log("electrodep"); + +// Begin the main program. +int +main(int argc, char * argv[]) +{ + // Initialize MPI, solvers and MOOSE + MooseInit init(argc, argv); + + // Register this application's MooseApp and any it depends on + electrodepTestApp::registerApps(); + + // Create an instance of the application and store it in a smart pointer for easy cleanup + std::shared_ptr app = AppFactory::createAppShared("electrodepTestApp", argc, argv); + + // Execute the application + app->run(); + + return 0; +} diff --git a/test/include/base/electrodepTestApp.h b/test/include/base/electrodepTestApp.h new file mode 100644 index 0000000..1b70b7d --- /dev/null +++ b/test/include/base/electrodepTestApp.h @@ -0,0 +1,31 @@ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html +#ifndef ELECTRODEPTESTAPP_H +#define ELECTRODEPTESTAPP_H + +#include "MooseApp.h" + +class electrodepTestApp; + +template <> +InputParameters validParams(); + +class electrodepTestApp : public MooseApp +{ +public: + electrodepTestApp(InputParameters parameters); + virtual ~electrodepTestApp(); + + static void registerApps(); + static void registerObjects(Factory & factory); + static void associateSyntax(Syntax & syntax, ActionFactory & action_factory); + static void registerExecFlags(Factory & factory); +}; + +#endif /* ELECTRODEPTESTAPP_H */ diff --git a/test/src/base/electrodepTestApp.C b/test/src/base/electrodepTestApp.C new file mode 100644 index 0000000..152ff93 --- /dev/null +++ b/test/src/base/electrodepTestApp.C @@ -0,0 +1,105 @@ +//* This file is part of the MOOSE framework +//* https://www.mooseframework.org +//* +//* All rights reserved, see COPYRIGHT for full restrictions +//* https://github.com/idaholab/moose/blob/master/COPYRIGHT +//* +//* Licensed under LGPL 2.1, please see LICENSE for details +//* https://www.gnu.org/licenses/lgpl-2.1.html +#include "electrodepTestApp.h" +#include "electrodepApp.h" +#include "Moose.h" +#include "AppFactory.h" +#include "MooseSyntax.h" +#include "ModulesApp.h" + +template <> +InputParameters +validParams() +{ + InputParameters params = validParams(); + return params; +} + +electrodepTestApp::electrodepTestApp(InputParameters parameters) : MooseApp(parameters) +{ + Moose::registerObjects(_factory); + ModulesApp::registerObjects(_factory); + electrodepApp::registerObjectDepends(_factory); + electrodepApp::registerObjects(_factory); + + Moose::associateSyntax(_syntax, _action_factory); + ModulesApp::associateSyntax(_syntax, _action_factory); + electrodepApp::associateSyntaxDepends(_syntax, _action_factory); + electrodepApp::associateSyntax(_syntax, _action_factory); + + Moose::registerExecFlags(_factory); + ModulesApp::registerExecFlags(_factory); + electrodepApp::registerExecFlags(_factory); + + bool use_test_objs = getParam("allow_test_objects"); + if (use_test_objs) + { + electrodepTestApp::registerObjects(_factory); + electrodepTestApp::associateSyntax(_syntax, _action_factory); + electrodepTestApp::registerExecFlags(_factory); + } +} + +electrodepTestApp::~electrodepTestApp() {} + +void +electrodepTestApp::registerApps() +{ + registerApp(electrodepApp); + registerApp(electrodepTestApp); +} + +void +electrodepTestApp::registerObjects(Factory & /*factory*/) +{ + /* Uncomment Factory parameter and register your new test objects here! */ +} + +void +electrodepTestApp::associateSyntax(Syntax & /*syntax*/, ActionFactory & /*action_factory*/) +{ + /* Uncomment Syntax and ActionFactory parameters and register your new test objects here! */ +} + +void +electrodepTestApp::registerExecFlags(Factory & /*factory*/) +{ + /* Uncomment Factory parameter and register your new execute flags here! */ +} + +/*************************************************************************************************** + *********************** Dynamic Library Entry Points - DO NOT MODIFY ****************************** + **************************************************************************************************/ +// External entry point for dynamic application loading +extern "C" void +electrodepTestApp__registerApps() +{ + electrodepTestApp::registerApps(); +} + +// External entry point for dynamic object registration +extern "C" void +electrodepTestApp__registerObjects(Factory & factory) +{ + electrodepTestApp::registerObjects(factory); +} + +// External entry point for dynamic syntax association +extern "C" void +electrodepTestApp__associateSyntax(Syntax & syntax, ActionFactory & action_factory) +{ + electrodepTestApp::associateSyntax(syntax, action_factory); +} + +// External entry point for dynamic execute flag loading +extern "C" void +electrodepTestApp__registerExecFlags(Factory & factory) +{ + electrodepTestApp::registerExecFlags(factory); +} diff --git a/test/tests/kernels/simple_diffusion/gold/simple_diffusion_out.e b/test/tests/kernels/simple_diffusion/gold/simple_diffusion_out.e new file mode 100644 index 0000000000000000000000000000000000000000..26b05edab2e59e58b7ebd7cc86879bfaf03c1f0d GIT binary patch literal 19804 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 +#include + +PerfLog Moose::perf_log("gtest"); + +GTEST_API_ int +main(int argc, char ** argv) +{ + // gtest removes (only) its args from argc and argv - so this must be before moose init + testing::InitGoogleTest(&argc, argv); + + MooseInit init(argc, argv); + registerApp(electrodepApp); + Moose::_throw_on_error = true; + + return RUN_ALL_TESTS(); +}