GSL Multidim Minimizer - How to handle unphyiscal values

  • Thread starter Thread starter DerBaer
  • Start date Start date
  • Tags Tags
    Minimization
AI Thread Summary
The discussion revolves around minimizing the potential of the Two-Higgs-Doublet Model at finite temperature, focusing on the challenge of handling negative eigenvalues from a set of 4x4 matrices dependent on two vacuum expectation values (VEVs), v1 and v2. The minimization process, using the GSL nmsimplex2 method, encounters errors when attempting to compute the square root of these negative eigenvalues, resulting in NaN values. The main issue is how to instruct the minimizer to ignore unphysical input values that lead to these errors. Suggestions include modifying the minimization function to filter out invalid eigenvalues or exploring alternative minimization methods that can accommodate such cases without generating errors. The conversation emphasizes the need for a robust approach to ensure the minimization process remains valid and effective.
DerBaer
Messages
4
Reaction score
0
Hello,

For my master thesis I'm looking at the Two-Higgs-Doublet-Modell at finite Temperature and I'm searching for the Minimum values of the two VEVs of the Doublets. Therefore i have my Potential with Input Parameters v1 and v2 in which I want to minimize the Potential and a Vector with User Input Parameters like the Temperature and the Couplings.

In the Progress of calculating the Potential I have 4 4x4 Matrices which depend on v1 and v2. I calculate the Eigenvalues with Eigen and in my Potential I need these Values to the Power of 3/2.

The actual Problem: For some values of v1 and v2 these Eigenvalues are negative and I need to get rid of these Input set as they are unphysical. The Minimization Process receives and Error at these unphysical values because the programm tries to calculate the square root of these Eigenvalues which gives NaN.
How can I tell the Minimizer to ignore those values? Either as an Option to the Minimizer or as an Output of the Function calculating the Potential.

To Minimize my Potential I use the gsl nmsimplex 2 Method as shown below (similiar to the GSL Manual Example).
Code:
const gsl_multimin_fminimizer_type *T = gsl_multimin_fminimizer_nmsimplex2;
  gsl_multimin_fminimizer *s = NULL;
  gsl_vector *ss, *x;
  gsl_multimin_function minex_func;

size_t iter = 0;
  int status;
  double size;

/* Starting point */
      x = gsl_vector_alloc (2);
      gsl_vector_set (x, 0, v1Start);
      gsl_vector_set (x, 1, v2Start);

/* Set initial step sizes to 1 */
      ss = gsl_vector_alloc (2);
      gsl_vector_set_all (ss, 1.0);

/* Initialize method and iterate */
      minex_func.n = 2;
      minex_func.f = my_f;
      minex_func.params = par;

      s = gsl_multimin_fminimizer_alloc (T, 2);
      gsl_multimin_fminimizer_set (s, &minex_func, x, ss);      do
        {
          iter++;
          status = gsl_multimin_fminimizer_iterate(s);

          if (status)
            break;

          size = gsl_multimin_fminimizer_size (s);
          status = gsl_multimin_test_size (size, C_MinTOL); // Teste Toleranz auf MinTOL

          if (status == GSL_SUCCESS)
            {
              printf ("converged to minimum at\n");
              printf ("%5d %10.3e %10.3e f() = %7.3f size = %.3f\n",
                  iter,
                  gsl_vector_get (s->x, 0),
                  gsl_vector_get (s->x, 1),
                  s->fval, size);
                printf(" at Temperature %lf \n " , Temptmp);
              
            }        }
      while (status == GSL_CONTINUE && iter < 1000);
 
Technology news on Phys.org
Another possibility would be to change the Minimization Method (doesn't have to be gsl). So if you know one which could handle this case, please let me know it.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top