Getting Started

A comprehensive guide to getting started with the iTensor platform for black hole physics visualization and tensor calculations.

Prerequisites

Before installing and running iTensor, ensure your system meets the following requirements:

System Requirements

  • Operating System: Windows 10/11, macOS 10.15+, or Linux (Ubuntu 20.04+ recommended)
  • Node.js: Version 16.x or higher (for frontend development)
  • Python: Version 3.8 or higher (for backend calculations)
  • Web Browser: Chrome, Firefox, Safari, or Edge (latest versions recommended)
  • GPU: For advanced visualizations, a dedicated GPU with WebGL support is recommended

Dependencies

  • Python Packages: NumPy, SciPy, SymPy, Matplotlib
  • Optional C/C++ Extensions: For high-performance numerical simulations
  • Development Tools: Git, npm or yarn

Installation

Follow these steps to install iTensor on your system:

1. Clone the Repository

git clone https://github.com/itensor/itensor.git
cd itensor

2. Install Frontend Dependencies

cd frontend
npm install

3. Install Backend Dependencies

cd ../backend
python -m pip install -r requirements.txt

# Optional: Build C/C++ extensions for improved performance
python setup.py build_ext --inplace

4. Configure Environment

cp .env.example .env
# Edit .env file with your configuration settings

Running the Application

Run the iTensor platform with these commands:

1. Start the Backend Server

cd backend
python server.py

The backend server will start on http://localhost:8000 by default.

2. Start the Frontend Development Server

cd frontend
npm run dev

The frontend development server will start on http://localhost:3000 by default.

3. Access the Application

Open your web browser and navigate to http://localhost:3000 to access the iTensor platform.

Running Your First Simulation

Here's a step-by-step guide to running your first black hole simulation:

  1. Navigate to the Black Hole Simulator: Click on "iTensor" in the main navigation menu, then select "Black Hole Visualization".
  2. Choose a Black Hole Type: Select "Schwarzschild" for a non-rotating black hole or "Kerr" for a rotating black hole.
  3. Set Parameters: Adjust the mass, spin (for Kerr black holes), and other parameters using the sliders.
  4. Configure Visualization: Choose what aspects to visualize (gravitational lensing, accretion disk, etc.).
  5. Run Simulation: Click the "Run Simulation" button to start the calculation and visualization.
  6. Interact with Results: Once the simulation completes, you can interact with the visualization by rotating, zooming, and adjusting parameters in real-time.

For best performance when running complex simulations, use a desktop or laptop with a dedicated graphics card and ensure all browser tabs not in use are closed to free up system resources.

Future Extensions

The iTensor team is actively working on expanding the platform's capabilities in several directions:

Expanded Simulation Capabilities

  • Full GRMHD: General Relativistic Magnetohydrodynamics simulations
  • Electromagnetic Field Coupling: Modeling of electromagnetic fields in curved spacetime
  • Gravitational Wave Simulations: Visualization of gravitational wave generation and propagation
  • N-body Systems: Multiple-body gravitational interactions in general relativity
  • Cosmological Models: Expanding universe and dark energy/matter simulations

Technical Enhancements

  • Enhanced Backend Performance: C/C++ extensions for critical computation paths
  • GPU Acceleration: CUDA/OpenCL support for numerical simulations
  • Distributed Computing: Parallel processing across multiple nodes
  • Machine Learning Integration: Neural networks for accelerating complex simulations
  • Cloud Deployment: Simplified deployment to major cloud providers

Visualization Enhancements

  • VR/AR Support: Immersive exploration of black hole environments through virtual and augmented reality.
  • Multi-View Displays: Synchronized views from different reference frames or coordinate systems.
  • Advanced Rendering Techniques: Ray-tracing and advanced lighting models for more realistic visualizations.
  • Interactive Data Exploration: Enhanced tools for exploring simulation data with real-time filtering and analysis.
  • Collaborative Visualization: Multi-user shared visualization environments for educational and research purposes.

Community Contributions

The modular architecture of iTensor is designed to facilitate community contributions and extensions. Researchers and developers can contribute in several ways:

  • Physics Modules: Implement additional physics models or phenomena.
  • Visualization Components: Create new visualization styles or interactive elements.
  • Educational Content: Develop guided tutorials or classroom resources.
  • Performance Optimizations: Improve computation speed or memory efficiency.
  • Documentation and Examples: Enhance documentation or provide example use cases.

We encourage interested contributors to review our Contribution Guidelinesand join our Community Forums to discuss potential contributions and collaborations.

Contact and Support

We welcome feedback, bug reports, and feature suggestions from our user community:

Support Channels

  • GitHub Issues: For bug reports and feature requests
  • Community Forum: For discussions and questions
  • Documentation: Comprehensive guides and references
  • Email Support: For direct assistance from the team
  • Slack Channel: For real-time community discussions

Contribution Guidelines

We encourage contributions to the iTensor project and have established guidelines to ensure a productive and collaborative development process:

  • Code Contributions: Follow our coding standards and submit pull requests for review.
  • Documentation: Help improve guides, examples, and API documentation.
  • Testing: Write tests for new features or find and report bugs.
  • Feature Suggestions: Propose new features or improvements through our issue tracker.
  • Community Support: Help answer questions in the forum and contribute to discussions.

Detailed contribution guidelines can be found in our Contribution Guide.