Skip to main content

A tool for detecting and analyzing First Order Phase Transitions (FOPT) in cosmic evolution using the cosmoTransitions library.

Project description

cosmofoptscope

A Python package for analyzing First Order Phase Transitions (FOPT) in cosmological contexts. Built upon the CosmoTransitions package, this tool calculates nucleation temperatures for various theoretical models and computes essential phase transition parameters including phase transition strength (α) and inverse duration of phase transition (β).

Features

  • Built on CosmoTransitions framework for reliable phase transition analysis
  • Calculation of nucleation temperature for different theoretical models
  • Computation of phase transition strength (α)
  • Evaluation of inverse duration of phase transition (β)
  • Analysis of tunneling actions
  • Multiple phase studies
  • Support for parallel computation
  • Customizable potential implementation

Package Structure

.
├── cosmofoptscope
│   ├── find_fopt.py      # Core implementation for FOPT analysis
│   ├── __init__.py       # Package initialization
│   └── potential.py      # Potential wrapper and utilities
├── dist                  # Distribution builds
├── LICENSE              
└── pyproject.toml        # Project metadata and dependencies

Installation

pip install cosmofoptscope

Quick Start

Basic Usage

from cosmofoptscope import FOPTFinder, PotentialWrapper

# Define your potential
class CustomPotential(PotentialWrapper):
    def Vtot(self, X, T):
        # Define your temperature-dependent potential
        pass

# Initialize FOPT finder
finder = FOPTFinder(
    potential=CustomPotential(),
    Tmax=1000,  # Maximum temperature
    g_star=100, # Effective degrees of freedom
    Mp=2.435e18 # Planck mass
)

# Calculate phase transition parameters
results = finder.report()
print(f"Nucleation Temperature: {results['Tnuc']}")
print(f"Critical Temperature: {results['Tcrit']}")
print(f"Phase Transition Strength (α): {results['alpha']}")
print(f"Inverse Duration (β): {results['beta']}")

Parallel Computation

# Enable parallel processing for faster computation
finder = FOPTFinder(
    potential=CustomPotential(),
    Tmax=1000,
    parallel=True
)

API Reference

FOPTFinder

The main class for phase transition analysis. Key methods include:

class FOPTFinder:
    def __init__(self, potential, Tmax, g_star, Mp, parallel=False):
        """
        Initialize the FOPT finder.
        
        Args:
            potential: PotentialWrapper instance
            Tmax: Maximum temperature to consider
            g_star: Effective degrees of freedom
            Mp: Planck mass
            parallel: Enable parallel computation
        """
        pass

    def findTnuc(self):
        """Calculate nucleation temperature"""
        pass

    def findActions(self):
        """Compute tunneling actions"""
        pass

    def report(self):
        """Generate comprehensive report of transition parameters"""
        pass

PotentialWrapper

Base class for defining potentials. Inherits from CosmoTransitions' generic_potential:

class PotentialWrapper:
    def Vtot(self, X, T):
        """
        Define temperature-dependent potential
        
        Args:
            X: Field value
            T: Temperature
        """
        pass

    def alpha(self, temp, g_star):
        """
        Calculate phase transition strength
        
        Args:
            temp: Temperature
            g_star: Effective degrees of freedom
        """
        pass

Examples

Find example implementations in the examples directory:

# Example: Simple double-well potential
from cosmofoptscope import FOPTFinder, PotentialWrapper
import numpy as np

class DoubleWellPotential(PotentialWrapper):
    def Vtot(self, X, T):
        lambda_ = 0.1
        m2 = -1.0
        return 0.25 * lambda_ * X**4 + 0.5 * m2 * X**2 + 0.5 * T**2 * X**2

finder = FOPTFinder(potential=DoubleWellPotential(), Tmax=100)
results = finder.report()

Dependencies

  • numpy
  • scipy
  • ray (for parallel computation)
  • cosmoTransitions (base framework for phase transition calculations)

Contributing

We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

Steps to contribute:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

MIT License

Citation

If you use cosmofoptscope in your research, please cite:

@software{cosmofoptscope,
  title = {cosmofoptscope: A Python Package for Cosmological First Order Phase Transitions},
  year = {2024},
  url = {https://github.com/hiilynn/cosmoT-FOPTscope}
}

Acknowledgments

  • CosmoTransitions package for providing the fundamental framework

For more information and updates, visit our GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cosmofoptscope-0.2.0.tar.gz (46.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cosmofoptscope-0.2.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file cosmofoptscope-0.2.0.tar.gz.

File metadata

  • Download URL: cosmofoptscope-0.2.0.tar.gz
  • Upload date:
  • Size: 46.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.20

File hashes

Hashes for cosmofoptscope-0.2.0.tar.gz
Algorithm Hash digest
SHA256 1e0e4c12b9d45804dc053ed96116fd7ae351537453d8261893ed4a2c285e10bf
MD5 6cf1d9517620066b208a2de5919062dd
BLAKE2b-256 dca793868bb3e3aabf548452e9d1e3e2bfd314d92e726e119adb2f810ea4ff0a

See more details on using hashes here.

File details

Details for the file cosmofoptscope-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cosmofoptscope-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39a68578ff99577faec9f4c7000d2456cecb51913057d3b2503407dc99261bbd
MD5 0ec3abce57e785a8941aa7fe41860347
BLAKE2b-256 09d870713855eb0109c259decca9aab88b1c451f8a3a00ad1a834736bbab0d12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page