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.
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.
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')
The project has completed all planned phases. The development process was structured into three key phases, each addressing specific objectives and deliverables.
-
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.
-
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.
-
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.