Researcher Quick Start Guide

🎯 For Computational Physics and Biophysics Research

This guide provides a quick start for researchers using HPFRACC for computational physics and biophysics applications.


🚀 Installation & Setup

1. Install HPFRACC

# Basic installation
pip install hpfracc

# With GPU support (recommended for research)
pip install hpfracc[gpu]

# With ML extras (for neural networks)
pip install hpfracc[ml]

2. Verify Installation

import hpfracc as hpc
print(f"HPFRACC version: {hpc.__version__}")

# Test basic functionality
from hpfracc.core.derivatives import CaputoDerivative
caputo = CaputoDerivative(order=0.5)
print("✅ Installation successful!")

🔬 Research Applications

Computational Physics

Fractional PDEs

import torch
import numpy as np
from hpfracc.core.derivatives import CaputoDerivative
from hpfracc.special.mittag_leffler import mittag_leffler

# Fractional diffusion equation: ∂^α u/∂t^α = D ∇²u
alpha = 0.5  # Fractional order
D = 1.0      # Diffusion coefficient

# Create fractional derivative
caputo = CaputoDerivative(order=alpha)

# Simulate fractional diffusion
x = np.linspace(-5, 5, 100)
t = np.linspace(0, 2, 50)
initial_condition = np.exp(-x**2 / 2)

# Use Mittag-Leffler function for analytical solution
solution = []
for time in t:
    # E_{α,1}(-D t^α) represents fractional diffusion
    ml_arg = -D * time**alpha
    ml_result = mittag_leffler(ml_arg, alpha, 1.0)
    if not np.isnan(ml_result):
        solution.append(initial_condition * ml_result.real)

print(f"Fractional diffusion computed for {len(solution)} time steps")

Viscoelastic Materials

from hpfracc.core.integrals import FractionalIntegral

# Fractional oscillator: mẍ + cD^αx + kx = F(t)
alpha = 0.7  # Viscoelasticity order
omega = 1.0  # Natural frequency

# Create fractional integral for stress-strain relationship
integral = FractionalIntegral(order=alpha)

# Simulate viscoelastic response
t = np.linspace(0, 10, 100)
forcing = np.sin(omega * t)

# Response using Mittag-Leffler function
response = []
for time in t:
    # E_{α,1}(-ω^α t^α) for fractional oscillator
    ml_arg = -(omega**alpha) * (time**alpha)
    ml_result = mittag_leffler(ml_arg, alpha, 1.0)
    if not np.isnan(ml_result):
        response.append(ml_result.real)

print(f"Viscoelastic response computed for α={alpha}")

Biophysics

Protein Folding Dynamics

from hpfracc.special.mittag_leffler import mittag_leffler

# Fractional protein folding kinetics
alpha = 0.6  # Memory effects in folding
beta = 0.8   # Mittag-Leffler parameter

# Simulate protein folding dynamics
time_points = np.linspace(0, 5, 100)
folding_state = []

for t in time_points:
    # Fractional kinetics: E_{β,1}(-α t^α)
    ml_arg = -(alpha * t**alpha)
    ml_result = mittag_leffler(ml_arg, beta, 1.0)
    if not np.isnan(ml_result):
        folding_state.append(1.0 - ml_result.real)
    else:
        folding_state.append(0.0)

print(f"Protein folding kinetics computed with α={alpha}, β={beta}")

Membrane Transport

# Anomalous diffusion in biological membranes
alpha_membrane = 0.5  # Sub-diffusion in membranes
D_effective = 0.1     # Effective diffusion coefficient

# Simulate membrane transport
x = np.linspace(0, 10, 100)
concentration_profile = []

for position in x:
    # Fractional diffusion profile
    ml_arg = -D_effective * position**alpha_membrane
    ml_result = mittag_leffler(ml_arg, alpha_membrane, 1.0)
    if not np.isnan(ml_result):
        concentration_profile.append(ml_result.real)
    else:
        concentration_profile.append(0.0)

print(f"Membrane transport modeled with α={alpha_membrane}")

🤖 Machine Learning Integration

Fractional Neural Networks

import torch
import torch.nn as nn
from hpfracc.ml.layers import SpectralFractionalLayer

class FractionalPhysicsNN(nn.Module):
    """Neural network for physics-informed learning."""
    
    def __init__(self, input_size=100, hidden_size=50, output_size=10):
        super().__init__()
        self.fractional_layer = SpectralFractionalLayer(
            input_size=input_size,
            output_size=hidden_size,
            alpha=0.5  # Learnable fractional order
        )
        self.linear1 = nn.Linear(hidden_size, hidden_size)
        self.linear2 = nn.Linear(hidden_size, output_size)
        self.activation = nn.ReLU()
    
    def forward(self, x):
        x = self.fractional_layer(x)
        x = self.activation(x)
        x = self.linear1(x)
        x = self.activation(x)
        x = self.linear2(x)
        return x

# Create and test model
model = FractionalPhysicsNN()
x = torch.randn(32, 100)
output = model(x)
print(f"Fractional NN output shape: {output.shape}")

GPU Optimization

from hpfracc.ml.gpu_optimization import GPUProfiler, ChunkedFFT

# GPU-accelerated computation
with GPUProfiler() as profiler:
    # Chunked FFT for large computations
    fft = ChunkedFFT(chunk_size=1024)
    x = torch.randn(2048, 2048)
    result = fft.fft_chunked(x)
    
print(f"GPU-accelerated FFT completed: {result.shape}")

Variance-Aware Training

from hpfracc.ml.variance_aware_training import VarianceMonitor, AdaptiveSamplingManager

# Monitor training variance
monitor = VarianceMonitor()
sampling_manager = AdaptiveSamplingManager()

