Skip to content

master-csmi/2024-m1-scimba-feelpp

Repository files navigation

Coupling ScimBa and Feel++

Project Overview

This project attempts the integration of ScimBa and Feelpp. Our goal is to streamline data exchange and empower users to leverage the combined strengths of ScimBa and Feel++ effectively.

Technologies

This project utilizes the following technologies:

  • ScimBa : A Python library emphasizing machine learning. ScimBa is used in this project to apply machine learning techniques.

  • Feelpp : A library known for its Galerkin methods in PDE solving. Feel++ is used to solve PDEs in this project.

  • Docker: A platform used to containerize the application. Docker is used to build a reproducible environment for the project.

  • Python : The primary programming language used in this project.

  • Git : Version control system used for source code management.

Each of these technologies plays a crucial role in the development and operation of the project.

Launch

Follow these steps to get the project up and running on your local machine:

Open the project in Visual Studio Code:

# Clone the repository

git clone https://github.com/master-csmi/2024-m1-scimba-feelpp.git


# To build a Docker image:

docker buildx build  -t feelpp_scimba:latest .


# Run the Docker container

docker run -it feelpp_scimba:latest


#VS Code will detect the .devcontainer configuration and prompt you to reopen the folder in a container.

Example

import sys
import feelpp
import feelpp.toolboxes.core as tb
from feelpp.toolboxes.core.environment import Environment  # Ensure correct import path

# Mandatory setup
sys.argv = ["feelpp_app"]
e = Environment(sys.argv,
                opts=tb.toolboxes_options("coefficient-form-pdes", "cfpdes"),
                config=feelpp.localRepository('feelpp_cfpde'))

# Example usage of the Poisson class
# Create an instance of the Poisson class for a 2-dimensional problem
P = Poisson(dim=2)

# Solve the Poisson problem with the specified parameters
P(h=0.08, rhs='-1.0-1*y*x+y*y', g='0', order=1, geofile='geo/disk.geo', plot='2d.png')

Project Status

The project has completed all planned phases. The development process was structured into three key phases, each addressing specific objectives and deliverables.

V0 Phase: Foundation Setup

  • Infrastructure Development: Created a Docker container to ensure a consistent and reproducible development environment.

  • Strategic Planning: Developed a comprehensive roadmap to guide the project’s progression.

  • Literature Review: Conducted an extensive bibliography to underpin the project’s theoretical framework.

  • Initial Documentation: Authored the initial report outlining project goals and methodologies.

V1 Phase: Initial Implementation

  • Preliminary Analysis: Conducted the first round of results analysis to validate the integration approach.

  • Quality Assurance: Performed a technical review and code quality check to ensure robust and maintainable code.

  • Tool Integration: Installed Git within the Docker image to facilitate version control and collaboration.

V2 Phase: Finalization and Refinement

  • Automation: Automated the image generation process within the Docker environment to streamline workflows.

  • Advanced Integration: Solved key issues in ScimBa, including returning a solution and its plot in the call method.

  • Code Optimization: Carried out extensive code cleanup and documentation to enhance readability and usability.

  • Presentation Preparation: Developed and refined presentation slides and demo materials for showcasing project outcomes.

  • Peer Review: Completed advisor code review to ensure adherence to best practices and project standards.

  • Final Documentation: Consolidated and finalized the project bibliography and composed a comprehensive final project report.

  • Feedback Collection: Gathered feedback from stakeholders to inform future improvements.