ROL
Classes
gross-pitaevskii/example_02.hpp File Reference

Minimize the Gross-Pitaevskii functional and demonstrate the effect of choice of function space of the Gradient on convergence. In this version we implement the correct Sobolev inner products and Reisz mapping using a finite difference approximation of the derivative terms.
More...

#include <iostream>
#include "ROL_Stream.hpp"
#include "Teuchos_GlobalMPISession.hpp"
#include "ROL_ParameterList.hpp"
#include "ROL_StdVector.hpp"
#include "ROL_Objective.hpp"
#include "ROL_Constraint.hpp"
#include "ROL_Algorithm.hpp"
#include "ROL_CompositeStep.hpp"
#include "ROL_ConstraintStatusTest.hpp"
#include "numerics/FiniteDifference.hpp"

Go to the source code of this file.

Classes

class  OptStdVector< Real, Element >
 
class  OptDualStdVector< Real, Element >
 
class  ConStdVector< Real, Element >
 
class  ConDualStdVector< Real, Element >
 
class  Objective_GrossPitaevskii< Real >
 
class  Normalization_Constraint< Real >
 

Detailed Description

Minimize the Gross-Pitaevskii functional and demonstrate the effect of choice of function space of the Gradient on convergence. In this version we implement the correct Sobolev inner products and Reisz mapping using a finite difference approximation of the derivative terms.

Minimize the one-dimensional Gross-Pitaevskii (GP) energy functional

\[ J[\psi] = \int \frac{1}{2} |\nabla\psi|^2 + V(x)|\psi|^2 +g|\psi|^4 \,\mathrm{d}x \]

Subject to the equality constraint that the particle density be normalized.

\[ e(\psi) = \int |\psi|^2\,\mathrm{d}x - 1 = 0 \]

For simplicity, we will assume the wavefunction \(\psi\) to be real-valued, the potential function \( V(x)\geq 0\), the computational domain is the interval \([0,1]\), and that \(\psi(0)=\psi(1)=0\). We also discretize the problem using second-order centered finite differences on a uniform grid.

\[ \psi''(x_i) \approx = \frac{\psi(x_{i-1})-2\psi(x_i)+\psi(x_{i+1})}{\Delta x^2} \]

The gradient with respect to the \(L^2\) inner product is actually an element of \(H^{-1}\), so if we search in this direction, we are actually looking for a solution \(\psi\) in a larger space than we should. If we compute the gradient with respect to the \(H^1\) inner product, by solving a Poisson equation, we search in the right space and the optimizer converges much faster than example_01.cpp which
does not do this.

Author
Greg von Winckel
Date
Wed Dec 3 16:40:45 MST 2014

Definition in file gross-pitaevskii/example_02.hpp.