# Simulate training loop
for epoch in range(10):
    # Simulate gradients
    gradients = torch.randn(100)
    
    # Monitor variance
    monitor.update(f"epoch_{epoch}", gradients)
    
    # Adapt sampling based on variance
    if epoch > 0:
        metrics = monitor.get_metrics(f"epoch_{epoch-1}")
        if metrics:
            variance = metrics.variance
            new_k = sampling_manager.update_k(variance, 32)
            print(f"Epoch {epoch}: variance={variance:.4f}, k={new_k}")

📊 Performance Optimization

Benchmarking Your Code

import time
from hpfracc.ml.gpu_optimization import GPUProfiler

# Benchmark fractional computations
profiler = GPUProfiler()

# Test different problem sizes
sizes = [256, 512, 1024, 2048]
results = {}

for size in sizes:
    profiler.start_timer(f"size_{size}")
    
    # Create test data
    x = torch.randn(size, size)
    
    # Perform computation
    result = torch.fft.fft(x)
    
    profiler.end_timer(x, result)
    results[size] = profiler.get_last_execution_time()

# Analyze performance
for size, time_taken in results.items():
    throughput = size**2 / time_taken
    print(f"Size {size}: {throughput:.2e} operations/sec")

Memory Management

from hpfracc.ml.gpu_optimization import ChunkedFFT

# Efficient memory usage for large problems
fft = ChunkedFFT(chunk_size=512)  # Adjust chunk size based on memory

# Process large dataset
large_data = torch.randn(4096, 4096)
result = fft.fft_chunked(large_data)

print(f"Large computation completed: {result.shape}")

🔬 Research Workflow Example

Complete Biophysics Research Pipeline

import numpy as np
import torch
from hpfracc.core.derivatives import CaputoDerivative
from hpfracc.special.mittag_leffler import mittag_leffler
from hpfracc.ml.variance_aware_training import VarianceMonitor

def biophysics_research_pipeline():
    """Complete biophysics research workflow."""
    
    print("🧬 Starting Biophysics Research Pipeline...")
    
    # Phase 1: Experimental Parameters
    system_params = {
        'temperature': 298.15,  # K
        'pressure': 1.0,        # atm
        'pH': 7.4,             # physiological pH
        'ionic_strength': 0.15  # M
    }
    
    # Phase 2: Fractional Dynamics
    alpha_protein = 0.8   # Protein folding
    alpha_membrane = 0.6  # Membrane dynamics
    
    # Create fractional components
    protein_derivative = CaputoDerivative(order=alpha_protein)
    membrane_integral = FractionalIntegral(order=alpha_membrane)
    
    # Phase 3: Simulation
    time_points = np.linspace(0, 5, 100)
    protein_dynamics = []
    membrane_dynamics = []
    
    for t in time_points:
        # Protein folding
        ml_arg_protein = -(alpha_protein * t**alpha_protein)
        ml_protein = mittag_leffler(ml_arg_protein, 1.0, 1.0)
        if not np.isnan(ml_protein):
            protein_dynamics.append(1.0 - ml_protein.real)
        else:
            protein_dynamics.append(0.0)
        
        # Membrane dynamics
        ml_arg_membrane = -(alpha_membrane * t**alpha_membrane)
        ml_membrane = mittag_leffler(ml_arg_membrane, 1.0, 1.0)
        if not np.isnan(ml_membrane):
            membrane_dynamics.append(ml_membrane.real)
        else:
            membrane_dynamics.append(0.0)
    
    # Phase 4: Analysis
    protein_analysis = {
        'final_folding_state': protein_dynamics[-1],
        'folding_rate': alpha_protein,
        'stability': np.std(protein_dynamics)
    }
    
    membrane_analysis = {
        'relaxation_time': 1.0 / alpha_membrane,
        'diffusion_type': 'sub-diffusion' if alpha_membrane < 1.0 else 'normal'
    }
    
    # Phase 5: ML Integration
    monitor = VarianceMonitor()
    
    # Simulate experimental data
    experimental_data = torch.tensor(protein_dynamics)
    monitor.update("experimental_data", experimental_data)
    
    # Results
    results = {
        'system_parameters': system_params,
        'protein_analysis': protein_analysis,
        'membrane_analysis': membrane_analysis,
        'data_points': len(time_points),
        'success': True
    }
    
    print("✅ Biophysics research pipeline completed!")
    return results

# Run the research pipeline
results = biophysics_research_pipeline()
print(f"Results: {results}")

📚 Next Steps

1. Explore Examples

# Browse comprehensive examples
cd examples/
ls -la

# Run specific examples
python basic_usage/getting_started.py
python ml_examples/fractional_gnn_demo.py
python physics_examples/fractional_physics_demo.py

2. Read Documentation

3. Run Benchmarks

# Comprehensive performance testing
python run_comprehensive_benchmarks.py

# Integration testing
python test_integration_core_math.py
python test_integration_ml_neural.py
python test_integration_end_to_end_workflows.py

🎯 Research Applications Ready

Your HPFRACC library is now ready for:

Computational Physics

  • Fractional PDEs (diffusion, wave equations)

  • Viscoelastic materials and memory effects

  • Anomalous transport phenomena

  • Non-Markovian processes

Biophysics

  • Protein folding and conformational dynamics

  • Membrane transport and diffusion

  • Drug delivery and pharmacokinetics

  • Neural network modeling

Machine Learning

  • Fractional neural networks

  • Physics-informed ML

  • Uncertainty quantification

  • GPU-accelerated training


📞 Support


Happy Researching! 🔬🚀

HPFRACC v3.0.0 - Production Ready for Computational Physics and Biophysics Research