001package models; 002 003import org.apache.commons.math3.analysis.UnivariateFunction; 004 005/** 006 * The sinh-Gordon model with coupling \( 0 < B < 2 \). 007 * 008 * This model has a rather nontrivial minimal solution, given by an integral expression. 009 * This class uses numerical integration in order to obtain values of \( F_\text{min} \). 010 * The results are cached in order to speed up multiple evaluations. 011 */ 012public class SinhGordonModel extends IntegrableModel 013{ 014 private CachedFunction fminIpi; 015 016 /** 017 * Constructs a new sinh-Gordon model with given real coupling constant \( B \in (0,2) \) . 018 * @param b the coupling constant of the model 019 */ 020 public SinhGordonModel(final double b) { 021 022 UnivariateFunction fminI = new UnivariateFunction() { 023 public double value(double x) { 024 return SinhTools.sinhIntegral(x, b); 025 } 026 }; 027 028 fminIpi = new CachedFunction(fminI, 1e-14); 029 } 030 031 @Override 032 public double FminIpi(double theta) { 033 return fminIpi.value(Math.abs(theta)); 034 } 035 036}