commit 0f341071f4fe9794eb8a453b275327c2d703793c Author: Emily Boudreaux Date: Thu Feb 5 07:16:15 2026 -0500 feat(RayFEM): initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..eafde93 --- /dev/null +++ b/.gitignore @@ -0,0 +1,111 @@ +# Python +__pycache__/ +*.py[cod] +*.pyo +*.pyd +*.env +*.venv +env/ +venv/ +ENV/ +ENV.bak/ +*.egg-info/ +dist/ +build/ +*.egg + +# C and C++ (using Meson) +build/ +*.o +*.a +*.so +*.d +*.dSYM/ +*.exe +*.out +*.obj +*.dll +*.lib +*.pdb +*.exp +*.log +*.stackdump + +# Fortran +*.mod +*.o +*.a +*.so +*.exe +*.out + +# Doxygen +html/ +latex/ +xml/ +man/ +rtf/ +tags + +## Misc +*.swp +*._DS_Store +*.DS_Store +*.bak +*.tmp +*.log +*.cache +*.private +*.private/ + +subprojects/mfem/ +subprojects/tetgen/ +subprojects/yaml-cpp/ +subprojects/quill/ +subprojects/googletest-*/ +subprojects/opat-core/ +subprojects/pybind11*/ +subprojects/packagecache/ +subprojects/hypre/ +subprojects/qhull/ +subprojects/libconstants/ +subprojects/liblogging/ +subprojects/libconfig/ +subprojects/libcomposition/ +subprojects/GridFire/ +subprojects/tomlplusplus-*/ +subprojects/CLI11-*/ +subprojects/magic_enum-*/ +subprojects/raylib/ +subprojects/czmq/ + + +qhull.wrap +quill.wrap +yaml-cpp.wrap +cppad.wrap +tomlplusplus.wrap +gtest.wrap + +subprojects/quill.wrap + +.vscode/ + +*.log +mpi-install-log.txt + +output/ + +.boost_installed +4DSSE_logs/ +.last_build_flags + +.idea/ + +scratch/ + +releases/ +stroid-dist/ +stroid-universal-dist.tar.gz +stroid-*/ +stroid-*.tar.gz diff --git a/build-config/CLI11/meson.build b/build-config/CLI11/meson.build new file mode 100644 index 0000000..07c0602 --- /dev/null +++ b/build-config/CLI11/meson.build @@ -0,0 +1,2 @@ +cli11_proj = subproject('cli11') +dependencies += cli11_proj.get_variable('CLI11_dep') \ No newline at end of file diff --git a/build-config/czmq/meson.build b/build-config/czmq/meson.build new file mode 100644 index 0000000..32c8021 --- /dev/null +++ b/build-config/czmq/meson.build @@ -0,0 +1,12 @@ +czmq_opts = cmake.subproject_options() +czmq_opts.add_cmake_defines({ + 'CMAKE_POLICY_VERSION_MINIMUM': '3.5', + 'CMAKE_C_FLAGS': '-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0', + 'CMAKE_CXX_FLAGS': '-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0' +}) + +czmq_opts.set_install(false) + +czmq_subproject = cmake.subproject('czmq', options: czmq_opts) + +dependencies += czmq_subproject.dependency('czmq') \ No newline at end of file diff --git a/build-config/libconfig/meson.build b/build-config/libconfig/meson.build new file mode 100644 index 0000000..b3ed114 --- /dev/null +++ b/build-config/libconfig/meson.build @@ -0,0 +1,8 @@ +config_p = subproject('libconfig', +default_options:[ + 'default_library=static', + 'pkg_config=false', + 'build_tests=false', + 'build_examples=false' +]) +dependencies += config_p.get_variable('config_dep') diff --git a/build-config/meson.build b/build-config/meson.build new file mode 100644 index 0000000..9953472 --- /dev/null +++ b/build-config/meson.build @@ -0,0 +1,7 @@ +cmake = import('cmake') + +subdir('raylib') +subdir('czmq') +subdir('mfem') +subdir('CLI11') +subdir('libconfig') \ No newline at end of file diff --git a/build-config/mfem/meson.build b/build-config/mfem/meson.build new file mode 100644 index 0000000..0098513 --- /dev/null +++ b/build-config/mfem/meson.build @@ -0,0 +1,16 @@ +cmake = import('cmake') +mfem_cmake_options = cmake.subproject_options() +mfem_cmake_options.add_cmake_defines({ + 'MFEM_ENABLE_EXAMPLES': 'OFF', + 'MFEM_ENABLE_TESTING': 'OFF', + 'MFEM_ENABLE_MINIAPPS': 'OFF', + 'MFEM_USE_BENCMARK': 'OFF', + 'BUILD_SHARED_LIBS': 'OFF', + 'BUILD_STATIC_LIBS': 'ON', +}) +mfem_cmake_options.set_install(true) + +mfem_sp = cmake.subproject( + 'mfem', + options: mfem_cmake_options) +dependencies += mfem_sp.dependency('mfem') diff --git a/build-config/raylib/meson.build b/build-config/raylib/meson.build new file mode 100644 index 0000000..a124071 --- /dev/null +++ b/build-config/raylib/meson.build @@ -0,0 +1,39 @@ +raylib_opts = cmake.subproject_options() +raylib_opts.set_install(false) +raylib_opts.add_cmake_defines({ + 'BUILD_EXAMPLES': 'OFF', + }) +if cc.get_id() == 'emscripten' + raylib_opts.add_cmake_defines({ + 'PLATFORM': 'Web', + }) +else + raylib_opts.add_cmake_defines({ + 'PLATFORM': 'Desktop', + }) +endif +raylib_subproject = cmake.subproject('raylib', options: raylib_opts) +dependencies += raylib_subproject.dependency('raylib') + +# General configuration +if host_machine.system() == 'windows' + dependencies += [ + cc.find_library('winmm'), + ] +elif host_machine.system() == 'darwin' + link_args += [ + '-framework', 'AppKit', + '-framework', 'IOKit', + ] +elif host_machine.system() == 'linux' + dependencies += [ + cc.find_library('m'), + cc.find_library('dl'), + ] +elif host_machine.system() == 'emscripten' + link_args += [ + '-s', 'ENVIRONMENT=web', + '-s', 'USE_GLFW=3', + ] + name_suffix = 'html' +endif \ No newline at end of file diff --git a/default.toml b/default.toml new file mode 100644 index 0000000..3ebc496 --- /dev/null +++ b/default.toml @@ -0,0 +1,10 @@ +[main] +core_steepness = 1.0 +flattening = 0.0 +include_external_domain = false +order = 1 +r_core = 1.5 +r_infinity = 6.0 +r_instability = 1e-14 +r_star = 5.0 +refinement_levels = 2 \ No newline at end of file diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..64eef86 --- /dev/null +++ b/meson.build @@ -0,0 +1,17 @@ +project('RayFEM', ['cpp', 'c'], + version : '0.1.0', + default_options : ['warning_level=3', 'cpp_std=c++23']) + +c_args = [] +cpp_args = [] +link_args = [] +name_suffix = [] +dependencies = [] + +add_project_arguments('-U_FORTIFY_SOURCE', '-D_FORTIFY_SOURCE=0', language: 'cpp') + +cc = meson.get_compiler('c') +cxx = meson.get_compiler('cpp') + +subdir('build-config') +subdir('src') \ No newline at end of file diff --git a/src/app/client.cpp b/src/app/client.cpp new file mode 100644 index 0000000..40553e7 --- /dev/null +++ b/src/app/client.cpp @@ -0,0 +1,41 @@ +#include "libRayfem/network/client.hpp" +#include "mfem.hpp" +#include "fourdst/config/config.h" +#include "CLI/CLI.hpp" +#include + +struct config { + std::string host = "localhost"; + int port = 5555; + std::string mesh_file = "stroid.mesh"; +}; + +int main(int argc, char** argv) { + fourdst::config::Config cfg; + CLI::App app{"RayFEM Client"}; + fourdst::config::register_as_cli(cfg, app, "config"); + CLI11_PARSE(app, argc, argv) + + auto mesh = std::make_unique(cfg->mesh_file.c_str()); + mesh->EnsureNodes(); + + mfem::FiniteElementSpace fespace(mesh.get(), new mfem::H1_FECollection(1, mesh->Dimension()), 1); + mfem::GridFunction gf(&fespace); + gf = 0.5; + + RayFEM::Client client(cfg->host, cfg->port); + + RayFEM::FrameMetadata meta; + meta.frame_index = 0; + meta.sim_time = 0.0; + + + if (client.send(*mesh, gf, meta)) { + std::println("Frame sent successfully."); + } else { + std::println("Failed to send frame."); + } + + + return 0; +} \ No newline at end of file diff --git a/src/app/main.cpp b/src/app/main.cpp new file mode 100644 index 0000000..716e8d3 --- /dev/null +++ b/src/app/main.cpp @@ -0,0 +1,50 @@ +#include +#include "raylib.h" + +#include "libRayfem/network/server.hpp" + +#include "fourdst/config/config.h" + +#include "CLI/CLI.hpp" +#include "czmq.h" + +struct Options { + std::string listen = "0.0.0.0"; + int port = 5555; + int target_fps = 60; + int screenwidth = 800; + int screenheight = 600; +}; + +int main(int argc, char** argv) { + zsys_init(); + + fourdst::config::Config config; + CLI::App app{"RayFEM Server"}; + fourdst::config::register_as_cli(config, app, "config"); + CLI11_PARSE(app, argc, argv) + + const int screenwidth = config->screenwidth; + const int screenheight = config->screenheight; + + InitWindow(screenwidth, screenheight, "raylib"); + + SetTargetFPS(config->target_fps); + + RayFEM::Server server(config->listen, config->port); + bool hasRecivedData = false; + + while (!WindowShouldClose()) { + auto frame = server.fetchLatestFrame(); + if (frame) { + hasRecivedData = true; + } + + BeginDrawing(); + ClearBackground(RAYWHITE); + std::string msg = std::format("Has Received {} frames", server.getReceivedFrameCount()); + DrawText(msg.c_str(), 250, 280, 20, DARKGREEN); + EndDrawing(); + } + CloseWindow(); +} \ No newline at end of file diff --git a/src/libRayfem/include/libRayfem/frame/render.hpp b/src/libRayfem/include/libRayfem/frame/render.hpp new file mode 100644 index 0000000..106124f --- /dev/null +++ b/src/libRayfem/include/libRayfem/frame/render.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "mfem.hpp" +#include "raylib.h" + +#include + +#include "libRayfem/network/packet.hpp" + +namespace RayFEM { + struct RenderFrame { + FrameMetadata metadata; + std::unique_ptr mesh; + std::unique_ptr gf; + + Model rayModel; + bool isUploaded = false; + }; +} \ No newline at end of file diff --git a/src/libRayfem/include/libRayfem/mesh/converter.hpp b/src/libRayfem/include/libRayfem/mesh/converter.hpp new file mode 100644 index 0000000..9e2933d --- /dev/null +++ b/src/libRayfem/include/libRayfem/mesh/converter.hpp @@ -0,0 +1,8 @@ +#pragma once + +#include "raylib.h" +#include "mfem.hpp" + +namespace RayFEM { + Model LoadModelFromMFEM(mfem::Mesh& mesh, mfem::GridFunction& gf); +} \ No newline at end of file diff --git a/src/libRayfem/include/libRayfem/network/client.hpp b/src/libRayfem/include/libRayfem/network/client.hpp new file mode 100644 index 0000000..aede87f --- /dev/null +++ b/src/libRayfem/include/libRayfem/network/client.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include "mfem.hpp" +#include "libRayfem/network/packet.hpp" +#include "zmq.hpp" + +namespace RayFEM { + class Client { + public: + Client(const std::string& host, size_t port); + bool send(mfem::Mesh& mesh, mfem::GridFunction& gf, const FrameMetadata& meta); + private: + std::string m_host; + size_t m_port; + std::string m_address; + + SocketPtr m_socket; + }; +} diff --git a/src/libRayfem/include/libRayfem/network/packet.hpp b/src/libRayfem/include/libRayfem/network/packet.hpp new file mode 100644 index 0000000..5390f09 --- /dev/null +++ b/src/libRayfem/include/libRayfem/network/packet.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include + +namespace RayFEM { + struct FrameMetadata { + uint32_t frame_index = 0; + double sim_time = 0; + char label[64] = "MFEM Simulation"; + }; + +#pragma pack(push, 1) + struct PacketHeader { + uint64_t magic = 0x52415946454D; + FrameMetadata metadata; + uint64_t mesh_bytes = 0; + uint64_t gf_bytes = 0; + }; +#pragma pack(pop) + +} \ No newline at end of file diff --git a/src/libRayfem/include/libRayfem/network/server.hpp b/src/libRayfem/include/libRayfem/network/server.hpp new file mode 100644 index 0000000..5822707 --- /dev/null +++ b/src/libRayfem/include/libRayfem/network/server.hpp @@ -0,0 +1,32 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include "libRayfem/frame/render.hpp" + +namespace RayFEM { + class Server { + public: + Server(const std::string& listen, size_t port); + ~Server(); + + std::unique_ptr fetchLatestFrame(); + size_t getReceivedFrameCount() const { return m_frameCount.load(); } + private: + std::string m_listen; + int m_port; + std::atomic m_running; + std::atomic m_frameCount{0}; + std::thread m_worker; + std::mutex m_mutex; + std::deque> m_frameQueue; + private: + void networkLoop(); + }; +} \ No newline at end of file diff --git a/src/libRayfem/include/libRayfem/network/zmq.hpp b/src/libRayfem/include/libRayfem/network/zmq.hpp new file mode 100644 index 0000000..ddb9245 --- /dev/null +++ b/src/libRayfem/include/libRayfem/network/zmq.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include "czmq.h" + +namespace RayFEM { + template + class ZmqPtr { + public: + ZmqPtr(T* ptr = nullptr) : ptr_(ptr) {} + ~ZmqPtr() { if (ptr_) Destroyer(&ptr_); } + + ZmqPtr(const ZmqPtr&) = delete; + ZmqPtr& operator=(const ZmqPtr&) = delete; + + ZmqPtr(ZmqPtr&& other) noexcept : ptr_(other.ptr_) { other.ptr_ = nullptr; } + ZmqPtr& operator=(ZmqPtr&& other) noexcept { + if (this != &other) { + if (ptr_) Destroyer(&ptr_); + ptr_ = other.ptr_; + other.ptr_ = nullptr; + } + return *this; + } + + T* release() { + T* temp = ptr_; + ptr_ = nullptr; + return temp; + } + + T* get() const { return ptr_; } + operator T*() const { return ptr_; } + T** operator&() { return &ptr_; } + + private: + T* ptr_ = nullptr; + }; + + using SocketPtr = ZmqPtr; + using MsgPtr = ZmqPtr; + using FramePtr = ZmqPtr; +} \ No newline at end of file diff --git a/src/libRayfem/lib/mesh/converter.cpp b/src/libRayfem/lib/mesh/converter.cpp new file mode 100644 index 0000000..bdeb7a2 --- /dev/null +++ b/src/libRayfem/lib/mesh/converter.cpp @@ -0,0 +1,118 @@ +#include "libRayfem/mesh/converter.hpp" +#include "mfem.hpp" +#include "raylib.h" + +namespace { + Color GetColorFromValue(double val, double min, double max) { + double t = (val - min) / (max - min); + t = std::clamp(t, 0.0, 1.0); + return ColorFromNormalized({t, 1-t, 0.5+(t*0.5), 1}; + } +} + +namespace RayFEM { + Model LoadModelFromMFEM(mfem::Mesh &mesh, mfem::GridFunction &gf) { + Mesh rMesh = { 0 }; + int numElements = mesh.GetNE(); + + int totalTriangles = 0; + for (int i = 0; i < numElements; i++) { + mfem::Geometry::Type geom = mesh.GetElementBaseGeometry(i); + switch (geom) { + case mfem::Geometry::TRIANGLE: + totalTriangles += 1; + break; + case mfem::Geometry::SQUARE: + totalTriangles += 2; + break; + case mfem::Geometry::TETRAHEDRON: + totalTriangles += 4; + break; + case mfem::Geometry::CUBE: + totalTriangles += 12; + break; + default: + throw std::runtime_error("Unsupported element geometry in MFEM to Raylib converter."); + } + } + rMesh.triangleCount = totalTriangles; + + rMesh.vertexCount = rMesh.triangleCount * 3; + + rMesh.vertices = (float *)RL_MALLOC(rMesh.vertexCount * 3 * sizeof(float)); + rMesh.colors = (unsigned char *)RL_MALLOC(rMesh.vertexCount * 4 * sizeof(unsigned char)); + + double vMin = gf.Min(); + double vMax = gf.Max(); + + + int vOffset =0; + auto AddTriangle = [&](const mfem::Vector& p1, const mfem::Vector& p2, const mfem::Vector& p3, double val1, double val2, double val3) { + float* v = rMesh.vertices; + + v[vOffset * 3 + 0] = static_cast(p1(0)); + v[vOffset * 3 + 1] = static_cast(p1(1)); + v[vOffset * 3 + 2] = static_cast(p1(2)); + + v[vOffset * 3 + 3] = static_cast(p2(0)); + v[vOffset * 3 + 4] = static_cast(p2(1)); + v[vOffset * 3 + 5] = static_cast(p2(2)); + + v[vOffset * 3 + 6] = static_cast(p3(0)); + v[vOffset * 3 + 7] = static_cast(p3(1)); + v[vOffset * 3 + 8] = static_cast(p3(2)); + + const Color c1 = GetColorFromValue(val1, vMin, vMax); + const Color c2 = GetColorFromValue(val2, vMin, vMax); + const Color c3 = GetColorFromValue(val3, vMin, vMax); + + unsigned char* c = rMesh.colors; + c[vOffset * 4 + 0] = c1.r; + c[vOffset * 4 + 1] = c1.g; + c[vOffset * 4 + 2] = c1.b; + c[vOffset * 4 + 3] = c1.a; + + c[vOffset * 4 + 4] = c2.r; + c[vOffset * 4 + 5] = c2.g; + c[vOffset * 4 + 6] = c2.b; + c[vOffset * 4 + 7] = c2.a; + + c[vOffset * 4 + 8] = c3.r; + c[vOffset * 4 + 9] = c3.g; + c[vOffset * 4 + 10] = c3.b; + c[vOffset * 4 + 11] = c3.a; + + vOffset += 3; + }; + + for (int i = 0; i < numElements; i++) { + mfem::Element* el = mesh.GetElement(i); + mfem::Array verticies; + mesh.GetElementVertices(i, verticies); + + auto GetPV = [&](int localIdx) { + mfem::Vector pos; + pos = mesh.GetVertex(verticies[localIdx]); + + if (pos.Size() == 2) { + pos.SetSize(3); + pos(2) = 0.0; + } + return std::make_pair(pos, gf(verticies[localIdx])); + }; + + mfem::Geometry::Type geom = mesh.GetElementBaseGeometry(i); + switch (geom) { + case mfem::Geometry::TRIANGLE: { + auto [p0, v0] = GetPV(0); + auto [p1, v1] = GetPV(1); + auto [p2, v2] = GetPV(2); + + AddTriangle(p0, p1, p2, v0, v1, v2); + + } + } + + } + } +} diff --git a/src/libRayfem/lib/network/client.cpp b/src/libRayfem/lib/network/client.cpp new file mode 100644 index 0000000..435ca18 --- /dev/null +++ b/src/libRayfem/lib/network/client.cpp @@ -0,0 +1,57 @@ +#include "libRayfem/network/client.hpp" +#include "libRayfem/network/zmq.hpp" +#include "libRayfem/network/packet.hpp" +#include "czmq.h" + +#include + +namespace { + std::string format_address(const std::string& host, const size_t port) { + return "tcp://" + host + ":" + std::to_string(port); + } +} + +namespace RayFEM { + Client::Client( + const std::string &host, + const size_t port + ) + : + m_host(host), + m_port(port), + m_address(format_address(m_host, m_port)), + m_socket(zsock_new_push(m_address.c_str())) { + if (!m_socket) { + throw std::runtime_error("Failed to create ZMQ socket to " + m_address); + } + zsock_set_linger(m_socket, 1000); + } + + bool Client::send(mfem::Mesh &mesh, mfem::GridFunction &gf, const FrameMetadata& meta) { + if (!m_socket) { + return false; + } + + std::stringstream m_ss, g_ss; + + mesh.Print(m_ss); + gf.Save(g_ss); + + std::string m_data = m_ss.str(); + std::string g_data = g_ss.str(); + + MsgPtr msg(zmsg_new()); + + PacketHeader header{.metadata = meta, .mesh_bytes = m_data.size(), .gf_bytes = g_data.size()}; + zmsg_addmem(msg, &header, sizeof(PacketHeader)); + zmsg_addstr(msg, m_data.c_str()); + zmsg_addstr(msg, g_data.c_str()); + + zmsg_t* raw_msg = msg.get(); + int rc = zmsg_send(&raw_msg, m_socket); + msg.release(); + return rc == 0; + + + } +} diff --git a/src/libRayfem/lib/network/server.cpp b/src/libRayfem/lib/network/server.cpp new file mode 100644 index 0000000..2985d76 --- /dev/null +++ b/src/libRayfem/lib/network/server.cpp @@ -0,0 +1,95 @@ +#include "libRayfem/frame/render.hpp" +#include "libRayfem/network/server.hpp" +#include "libRayfem/network/zmq.hpp" + +#include +#include +#include +#include + +#include "czmq.h" + +namespace RayFEM { + Server::Server( + const std::string& listen, + const size_t port + ) : + m_listen(listen), + m_port(port), + m_running(true), + m_worker(std::thread(&Server::networkLoop, this)) {} + + Server::~Server() { + m_running = false; + if (m_worker.joinable()) { + m_worker.join(); + } + } + + std::unique_ptr Server::fetchLatestFrame() { + std::lock_guard lock(m_mutex); + if (m_frameQueue.empty()) return nullptr; + + auto frame = std::move(m_frameQueue.back()); + m_frameQueue.clear(); + return frame; + } + + void Server::networkLoop() { + std::string address = "tcp://" + m_listen + ":" + std::to_string(m_port); + + SocketPtr pull(zsock_new_pull(address.c_str())); + + zpoller_t *poller = zpoller_new(pull.get(), NULL); + + while (m_running) { + void *which = zpoller_wait(poller, 100); + if (!which) continue; + + MsgPtr msg(zmsg_recv(pull.get())); + if (!msg) continue; + + auto frame = std::make_unique(); + + zframe_t *h_frame = zmsg_pop(msg.get()); + if (zframe_size(h_frame) == sizeof(PacketHeader)) { + frame->metadata = reinterpret_cast(zframe_data(h_frame))->metadata; + } + + zframe_destroy(&h_frame); + + zframe_t *m_frame = zmsg_pop(msg.get()); + zframe_t *g_frame = zmsg_pop(msg.get()); + + if (m_frame && g_frame) { + std::string m_data(reinterpret_cast(zframe_data(m_frame)), zframe_size(m_frame)); + std::string g_data(reinterpret_cast(zframe_data(g_frame)), zframe_size(g_frame)); + + std::cout << g_data << std::endl; + + std::stringstream m_ss(m_data); + std::stringstream g_ss(g_data); + + try { + frame->mesh = std::make_unique(m_ss); + frame->mesh->EnsureNodes(); + frame->gf = std::make_unique(frame->mesh.get(), g_ss); + } catch (...) { + std::cerr << "Error creating mesh frame" << std::endl; + } + + ++m_frameCount; + + { + std::lock_guard lock(m_mutex); + m_frameQueue.push_back(std::move(frame)); + } + } + + zframe_destroy(&m_frame); + zframe_destroy(&g_frame); + + } + zpoller_destroy(&poller); + } +} diff --git a/src/libRayfem/meson.build b/src/libRayfem/meson.build new file mode 100644 index 0000000..b24d146 --- /dev/null +++ b/src/libRayfem/meson.build @@ -0,0 +1,23 @@ +include_dirs = include_directories('include') +sources = files( + 'lib/network/client.cpp', + 'lib/network/server.cpp', + 'lib/mesh/converter.cpp' +) + +libRayFem = library( + 'libRayFem', + sources, + include_directories: include_dirs, + dependencies: dependencies, + cpp_args: cpp_args, + install: true +) + +rayfem_dep = declare_dependency( + include_directories: include_dirs, + link_with: libRayFem, + sources: sources, + dependencies: dependencies, + compile_args: cpp_args, +) \ No newline at end of file diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..0fef91a --- /dev/null +++ b/src/meson.build @@ -0,0 +1,17 @@ +subdir('libRayFem') +executable( + 'RayFEM', + 'app/main.cpp', + dependencies: [dependencies, rayfem_dep], + cpp_args: cpp_args, + c_args: c_args, + link_args: link_args +) +executable( + 'exampleClient', + 'app/client.cpp', + dependencies: [dependencies, rayfem_dep], + cpp_args: cpp_args, + c_args: c_args, + link_args: link_args +) diff --git a/stroid.mesh b/stroid.mesh new file mode 100644 index 0000000..587764c --- /dev/null +++ b/stroid.mesh @@ -0,0 +1,2128 @@ +MFEM mesh v1.0 + +# +# MFEM Geometry Types (see fem/geom.hpp): +# +# POINT = 0 +# SEGMENT = 1 +# TRIANGLE = 2 +# SQUARE = 3 +# TETRAHEDRON = 4 +# CUBE = 5 +# PRISM = 6 +# PYRAMID = 7 +# + +dimension +3 + +elements +448 +1 5 0 79 281 82 87 282 461 285 +1 5 79 16 80 281 282 88 283 461 +1 5 281 80 48 81 461 283 89 284 +1 5 82 281 81 19 285 461 284 90 +1 5 87 282 461 285 24 83 286 86 +1 5 282 88 283 461 83 49 84 286 +1 5 461 283 89 284 286 84 72 85 +1 5 285 461 284 90 86 286 85 52 +1 5 16 91 287 80 88 288 462 283 +1 5 91 1 92 287 288 97 289 462 +1 5 287 92 17 93 462 289 98 290 +1 5 80 287 93 48 283 462 290 89 +1 5 88 288 462 283 49 94 291 84 +1 5 288 97 289 462 94 25 95 291 +1 5 462 289 98 290 291 95 50 96 +1 5 283 462 290 89 84 291 96 72 +1 5 48 93 292 101 89 290 463 295 +1 5 93 17 99 292 290 98 293 463 +1 5 292 99 3 100 463 293 105 294 +1 5 101 292 100 18 295 463 294 106 +1 5 89 290 463 295 72 96 296 104 +1 5 290 98 293 463 96 50 102 296 +1 5 463 293 105 294 296 102 26 103 +1 5 295 463 294 106 104 296 103 51 +1 5 19 81 297 108 90 284 464 299 +1 5 81 48 101 297 284 89 295 464 +1 5 297 101 18 107 464 295 106 298 +1 5 108 297 107 2 299 464 298 111 +1 5 90 284 464 299 52 85 300 110 +1 5 284 89 295 464 85 72 104 300 +1 5 464 295 106 298 300 104 51 109 +1 5 299 464 298 111 110 300 109 27 +1 5 24 83 286 86 116 301 465 304 +1 5 83 49 84 286 301 117 302 465 +1 5 286 84 72 85 465 302 118 303 +1 5 86 286 85 52 304 465 303 119 +1 5 116 301 465 304 4 112 305 115 +1 5 301 117 302 465 112 20 113 305 +1 5 465 302 118 303 305 113 53 114 +1 5 304 465 303 119 115 305 114 23 +1 5 49 94 291 84 117 306 466 302 +1 5 94 25 95 291 306 123 307 466 +1 5 291 95 50 96 466 307 124 308 +1 5 84 291 96 72 302 466 308 118 +1 5 117 306 466 302 20 120 309 113 +1 5 306 123 307 466 120 5 121 309 +1 5 466 307 124 308 309 121 21 122 +1 5 302 466 308 118 113 309 122 53 +1 5 72 96 296 104 118 308 467 312 +1 5 96 50 102 296 308 124 310 467 +1 5 296 102 26 103 467 310 128 311 +1 5 104 296 103 51 312 467 311 129 +1 5 118 308 467 312 53 122 313 127 +1 5 308 124 310 467 122 21 125 313 +1 5 467 310 128 311 313 125 7 126 +1 5 312 467 311 129 127 313 126 22 +1 5 52 85 300 110 119 303 468 315 +1 5 85 72 104 300 303 118 312 468 +1 5 300 104 51 109 468 312 129 314 +1 5 110 300 109 27 315 468 314 132 +1 5 119 303 468 315 23 114 316 131 +1 5 303 118 312 468 114 53 127 316 +1 5 468 312 129 314 316 127 22 130 +1 5 315 468 314 132 131 316 130 6 +2 5 8 133 317 136 141 318 469 321 +2 5 133 28 134 317 318 142 319 469 +2 5 317 134 54 135 469 319 143 320 +2 5 136 317 135 31 321 469 320 144 +2 5 141 318 469 321 32 137 322 140 +2 5 318 142 319 469 137 55 138 322 +2 5 469 319 143 320 322 138 73 139 +2 5 321 469 320 144 140 322 139 58 +2 5 28 145 323 134 142 324 470 319 +2 5 145 9 146 323 324 151 325 470 +2 5 323 146 29 147 470 325 152 326 +2 5 134 323 147 54 319 470 326 143 +2 5 142 324 470 319 55 148 327 138 +2 5 324 151 325 470 148 33 149 327 +2 5 470 325 152 326 327 149 56 150 +2 5 319 470 326 143 138 327 150 73 +2 5 54 147 328 155 143 326 471 331 +2 5 147 29 153 328 326 152 329 471 +2 5 328 153 11 154 471 329 159 330 +2 5 155 328 154 30 331 471 330 160 +2 5 143 326 471 331 73 150 332 158 +2 5 326 152 329 471 150 56 156 332 +2 5 471 329 159 330 332 156 34 157 +2 5 331 471 330 160 158 332 157 57 +2 5 31 135 333 162 144 320 472 335 +2 5 135 54 155 333 320 143 331 472 +2 5 333 155 30 161 472 331 160 334 +2 5 162 333 161 10 335 472 334 165 +2 5 144 320 472 335 58 139 336 164 +2 5 320 143 331 472 139 73 158 336 +2 5 472 331 160 334 336 158 57 163 +2 5 335 472 334 165 164 336 163 35 +2 5 32 137 322 140 166 337 473 340 +2 5 137 55 138 322 337 167 338 473 +2 5 322 138 73 139 473 338 168 339 +2 5 140 322 139 58 340 473 339 169 +2 5 166 337 473 340 0 79 281 82 +2 5 337 167 338 473 79 16 80 281 +2 5 473 338 168 339 281 80 48 81 +2 5 340 473 339 169 82 281 81 19 +2 5 55 148 327 138 167 341 474 338 +2 5 148 33 149 327 341 170 342 474 +2 5 327 149 56 150 474 342 171 343 +2 5 138 327 150 73 338 474 343 168 +2 5 167 341 474 338 16 91 287 80 +2 5 341 170 342 474 91 1 92 287 +2 5 474 342 171 343 287 92 17 93 +2 5 338 474 343 168 80 287 93 48 +2 5 73 150 332 158 168 343 475 346 +2 5 150 56 156 332 343 171 344 475 +2 5 332 156 34 157 475 344 172 345 +2 5 158 332 157 57 346 475 345 173 +2 5 168 343 475 346 48 93 292 101 +2 5 343 171 344 475 93 17 99 292 +2 5 475 344 172 345 292 99 3 100 +2 5 346 475 345 173 101 292 100 18 +2 5 58 139 336 164 169 339 476 348 +2 5 139 73 158 336 339 168 346 476 +2 5 336 158 57 163 476 346 173 347 +2 5 164 336 163 35 348 476 347 174 +2 5 169 339 476 348 19 81 297 108 +2 5 339 168 346 476 81 48 101 297 +2 5 476 346 173 347 297 101 18 107 +2 5 348 476 347 174 108 297 107 2 +2 5 4 112 305 115 179 349 477 352 +2 5 112 20 113 305 349 180 350 477 +2 5 305 113 53 114 477 350 181 351 +2 5 115 305 114 23 352 477 351 182 +2 5 179 349 477 352 40 175 353 178 +2 5 349 180 350 477 175 59 176 353 +2 5 477 350 181 351 353 176 74 177 +2 5 352 477 351 182 178 353 177 62 +2 5 20 120 309 113 180 354 478 350 +2 5 120 5 121 309 354 186 355 478 +2 5 309 121 21 122 478 355 187 356 +2 5 113 309 122 53 350 478 356 181 +2 5 180 354 478 350 59 183 357 176 +2 5 354 186 355 478 183 41 184 357 +2 5 478 355 187 356 357 184 60 185 +2 5 350 478 356 181 176 357 185 74 +2 5 53 122 313 127 181 356 479 360 +2 5 122 21 125 313 356 187 358 479 +2 5 313 125 7 126 479 358 191 359 +2 5 127 313 126 22 360 479 359 192 +2 5 181 356 479 360 74 185 361 190 +2 5 356 187 358 479 185 60 188 361 +2 5 479 358 191 359 361 188 42 189 +2 5 360 479 359 192 190 361 189 61 +2 5 23 114 316 131 182 351 480 363 +2 5 114 53 127 316 351 181 360 480 +2 5 316 127 22 130 480 360 192 362 +2 5 131 316 130 6 363 480 362 195 +2 5 182 351 480 363 62 177 364 194 +2 5 351 181 360 480 177 74 190 364 +2 5 480 360 192 362 364 190 61 193 +2 5 363 480 362 195 194 364 193 43 +2 5 40 175 353 178 200 365 481 368 +2 5 175 59 176 353 365 201 366 481 +2 5 353 176 74 177 481 366 202 367 +2 5 178 353 177 62 368 481 367 203 +2 5 200 365 481 368 12 196 369 199 +2 5 365 201 366 481 196 36 197 369 +2 5 481 366 202 367 369 197 63 198 +2 5 368 481 367 203 199 369 198 39 +2 5 59 183 357 176 201 370 482 366 +2 5 183 41 184 357 370 207 371 482 +2 5 357 184 60 185 482 371 208 372 +2 5 176 357 185 74 366 482 372 202 +2 5 201 370 482 366 36 204 373 197 +2 5 370 207 371 482 204 13 205 373 +2 5 482 371 208 372 373 205 37 206 +2 5 366 482 372 202 197 373 206 63 +2 5 74 185 361 190 202 372 483 376 +2 5 185 60 188 361 372 208 374 483 +2 5 361 188 42 189 483 374 212 375 +2 5 190 361 189 61 376 483 375 213 +2 5 202 372 483 376 63 206 377 211 +2 5 372 208 374 483 206 37 209 377 +2 5 483 374 212 375 377 209 15 210 +2 5 376 483 375 213 211 377 210 38 +2 5 62 177 364 194 203 367 484 379 +2 5 177 74 190 364 367 202 376 484 +2 5 364 190 61 193 484 376 213 378 +2 5 194 364 193 43 379 484 378 216 +2 5 203 367 484 379 39 198 380 215 +2 5 367 202 376 484 198 63 211 380 +2 5 484 376 213 378 380 211 38 214 +2 5 379 484 378 216 215 380 214 14 +2 5 0 79 282 87 166 337 485 383 +2 5 79 16 88 282 337 167 381 485 +2 5 282 88 49 83 485 381 220 382 +2 5 87 282 83 24 383 485 382 221 +2 5 166 337 485 383 32 137 384 219 +2 5 337 167 381 485 137 55 217 384 +2 5 485 381 220 382 384 217 75 218 +2 5 383 485 382 221 219 384 218 65 +2 5 16 91 288 88 167 341 486 381 +2 5 91 1 97 288 341 170 385 486 +2 5 288 97 25 94 486 385 224 386 +2 5 88 288 94 49 381 486 386 220 +2 5 167 341 486 381 55 148 387 217 +2 5 341 170 385 486 148 33 222 387 +2 5 486 385 224 386 387 222 64 223 +2 5 381 486 386 220 217 387 223 75 +2 5 49 94 306 117 220 386 487 389 +2 5 94 25 123 306 386 224 388 487 +2 5 306 123 5 120 487 388 186 354 +2 5 117 306 120 20 389 487 354 180 +2 5 220 386 487 389 75 223 390 226 +2 5 386 224 388 487 223 64 225 390 +2 5 487 388 186 354 390 225 41 183 +2 5 389 487 354 180 226 390 183 59 +2 5 24 83 301 116 221 382 488 391 +2 5 83 49 117 301 382 220 389 488 +2 5 301 117 20 112 488 389 180 349 +2 5 116 301 112 4 391 488 349 179 +2 5 221 382 488 391 65 218 392 227 +2 5 382 220 389 488 218 75 226 392 +2 5 488 389 180 349 392 226 59 175 +2 5 391 488 349 179 227 392 175 40 +2 5 32 137 384 219 141 318 489 395 +2 5 137 55 217 384 318 142 393 489 +2 5 384 217 75 218 489 393 231 394 +2 5 219 384 218 65 395 489 394 232 +2 5 141 318 489 395 8 133 396 230 +2 5 318 142 393 489 133 28 228 396 +2 5 489 393 231 394 396 228 66 229 +2 5 395 489 394 232 230 396 229 45 +2 5 55 148 387 217 142 324 490 393 +2 5 148 33 222 387 324 151 397 490 +2 5 387 222 64 223 490 397 235 398 +2 5 217 387 223 75 393 490 398 231 +2 5 142 324 490 393 28 145 399 228 +2 5 324 151 397 490 145 9 233 399 +2 5 490 397 235 398 399 233 44 234 +2 5 393 490 398 231 228 399 234 66 +2 5 75 223 390 226 231 398 491 401 +2 5 223 64 225 390 398 235 400 491 +2 5 390 225 41 183 491 400 207 370 +2 5 226 390 183 59 401 491 370 201 +2 5 231 398 491 401 66 234 402 237 +2 5 398 235 400 491 234 44 236 402 +2 5 491 400 207 370 402 236 13 204 +2 5 401 491 370 201 237 402 204 36 +2 5 65 218 392 227 232 394 492 403 +2 5 218 75 226 392 394 231 401 492 +2 5 392 226 59 175 492 401 201 365 +2 5 227 392 175 40 403 492 365 200 +2 5 232 394 492 403 45 229 404 238 +2 5 394 231 401 492 229 66 237 404 +2 5 492 401 201 365 404 237 36 196 +2 5 403 492 365 200 238 404 196 12 +2 5 10 161 405 241 165 334 493 408 +2 5 161 30 239 405 334 160 406 493 +2 5 405 239 67 240 493 406 245 407 +2 5 241 405 240 47 408 493 407 246 +2 5 165 334 493 408 35 163 409 244 +2 5 334 160 406 493 163 57 242 409 +2 5 493 406 245 407 409 242 76 243 +2 5 408 493 407 246 244 409 243 69 +2 5 30 154 410 239 160 330 494 406 +2 5 154 11 247 410 330 159 411 494 +2 5 410 247 46 248 494 411 251 412 +2 5 239 410 248 67 406 494 412 245 +2 5 160 330 494 406 57 157 413 242 +2 5 330 159 411 494 157 34 249 413 +2 5 494 411 251 412 413 249 68 250 +2 5 406 494 412 245 242 413 250 76 +2 5 67 248 414 253 245 412 495 416 +2 5 248 46 252 414 412 251 415 495 +2 5 414 252 15 210 495 415 212 375 +2 5 253 414 210 38 416 495 375 213 +2 5 245 412 495 416 76 250 417 255 +2 5 412 251 415 495 250 68 254 417 +2 5 495 415 212 375 417 254 42 189 +2 5 416 495 375 213 255 417 189 61 +2 5 47 240 418 256 246 407 496 419 +2 5 240 67 253 418 407 245 416 496 +2 5 418 253 38 214 496 416 213 378 +2 5 256 418 214 14 419 496 378 216 +2 5 246 407 496 419 69 243 420 257 +2 5 407 245 416 496 243 76 255 420 +2 5 496 416 213 378 420 255 61 193 +2 5 419 496 378 216 257 420 193 43 +2 5 35 163 409 244 174 347 497 423 +2 5 163 57 242 409 347 173 421 497 +2 5 409 242 76 243 497 421 258 422 +2 5 244 409 243 69 423 497 422 259 +2 5 174 347 497 423 2 107 298 111 +2 5 347 173 421 497 107 18 106 298 +2 5 497 421 258 422 298 106 51 109 +2 5 423 497 422 259 111 298 109 27 +2 5 57 157 413 242 173 345 498 421 +2 5 157 34 249 413 345 172 424 498 +2 5 413 249 68 250 498 424 260 425 +2 5 242 413 250 76 421 498 425 258 +2 5 173 345 498 421 18 100 294 106 +2 5 345 172 424 498 100 3 105 294 +2 5 498 424 260 425 294 105 26 103 +2 5 421 498 425 258 106 294 103 51 +2 5 76 250 417 255 258 425 499 427 +2 5 250 68 254 417 425 260 426 499 +2 5 417 254 42 189 499 426 191 359 +2 5 255 417 189 61 427 499 359 192 +2 5 258 425 499 427 51 103 311 129 +2 5 425 260 426 499 103 26 128 311 +2 5 499 426 191 359 311 128 7 126 +2 5 427 499 359 192 129 311 126 22 +2 5 69 243 420 257 259 422 500 428 +2 5 243 76 255 420 422 258 427 500 +2 5 420 255 61 193 500 427 192 362 +2 5 257 420 193 43 428 500 362 195 +2 5 259 422 500 428 27 109 314 132 +2 5 422 258 427 500 109 51 129 314 +2 5 500 427 192 362 314 129 22 130 +2 5 428 500 362 195 132 314 130 6 +2 5 1 92 289 97 170 342 501 385 +2 5 92 17 98 289 342 171 429 501 +2 5 289 98 50 95 501 429 263 430 +2 5 97 289 95 25 385 501 430 224 +2 5 170 342 501 385 33 149 431 222 +2 5 342 171 429 501 149 56 261 431 +2 5 501 429 263 430 431 261 77 262 +2 5 385 501 430 224 222 431 262 64 +2 5 17 99 293 98 171 344 502 429 +2 5 99 3 105 293 344 172 424 502 +2 5 293 105 26 102 502 424 260 432 +2 5 98 293 102 50 429 502 432 263 +2 5 171 344 502 429 56 156 433 261 +2 5 344 172 424 502 156 34 249 433 +2 5 502 424 260 432 433 249 68 264 +2 5 429 502 432 263 261 433 264 77 +2 5 50 102 310 124 263 432 503 434 +2 5 102 26 128 310 432 260 426 503 +2 5 310 128 7 125 503 426 191 358 +2 5 124 310 125 21 434 503 358 187 +2 5 263 432 503 434 77 264 435 265 +2 5 432 260 426 503 264 68 254 435 +2 5 503 426 191 358 435 254 42 188 +2 5 434 503 358 187 265 435 188 60 +2 5 25 95 307 123 224 430 504 388 +2 5 95 50 124 307 430 263 434 504 +2 5 307 124 21 121 504 434 187 355 +2 5 123 307 121 5 388 504 355 186 +2 5 224 430 504 388 64 262 436 225 +2 5 430 263 434 504 262 77 265 436 +2 5 504 434 187 355 436 265 60 184 +2 5 388 504 355 186 225 436 184 41 +2 5 33 149 431 222 151 325 505 397 +2 5 149 56 261 431 325 152 437 505 +2 5 431 261 77 262 505 437 268 438 +2 5 222 431 262 64 397 505 438 235 +2 5 151 325 505 397 9 146 439 233 +2 5 325 152 437 505 146 29 266 439 +2 5 505 437 268 438 439 266 70 267 +2 5 397 505 438 235 233 439 267 44 +2 5 56 156 433 261 152 329 506 437 +2 5 156 34 249 433 329 159 411 506 +2 5 433 249 68 264 506 411 251 440 +2 5 261 433 264 77 437 506 440 268 +2 5 152 329 506 437 29 153 441 266 +2 5 329 159 411 506 153 11 247 441 +2 5 506 411 251 440 441 247 46 269 +2 5 437 506 440 268 266 441 269 70 +2 5 77 264 435 265 268 440 507 442 +2 5 264 68 254 435 440 251 415 507 +2 5 435 254 42 188 507 415 212 374 +2 5 265 435 188 60 442 507 374 208 +2 5 268 440 507 442 70 269 443 270 +2 5 440 251 415 507 269 46 252 443 +2 5 507 415 212 374 443 252 15 209 +2 5 442 507 374 208 270 443 209 37 +2 5 64 262 436 225 235 438 508 400 +2 5 262 77 265 436 438 268 442 508 +2 5 436 265 60 184 508 442 208 371 +2 5 225 436 184 41 400 508 371 207 +2 5 235 438 508 400 44 267 444 236 +2 5 438 268 442 508 267 70 270 444 +2 5 508 442 208 371 444 270 37 205 +2 5 400 508 371 207 236 444 205 13 +2 5 0 87 285 82 166 383 509 340 +2 5 87 24 86 285 383 221 445 509 +2 5 285 86 52 90 509 445 273 446 +2 5 82 285 90 19 340 509 446 169 +2 5 166 383 509 340 32 219 447 140 +2 5 383 221 445 509 219 65 271 447 +2 5 509 445 273 446 447 271 78 272 +2 5 340 509 446 169 140 447 272 58 +2 5 24 116 304 86 221 391 510 445 +2 5 116 4 115 304 391 179 352 510 +2 5 304 115 23 119 510 352 182 448 +2 5 86 304 119 52 445 510 448 273 +2 5 221 391 510 445 65 227 449 271 +2 5 391 179 352 510 227 40 178 449 +2 5 510 352 182 448 449 178 62 274 +2 5 445 510 448 273 271 449 274 78 +2 5 52 119 315 110 273 448 511 450 +2 5 119 23 131 315 448 182 363 511 +2 5 315 131 6 132 511 363 195 428 +2 5 110 315 132 27 450 511 428 259 +2 5 273 448 511 450 78 274 451 275 +2 5 448 182 363 511 274 62 194 451 +2 5 511 363 195 428 451 194 43 257 +2 5 450 511 428 259 275 451 257 69 +2 5 19 90 299 108 169 446 512 348 +2 5 90 52 110 299 446 273 450 512 +2 5 299 110 27 111 512 450 259 423 +2 5 108 299 111 2 348 512 423 174 +2 5 169 446 512 348 58 272 452 164 +2 5 446 273 450 512 272 78 275 452 +2 5 512 450 259 423 452 275 69 244 +2 5 348 512 423 174 164 452 244 35 +2 5 32 219 447 140 141 395 513 321 +2 5 219 65 271 447 395 232 453 513 +2 5 447 271 78 272 513 453 278 454 +2 5 140 447 272 58 321 513 454 144 +2 5 141 395 513 321 8 230 455 136 +2 5 395 232 453 513 230 45 276 455 +2 5 513 453 278 454 455 276 71 277 +2 5 321 513 454 144 136 455 277 31 +2 5 65 227 449 271 232 403 514 453 +2 5 227 40 178 449 403 200 368 514 +2 5 449 178 62 274 514 368 203 456 +2 5 271 449 274 78 453 514 456 278 +2 5 232 403 514 453 45 238 457 276 +2 5 403 200 368 514 238 12 199 457 +2 5 514 368 203 456 457 199 39 279 +2 5 453 514 456 278 276 457 279 71 +2 5 78 274 451 275 278 456 515 458 +2 5 274 62 194 451 456 203 379 515 +2 5 451 194 43 257 515 379 216 419 +2 5 275 451 257 69 458 515 419 246 +2 5 278 456 515 458 71 279 459 280 +2 5 456 203 379 515 279 39 215 459 +2 5 515 379 216 419 459 215 14 256 +2 5 458 515 419 246 280 459 256 47 +2 5 58 272 452 164 144 454 516 335 +2 5 272 78 275 452 454 278 458 516 +2 5 452 275 69 244 516 458 246 408 +2 5 164 452 244 35 335 516 408 165 +2 5 144 454 516 335 31 277 460 162 +2 5 454 278 458 516 277 71 280 460 +2 5 516 458 246 408 460 280 47 241 +2 5 335 516 408 165 162 460 241 10 + +boundary +96 +1 3 12 196 369 199 +1 3 196 36 197 369 +1 3 369 197 63 198 +1 3 199 369 198 39 +1 3 36 204 373 197 +1 3 204 13 205 373 +1 3 373 205 37 206 +1 3 197 373 206 63 +1 3 63 206 377 211 +1 3 206 37 209 377 +1 3 377 209 15 210 +1 3 211 377 210 38 +1 3 39 198 380 215 +1 3 198 63 211 380 +1 3 380 211 38 214 +1 3 215 380 214 14 +1 3 13 236 444 205 +1 3 236 44 267 444 +1 3 444 267 70 270 +1 3 205 444 270 37 +1 3 44 233 439 267 +1 3 233 9 146 439 +1 3 439 146 29 266 +1 3 267 439 266 70 +1 3 70 266 441 269 +1 3 266 29 153 441 +1 3 441 153 11 247 +1 3 269 441 247 46 +1 3 37 270 443 209 +1 3 270 70 269 443 +1 3 443 269 46 252 +1 3 209 443 252 15 +1 3 9 145 323 146 +1 3 145 28 134 323 +1 3 323 134 54 147 +1 3 146 323 147 29 +1 3 28 133 317 134 +1 3 133 8 136 317 +1 3 317 136 31 135 +1 3 134 317 135 54 +1 3 54 135 333 155 +1 3 135 31 162 333 +1 3 333 162 10 161 +1 3 155 333 161 30 +1 3 29 147 328 153 +1 3 147 54 155 328 +1 3 328 155 30 154 +1 3 153 328 154 11 +1 3 8 230 455 136 +1 3 230 45 276 455 +1 3 455 276 71 277 +1 3 136 455 277 31 +1 3 45 238 457 276 +1 3 238 12 199 457 +1 3 457 199 39 279 +1 3 276 457 279 71 +1 3 71 279 459 280 +1 3 279 39 215 459 +1 3 459 215 14 256 +1 3 280 459 256 47 +1 3 31 277 460 162 +1 3 277 71 280 460 +1 3 460 280 47 241 +1 3 162 460 241 10 +1 3 8 133 396 230 +1 3 133 28 228 396 +1 3 396 228 66 229 +1 3 230 396 229 45 +1 3 28 145 399 228 +1 3 145 9 233 399 +1 3 399 233 44 234 +1 3 228 399 234 66 +1 3 66 234 402 237 +1 3 234 44 236 402 +1 3 402 236 13 204 +1 3 237 402 204 36 +1 3 45 229 404 238 +1 3 229 66 237 404 +1 3 404 237 36 196 +1 3 238 404 196 12 +1 3 14 214 418 256 +1 3 214 38 253 418 +1 3 418 253 67 240 +1 3 256 418 240 47 +1 3 38 210 414 253 +1 3 210 15 252 414 +1 3 414 252 46 248 +1 3 253 414 248 67 +1 3 67 248 410 239 +1 3 248 46 247 410 +1 3 410 247 11 154 +1 3 239 410 154 30 +1 3 47 240 405 241 +1 3 240 67 239 405 +1 3 405 239 30 161 +1 3 241 405 161 10 + +vertices +517 + +nodes +FiniteElementSpace +FiniteElementCollection: H1_3D_P1 +VDim: 3 +Ordering: 0 + +-0.866025 +0.866025 +-0.866025 +0.866025 +-0.866025 +0.866025 +-0.866025 +0.866025 +-2.88675 +2.88675 +-2.88675 +2.88675 +-2.88675 +2.88675 +-2.88675 +2.88675 +0 +1.06066 +0 +-1.06066 +0 +1.06066 +0 +-1.06066 +-1.06066 +1.06066 +1.06066 +-1.06066 +0 +3.53553 +0 +-3.53553 +-1.87639 +1.87639 +1.87639 +-1.87639 +0 +3.53553 +0 +-3.53553 +-1.87639 +1.87639 +1.87639 +-1.87639 +3.53553 +-3.53553 +3.53553 +-3.53553 +0 +0 +1.5 +0 +-1.5 +0 +0 +0 +2.2981 +0 +-2.2981 +0 +2.2981 +0 +-2.2981 +0 +2.2981 +-2.2981 +0 +0 +2.2981 +-2.2981 +5 +-5 +0 +0 +0 +0 +0 +3.25 +-3.25 +-0.421627 +0 +-0.574025 +-1.0179 +-0.574025 +0 +-0.75 +-1.38582 +-1.0179 +0 +0 +-1.38582 +0.421627 +1.0179 +0.574025 +0.574025 +1.38582 +0.75 +1.0179 +1.38582 +1.0179 +0.421627 +0 +1.38582 +0.574025 +0 +1.0179 +0 +-0.421627 +-1.0179 +-0.574025 +-1.38582 +-1.0179 +-0.421627 +0 +-0.574025 +-1.0179 +-1.0179 +0 +0 +-1.38582 +0.421627 +1.0179 +0.574025 +1.0179 +1.38582 +1.0179 +0.421627 +0 +1.0179 +0 +-0.421627 +-1.0179 +-1.0179 +-1.40542 +0 +-1.91342 +-3.39299 +-0.913525 +0 +-1.24372 +-2.20544 +-2.38157 +0 +0 +-2.91682 +1.40542 +3.39299 +1.91342 +0.913525 +2.20544 +1.24372 +2.38157 +2.91682 +3.39299 +1.40542 +0 +2.20544 +0.913525 +0 +2.38157 +0 +-1.40542 +-3.39299 +-0.913525 +-2.20544 +-2.38157 +-1.37121 +0 +0 +-1.67938 +1.37121 +1.67938 +1.37121 +0 +-1.37121 +-0.913525 +0 +-1.24372 +-2.20544 +-1.37121 +0 +0 +-1.67938 +0.913525 +2.20544 +1.24372 +1.37121 +1.67938 +2.20544 +0.913525 +0 +1.37121 +0 +-0.913525 +-2.20544 +-1.37121 +-1.40542 +0 +-1.91342 +-3.39299 +-2.38157 +0 +0 +-2.91682 +1.40542 +3.39299 +1.91342 +2.38157 +2.91682 +3.39299 +1.40542 +0 +2.38157 +0 +-1.40542 +-3.39299 +-2.38157 +0 +-1.24372 +-2.20544 +0 +-1.67938 +2.20544 +1.24372 +1.67938 +2.20544 +0 +-2.20544 +0 +-1.91342 +-3.39299 +0 +-2.91682 +3.39299 +1.91342 +2.91682 +3.39299 +0 +-3.39299 +0 +-1.91342 +-3.39299 +0 +-1.24372 +-2.20544 +0 +-2.91682 +3.39299 +1.91342 +2.20544 +1.24372 +2.91682 +3.39299 +0 +2.20544 +0 +-3.39299 +-2.20544 +0 +-1.67938 +1.67938 +3.00261 +3.00261 +2.375 +3.00261 +3.00261 +4.6194 +4.6194 +4.125 +4.6194 +4.6194 +-3.00261 +-3.00261 +-2.375 +-3.00261 +-3.00261 +-4.6194 +-4.6194 +-4.125 +-4.6194 +-4.6194 +-0.53611 +-0.53611 +0 +-0.640165 +-1.29428 +-0.640165 +0.53611 +0.53611 +1.29428 +0.640165 +0.640165 +0.53611 +1.29428 +0.53611 +0 +0.640165 +-0.53611 +-0.53611 +-1.29428 +-0.640165 +-0.53611 +0 +-0.640165 +-1.29428 +-0.53611 +0.53611 +1.29428 +0.640165 +0.53611 +1.29428 +0.53611 +0 +0.53611 +-0.53611 +-1.29428 +-0.53611 +-1.78703 +-1.15947 +0 +-1.57857 +-2.79922 +-1.16157 +1.78703 +1.15947 +2.79922 +1.57857 +1.16157 +1.78703 +2.79922 +1.15947 +0 +1.16157 +-1.78703 +-1.15947 +-2.79922 +-1.16157 +-0.667576 +0 +-0.908873 +-1.61167 +0.667576 +1.61167 +0.908873 +1.61167 +0.667576 +0 +-0.667576 +-1.61167 +-0.667576 +0 +-0.908873 +-1.61167 +-1.16157 +0.667576 +1.61167 +0.908873 +1.16157 +1.61167 +0.667576 +0 +1.16157 +-0.667576 +-1.61167 +-1.16157 +-1.15947 +0 +-1.57857 +-2.79922 +-1.78703 +1.15947 +2.79922 +1.57857 +1.78703 +2.79922 +1.15947 +0 +1.78703 +-1.15947 +-2.79922 +-1.78703 +0 +-0.908873 +-1.61167 +-1.16157 +1.61167 +0.908873 +1.16157 +1.61167 +0 +1.16157 +-1.61167 +-1.16157 +0 +-1.57857 +-2.79922 +-1.78703 +2.79922 +1.57857 +1.78703 +2.79922 +0 +1.78703 +-2.79922 +-1.78703 +-1.78703 +0 +-1.57857 +-2.79922 +-1.16157 +1.78703 +2.79922 +1.57857 +1.16157 +1.78703 +2.79922 +0 +1.16157 +-1.78703 +-2.79922 +-1.16157 +0 +-0.908873 +-1.61167 +1.61167 +0.908873 +1.61167 +0 +-1.61167 +2.19421 +2.19421 +2.80428 +2.19421 +2.80428 +2.19421 +2.80428 +2.80428 +3.811 +3.811 +4.31428 +3.811 +4.31428 +3.811 +4.31428 +4.31428 +-2.19421 +-2.19421 +-2.80428 +-2.19421 +-2.80428 +-2.19421 +-2.80428 +-2.80428 +-3.811 +-3.811 +-4.31428 +-3.811 +-4.31428 +-3.811 +-4.31428 +-4.31428 +-0.591506 +0.591506 +0.591506 +-0.591506 +-0.591506 +0.591506 +0.591506 +-0.591506 +-1.4743 +1.4743 +1.4743 +-1.4743 +-0.848841 +0.848841 +0.848841 +-0.848841 +-0.848841 +0.848841 +0.848841 +-0.848841 +-1.4743 +1.4743 +1.4743 +-1.4743 +-0.848841 +0.848841 +0.848841 +-0.848841 +-1.4743 +1.4743 +1.4743 +-1.4743 +-1.4743 +1.4743 +1.4743 +-1.4743 +-0.848841 +0.848841 +0.848841 +-0.848841 +2.04928 +2.04928 +2.04928 +2.04928 +3.55928 +3.55928 +3.55928 +3.55928 +-2.04928 +-2.04928 +-2.04928 +-2.04928 +-3.55928 +-3.55928 +-3.55928 +-3.55928 +-0.866025 +-0.866025 +0.866025 +0.866025 +-0.866025 +-0.866025 +0.866025 +0.866025 +-2.88675 +-2.88675 +2.88675 +2.88675 +-2.88675 +-2.88675 +2.88675 +2.88675 +-1.06066 +0 +1.06066 +0 +-1.06066 +0 +1.06066 +0 +-1.06066 +-1.06066 +1.06066 +1.06066 +-3.53553 +0 +3.53553 +0 +-1.87639 +-1.87639 +1.87639 +1.87639 +-3.53553 +0 +3.53553 +0 +-1.87639 +-1.87639 +1.87639 +1.87639 +-3.53553 +-3.53553 +3.53553 +3.53553 +0 +-1.5 +0 +1.5 +0 +0 +0 +-2.2981 +0 +2.2981 +0 +-2.2981 +0 +2.2981 +0 +0 +-2.2981 +-2.2981 +-5 +5 +2.2981 +2.2981 +0 +0 +0 +0 +0 +-3.25 +3.25 +0 +0 +-1.0179 +-0.574025 +0 +-0.421627 +-1.38582 +-0.75 +0 +-0.574025 +-1.0179 +-1.38582 +0 +0 +-1.0179 +-0.421627 +0 +-1.38582 +-0.574025 +0 +-1.0179 +0 +0.421627 +1.0179 +0.574025 +0.574025 +1.38582 +0.75 +1.0179 +1.38582 +1.0179 +0.421627 +1.38582 +0.574025 +1.0179 +-1.0179 +-0.574025 +0 +-0.421627 +-1.0179 +-1.38582 +0 +0 +-1.0179 +-0.421627 +0 +-1.0179 +0 +0.421627 +1.0179 +0.574025 +1.0179 +1.38582 +1.0179 +0.421627 +1.0179 +-3.39299 +-1.91342 +0 +-1.40542 +-2.20544 +-1.24372 +0 +-0.913525 +-2.38157 +-2.91682 +0 +0 +-3.39299 +-1.40542 +0 +-2.20544 +-0.913525 +0 +-2.38157 +0 +1.40542 +3.39299 +1.91342 +0.913525 +2.20544 +1.24372 +2.38157 +2.91682 +3.39299 +1.40542 +2.20544 +0.913525 +2.38157 +-1.37121 +-1.67938 +0 +0 +-1.37121 +0 +1.37121 +1.67938 +1.37121 +-2.20544 +-1.24372 +0 +-0.913525 +-1.37121 +-1.67938 +0 +0 +-2.20544 +-0.913525 +0 +-1.37121 +0 +0.913525 +2.20544 +1.24372 +1.37121 +1.67938 +2.20544 +0.913525 +1.37121 +-3.39299 +-1.91342 +0 +-1.40542 +-2.38157 +-2.91682 +0 +0 +-3.39299 +-1.40542 +0 +-2.38157 +0 +1.40542 +3.39299 +1.91342 +2.38157 +2.91682 +3.39299 +1.40542 +2.38157 +-3.00261 +-3.00261 +-2.20544 +-2.375 +-1.67938 +-2.20544 +-3.00261 +-1.67938 +-2.20544 +-3.00261 +-2.20544 +-4.6194 +-4.6194 +-3.39299 +-4.125 +-2.91682 +-3.39299 +-4.6194 +-2.91682 +-3.39299 +-4.6194 +-3.39299 +4.6194 +4.6194 +3.39299 +3.00261 +3.00261 +2.20544 +4.125 +2.91682 +3.39299 +4.6194 +2.20544 +3.00261 +2.91682 +3.39299 +4.6194 +2.20544 +3.00261 +3.39299 +2.20544 +2.375 +1.67938 +1.67938 +0 +-1.24372 +0 +1.24372 +0 +0 +-1.91342 +0 +1.91342 +0 +-1.24372 +0 +0 +0 +1.24372 +-1.91342 +0 +0 +0 +1.91342 +-0.53611 +-1.29428 +-0.640165 +0 +-0.53611 +-0.640165 +-0.53611 +-1.29428 +-0.53611 +0 +-0.640165 +0.53611 +0.53611 +1.29428 +0.640165 +0.640165 +0.53611 +1.29428 +0.53611 +0.640165 +-1.29428 +-0.640165 +0 +-0.53611 +-0.53611 +-1.29428 +-0.53611 +0 +-0.53611 +0.53611 +1.29428 +0.640165 +0.53611 +1.29428 +0.53611 +0.53611 +-1.78703 +-2.79922 +-1.57857 +0 +-1.15947 +-1.16157 +-1.78703 +-2.79922 +-1.15947 +0 +-1.16157 +1.78703 +1.15947 +2.79922 +1.57857 +1.16157 +1.78703 +2.79922 +1.15947 +1.16157 +-1.61167 +-0.908873 +0 +-0.667576 +-1.61167 +-0.667576 +0 +0.667576 +1.61167 +0.908873 +1.61167 +0.667576 +-1.61167 +-0.908873 +0 +-0.667576 +-1.16157 +-1.61167 +-0.667576 +0 +-1.16157 +0.667576 +1.61167 +0.908873 +1.16157 +1.61167 +0.667576 +1.16157 +-2.79922 +-1.57857 +0 +-1.15947 +-1.78703 +-2.79922 +-1.15947 +0 +-1.78703 +1.15947 +2.79922 +1.57857 +1.78703 +2.79922 +1.15947 +1.78703 +-2.19421 +-2.19421 +-1.61167 +-2.80428 +-1.61167 +-2.19421 +-2.80428 +-1.61167 +-2.19421 +-2.80428 +-1.61167 +-2.80428 +-3.811 +-3.811 +-2.79922 +-4.31428 +-2.79922 +-3.811 +-4.31428 +-2.79922 +-3.811 +-4.31428 +-2.79922 +-4.31428 +4.31428 +3.811 +3.811 +2.79922 +2.80428 +4.31428 +2.79922 +3.811 +2.80428 +4.31428 +2.79922 +3.811 +2.80428 +4.31428 +2.79922 +2.80428 +2.19421 +2.19421 +1.61167 +1.61167 +2.19421 +1.61167 +2.19421 +1.61167 +0 +-0.908873 +-1.16157 +0.908873 +1.16157 +0 +1.16157 +-1.16157 +0 +-1.57857 +-1.78703 +1.57857 +1.78703 +0 +1.78703 +-1.78703 +-0.908873 +0 +-1.16157 +0 +-1.16157 +0.908873 +1.16157 +1.16157 +-1.57857 +0 +-1.78703 +0 +-1.78703 +1.57857 +1.78703 +1.78703 +-0.591506 +-0.591506 +0.591506 +0.591506 +-0.591506 +-0.591506 +0.591506 +0.591506 +-1.4743 +-1.4743 +1.4743 +1.4743 +-0.848841 +-0.848841 +0.848841 +0.848841 +-0.848841 +-0.848841 +0.848841 +0.848841 +-1.4743 +-1.4743 +1.4743 +1.4743 +-2.04928 +-2.04928 +-2.04928 +-2.04928 +-3.55928 +-3.55928 +-3.55928 +-3.55928 +3.55928 +3.55928 +3.55928 +3.55928 +2.04928 +2.04928 +2.04928 +2.04928 +-0.848841 +0.848841 +0.848841 +-0.848841 +-1.4743 +1.4743 +1.4743 +-1.4743 +-0.848841 +-0.848841 +0.848841 +0.848841 +-1.4743 +-1.4743 +1.4743 +1.4743 +-0.866025 +-0.866025 +-0.866025 +-0.866025 +0.866025 +0.866025 +0.866025 +0.866025 +-2.88675 +-2.88675 +-2.88675 +-2.88675 +2.88675 +2.88675 +2.88675 +2.88675 +-1.06066 +-1.06066 +-1.06066 +-1.06066 +1.06066 +1.06066 +1.06066 +1.06066 +0 +0 +0 +0 +-3.53553 +-3.53553 +-3.53553 +-3.53553 +-1.87639 +-1.87639 +-1.87639 +-1.87639 +3.53553 +3.53553 +3.53553 +3.53553 +1.87639 +1.87639 +1.87639 +1.87639 +0 +0 +0 +0 +-1.5 +0 +0 +0 +0 +1.5 +-5 +-2.2981 +-2.2981 +-2.2981 +-2.2981 +2.2981 +2.2981 +2.2981 +2.2981 +5 +0 +0 +0 +0 +0 +0 +0 +0 +0 +-3.25 +3.25 +0 +0 +0 +0 +-1.0179 +-1.38582 +-1.38582 +-1.0179 +0 +0 +0 +0 +-0.421627 +-0.574025 +-0.75 +-0.574025 +-1.0179 +-1.0179 +-1.38582 +0 +0 +0 +-0.421627 +-0.574025 +-1.0179 +-1.0179 +-1.38582 +0 +0 +0 +-0.421627 +-0.574025 +-1.0179 +-1.0179 +0 +0 +-0.421627 +1.0179 +1.38582 +1.38582 +1.0179 +0.421627 +0.574025 +0.75 +0.574025 +1.0179 +1.0179 +1.38582 +0.421627 +0.574025 +1.0179 +1.0179 +1.38582 +0.421627 +0.574025 +1.0179 +1.0179 +0.421627 +-3.39299 +-4.6194 +-4.6194 +-3.39299 +-2.20544 +-3.00261 +-3.00261 +-2.20544 +-2.38157 +-2.91682 +-4.125 +-2.91682 +-3.39299 +-3.39299 +-4.6194 +-2.20544 +-2.20544 +-3.00261 +-2.38157 +-2.91682 +-3.39299 +-3.39299 +-4.6194 +-2.20544 +-2.20544 +-3.00261 +-2.38157 +-2.91682 +-3.39299 +-3.39299 +-2.20544 +-2.20544 +-2.38157 +-1.37121 +-1.67938 +-2.375 +-1.67938 +-1.37121 +-1.67938 +-1.37121 +-1.67938 +-1.37121 +2.20544 +3.00261 +3.00261 +2.20544 +1.37121 +1.67938 +2.375 +1.67938 +2.20544 +2.20544 +3.00261 +1.37121 +1.67938 +2.20544 +2.20544 +3.00261 +1.37121 +1.67938 +2.20544 +2.20544 +1.37121 +3.39299 +4.6194 +4.6194 +3.39299 +2.38157 +2.91682 +4.125 +2.91682 +3.39299 +3.39299 +4.6194 +2.38157 +2.91682 +3.39299 +3.39299 +4.6194 +2.38157 +2.91682 +3.39299 +3.39299 +2.38157 +-1.24372 +0 +-0.913525 +0 +0 +-0.913525 +0 +0 +0.913525 +1.24372 +0.913525 +-1.91342 +0 +-1.40542 +0 +0 +-1.40542 +0 +0 +1.40542 +1.91342 +1.40542 +-1.91342 +0 +-1.40542 +-1.24372 +0 +-0.913525 +0 +0 +-1.40542 +0 +-0.913525 +0 +0 +1.40542 +1.91342 +0.913525 +1.24372 +1.40542 +0.913525 +0 +0 +0 +-1.24372 +0 +0 +0 +1.24372 +-1.91342 +0 +0 +0 +1.91342 +0 +-1.24372 +0 +1.24372 +0 +0 +-1.91342 +0 +1.91342 +0 +-1.29428 +-0.53611 +-0.640165 +-0.640165 +-0.53611 +0 +-1.29428 +-0.53611 +-0.53611 +-0.640165 +0 +-1.29428 +-0.53611 +-0.53611 +-0.640165 +0 +-1.29428 +-0.53611 +-0.53611 +0 +0.53611 +0.640165 +0.640165 +0.53611 +1.29428 +0.53611 +0.53611 +0.640165 +1.29428 +0.53611 +0.53611 +0.640165 +1.29428 +0.53611 +0.53611 +1.29428 +-4.31428 +-2.79922 +-3.811 +-3.811 +-2.79922 +-2.80428 +-4.31428 +-2.79922 +-2.79922 +-3.811 +-2.80428 +-4.31428 +-2.79922 +-2.79922 +-3.811 +-2.80428 +-4.31428 +-2.79922 +-2.79922 +-2.80428 +-1.61167 +-2.19421 +-2.19421 +-1.61167 +-1.61167 +-1.61167 +-2.19421 +-1.61167 +-1.61167 +-2.19421 +-1.61167 +-1.61167 +1.61167 +2.19421 +2.19421 +1.61167 +2.80428 +1.61167 +1.61167 +2.19421 +2.80428 +1.61167 +1.61167 +2.19421 +2.80428 +1.61167 +1.61167 +2.80428 +2.79922 +3.811 +3.811 +2.79922 +4.31428 +2.79922 +2.79922 +3.811 +4.31428 +2.79922 +2.79922 +3.811 +4.31428 +2.79922 +2.79922 +4.31428 +-0.908873 +0 +-0.667576 +-1.16157 +-0.667576 +0 +-1.16157 +0.667576 +0.908873 +1.16157 +0.667576 +1.16157 +-1.57857 +0 +-1.15947 +-1.78703 +-1.15947 +0 +-1.78703 +1.15947 +1.57857 +1.78703 +1.15947 +1.78703 +-1.78703 +-1.57857 +0 +-1.15947 +-1.16157 +-1.78703 +-1.15947 +0 +-1.16157 +1.78703 +1.15947 +1.57857 +1.16157 +1.78703 +1.15947 +1.16157 +-0.908873 +0 +-0.667576 +-0.667576 +0 +0.667576 +0.908873 +0.667576 +-0.908873 +0 +-1.16157 +0 +-1.16157 +0.908873 +1.16157 +1.16157 +-1.57857 +0 +-1.78703 +0 +-1.78703 +1.57857 +1.78703 +1.78703 +0 +-0.908873 +-1.16157 +0.908873 +1.16157 +0 +1.16157 +-1.16157 +0 +-1.57857 +-1.78703 +1.57857 +1.78703 +0 +1.78703 +-1.78703 +-0.591506 +-0.591506 +-0.591506 +-0.591506 +0.591506 +0.591506 +0.591506 +0.591506 +-3.55928 +-3.55928 +-3.55928 +-3.55928 +-2.04928 +-2.04928 +-2.04928 +-2.04928 +2.04928 +2.04928 +2.04928 +2.04928 +3.55928 +3.55928 +3.55928 +3.55928 +-0.848841 +-0.848841 +0.848841 +0.848841 +-1.4743 +-1.4743 +1.4743 +1.4743 +-1.4743 +-1.4743 +1.4743 +1.4743 +-0.848841 +-0.848841 +0.848841 +0.848841 +-0.848841 +-0.848841 +0.848841 +0.848841 +-1.4743 +-1.4743 +1.4743 +1.4743 +-0.848841 +0.848841 +0.848841 +-0.848841 +-1.4743 +1.4743 +1.4743 +-1.4743 diff --git a/subprojects/.wraplock b/subprojects/.wraplock new file mode 100644 index 0000000..e69de29 diff --git a/subprojects/cli11.wrap b/subprojects/cli11.wrap new file mode 100644 index 0000000..0072590 --- /dev/null +++ b/subprojects/cli11.wrap @@ -0,0 +1,10 @@ +[wrap-file] +directory = CLI11-2.6.1 +source_url = https://github.com/CLIUtils/CLI11/archive/refs/tags/v2.6.1.tar.gz +source_filename = CLI11-2.6.1.tar.gz +source_hash = 377691f3fac2b340f12a2f79f523c780564578ba3d6eaf5238e9f35895d5ba95 +source_fallback_url = https://github.com/mesonbuild/wrapdb/releases/download/cli11_2.6.1-1/CLI11-2.6.1.tar.gz +wrapdb_version = 2.6.1-1 + +[provide] +dependency_names = CLI11 \ No newline at end of file diff --git a/subprojects/czmq.wrap b/subprojects/czmq.wrap new file mode 100644 index 0000000..1d0a5d9 --- /dev/null +++ b/subprojects/czmq.wrap @@ -0,0 +1,6 @@ +[wrap-git] +url = https://github.com/zeromq/czmq +revision = v4.2.1 +depth = 1 + +[cmake] \ No newline at end of file diff --git a/subprojects/libconfig.wrap b/subprojects/libconfig.wrap new file mode 100644 index 0000000..4caa11d --- /dev/null +++ b/subprojects/libconfig.wrap @@ -0,0 +1,4 @@ +[wrap-git] +url = https://github.com/4D-STAR/libconfig.git +revision = v2.1.0 +depth = 1 diff --git a/subprojects/mfem.wrap b/subprojects/mfem.wrap new file mode 100644 index 0000000..5a68aa7 --- /dev/null +++ b/subprojects/mfem.wrap @@ -0,0 +1,7 @@ +[wrap-git] +url = https://github.com/mfem/mfem.git +revision = v4.8-rc0 +diff_files = mfem/disable_mfem_selfcheck.patch +depth = 1 + +[cmake] diff --git a/subprojects/packagefiles/hypre/CMakeLists.txt b/subprojects/packagefiles/hypre/CMakeLists.txt new file mode 100644 index 0000000..8521326 --- /dev/null +++ b/subprojects/packagefiles/hypre/CMakeLists.txt @@ -0,0 +1,6 @@ +# subprojects/packagefiles/hypre/CMakeLists.txt +cmake_minimum_required(VERSION 3.10) +project(hypre-wrapper C CXX) +add_subdirectory(src) + +# This file is just used to redirect to the src directory where hypre stores its CMakeLists.txt \ No newline at end of file diff --git a/subprojects/packagefiles/mfem/disable_mfem_selfcheck.patch b/subprojects/packagefiles/mfem/disable_mfem_selfcheck.patch new file mode 100644 index 0000000..9931390 --- /dev/null +++ b/subprojects/packagefiles/mfem/disable_mfem_selfcheck.patch @@ -0,0 +1,41 @@ +--- mfem/CMakeLists.txt 2025-02-12 15:54:52.454728232 -0500 ++++ CMakeLists.txt.bak 2025-02-12 16:08:06.654542689 -0500 +@@ -765,7 +765,7 @@ + if (MFEM_ENABLE_EXAMPLES) + add_subdirectory(examples) #install examples if enabled + else() +- add_subdirectory(examples EXCLUDE_FROM_ALL) ++ # add_subdirectory(examples EXCLUDE_FROM_ALL) + endif() + + # Create a target for all miniapps and, optionally, enable it. +@@ -774,7 +774,7 @@ + if (MFEM_ENABLE_MINIAPPS) + add_subdirectory(miniapps) #install miniapps if enabled + else() +- add_subdirectory(miniapps EXCLUDE_FROM_ALL) ++ # add_subdirectory(miniapps EXCLUDE_FROM_ALL) + endif() + + # Target to build all executables, i.e. everything. +@@ -801,19 +801,7 @@ + add_dependencies(${MFEM_EXEC_PREREQUISITES_TARGET_NAME} copy_data) + endif() + +-# Add 'check' target - quick test +-set(MFEM_CHECK_TARGET_NAME ${MFEM_CUSTOM_TARGET_PREFIX}check) +-if (NOT MFEM_USE_MPI) +- add_custom_target(${MFEM_CHECK_TARGET_NAME} +- ${CMAKE_CTEST_COMMAND} -R \"^ex1_ser\" -C ${CMAKE_CFG_INTDIR} +- USES_TERMINAL) +- add_dependencies(${MFEM_CHECK_TARGET_NAME} ex1) +-else() +- add_custom_target(${MFEM_CHECK_TARGET_NAME} +- ${CMAKE_CTEST_COMMAND} -R \"^ex1p\" -C ${CMAKE_CFG_INTDIR} +- USES_TERMINAL) +- add_dependencies(${MFEM_CHECK_TARGET_NAME} ex1p) +-endif() ++message(STATUS "MFEM Miniapps and Examples disabled by patch!") + + #------------------------------------------------------------------------------- + # Documentation diff --git a/subprojects/raylib.wrap b/subprojects/raylib.wrap new file mode 100644 index 0000000..c5d8a2f --- /dev/null +++ b/subprojects/raylib.wrap @@ -0,0 +1,6 @@ +[wrap-git] +url = https://github.com/raysan5/raylib.git +revision = 5.5 +depth = 1 + +[cmake] \ No newline at end of file