diff --git a/examples/.gitignore b/examples/.gitignore index ca6be88315595d88cd8b4d0a09cbfbc336f476b3..4741371e5883899742b08cf256ca454fefa6267a 100644 --- a/examples/.gitignore +++ b/examples/.gitignore @@ -1 +1,3 @@ _sphinx_build +downloads +zipped-examples diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index dd2f8338ae859a78a4af55fa53bc51db389d3c4c..56d5261c522b3e8065ff6a812213a046a43e3b68 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -12,5 +12,6 @@ FetchContent_MakeAvailable(walberla) add_subdirectory(${CMAKE_SOURCE_DIR}/.. ${CMAKE_BINARY_DIR}/sfg-walberla) +add_subdirectory( GeneratorScriptBasics ) add_subdirectory( PoiseuilleChannel ) diff --git a/examples/GeneratorScriptBasics/BasicCodegen.py b/examples/GeneratorScriptBasics/BasicCodegen.py new file mode 100644 index 0000000000000000000000000000000000000000..a23e622ffd334f082f067602c037450790e5f636 --- /dev/null +++ b/examples/GeneratorScriptBasics/BasicCodegen.py @@ -0,0 +1,4 @@ +from pystencilssfg import SourceFileGenerator + +with SourceFileGenerator() as sfg: + pass diff --git a/examples/GeneratorScriptBasics/CMakeLists.txt b/examples/GeneratorScriptBasics/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..ab855a422790fa0910f1c0ee96212ffed91a1fd7 --- /dev/null +++ b/examples/GeneratorScriptBasics/CMakeLists.txt @@ -0,0 +1,12 @@ +add_executable( Ex_GeneratorScriptBasics ) +target_sources( Ex_GeneratorScriptBasics PRIVATE Ex_GeneratorScriptBasics.cpp ) + +pystencilssfg_generate_target_sources( Ex_PoiseuilleChannel + SCRIPTS BasicCodegen.py +) + +target_link_libraries( + Ex_GeneratorScriptBasics + PRIVATE + core blockforest sfg_walberla +) diff --git a/examples/GeneratorScriptBasics/GeneratorScriptBasics.md b/examples/GeneratorScriptBasics/GeneratorScriptBasics.md new file mode 100644 index 0000000000000000000000000000000000000000..27924119f23764dafb2e6964af8b53eaa6966f34 --- /dev/null +++ b/examples/GeneratorScriptBasics/GeneratorScriptBasics.md @@ -0,0 +1,28 @@ +# Getting Started with Generator Scripts + +This example aims to illustrate the basic code generation features of `sfg-walberla` +by building a force-driven channel flow application. + +## Files + +{download}`GeneratorScriptBasics.zip </zipped-examples/GeneratorScriptBasics.zip>`. + +This example comprises the following files: + + - `GeneratorScriptBasics.cpp`: The demo simulation; + - `BasicCodegen.py`: A sample code generation script; + - `CMakeLists.txt`: The CMake build system configuration. + +## CMake Target Definition + +:::{card} `CMakeLists.txt` +::::{literalinclude} CMakeLists.txt +:language: CMake +:::: +::: + +Then, we register our code generator script `LbmAlgorithms.py` via the +[`pystencilssfg_generate_target_sources`][sfg_add_gen_scripts] CMake function. + + +[sfg_add_gen_scripts]: https://pycodegen.pages.i10git.cs.fau.de/pystencils-sfg/usage/project_integration.html#add-generator-scripts "pystencils-sfg Documentation" \ No newline at end of file diff --git a/examples/Makefile b/examples/Makefile index 722b842da7481121e56468628dec1b81e0a6613c..bfa9099e133dcd0678634b2188fab2f1c1017d84 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -10,6 +10,8 @@ BUILDDIR = _sphinx_build ZIPPED_EXAMPLES := zipped-examples +include examples.mk + MKDIR := mkdir -p dir_guard = $(MKDIR) $(@D) @@ -30,8 +32,9 @@ clean: @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) ZipExamples: $(ZIPPED_EXAMPLES)/PoiseuilleChannel.zip +ZipExamples: $(foreach example, $(EXAMPLES), $(ZIPPED_EXAMPLES)/$(example).zip) -$(ZIPPED_EXAMPLES)/PoiseuilleChannel.zip: PoiseuilleChannel/* +$(ZIPPED_EXAMPLES)/%.zip: %/* @$(dir_guard) @echo Zipping $(<D) @zip -r $@ $(<D) diff --git a/examples/downloads/PoiseuilleChannel.zip b/examples/downloads/PoiseuilleChannel.zip deleted file mode 100644 index 7b65737eae4207451a75901da2b1858977db908d..0000000000000000000000000000000000000000 Binary files a/examples/downloads/PoiseuilleChannel.zip and /dev/null differ diff --git a/examples/examples.mk b/examples/examples.mk new file mode 100644 index 0000000000000000000000000000000000000000..d36074572d7ca27aa6cc49d6c2869c073859ac64 --- /dev/null +++ b/examples/examples.mk @@ -0,0 +1 @@ +EXAMPLES = GeneratorScriptBasics PoiseuilleChannel diff --git a/examples/index.md b/examples/index.md index 79a790ad849fe55a5d08873ba72fa57b931760e4..733282293dbe554e424450e39ccfecbf8a3fc269 100644 --- a/examples/index.md +++ b/examples/index.md @@ -5,5 +5,6 @@ :caption: Fundamentals :maxdepth: 1 +GeneratorScriptBasics/GeneratorScriptBasics PoiseuilleChannel/PoiseuilleChannel -::: \ No newline at end of file +::: diff --git a/examples/zipped-examples/PoiseuilleChannel.zip b/examples/zipped-examples/PoiseuilleChannel.zip deleted file mode 100644 index 3af55558698f18b309a52e1bcfda5ab6f68699d2..0000000000000000000000000000000000000000 Binary files a/examples/zipped-examples/PoiseuilleChannel.zip and /dev/null differ