diff +scheme/Schrodinger2dCurve.m @ 698:0122cbe2e6d3 feature/optim

Add hamiltonian
author Ylva Rydin <ylva.rydin@telia.com>
date Fri, 13 Oct 2017 09:16:33 +0200
parents ba0d31ce4121
children 8f1eae1450b2
line wrap: on
line diff
--- a/+scheme/Schrodinger2dCurve.m	Fri Oct 06 13:51:21 2017 +0200
+++ b/+scheme/Schrodinger2dCurve.m	Fri Oct 13 09:16:33 2017 +0200
@@ -38,6 +38,7 @@
         m_tot, m_u, m_v
         p
         Ji, J
+        Hamiltonian
     end
 
     methods
@@ -67,7 +68,7 @@
 
             obj.D1_u = ops_u.D1;
             obj.D2_u = ops_u.D2;
-            
+
             H_u =  ops_u.H;
             Hi_u = ops_u.HI;
             e_l_u = ops_u.e_l;
@@ -115,10 +116,11 @@
             obj.h = [h_u h_v];
             obj.order = order;
             obj.D = @(t)obj.d_fun(t);
+            obj.Hamiltonian = @(t)obj.h_fun(t);
             obj.variable_update(0);
         end
         
-        function [D] = d_fun(obj,t)
+        function [D,n] = d_fun(obj,t)
             %         obj.update_vairables(t); In driscretization?
             %  D = obj.Ji*(-1/2*(obj.b1*obj.Du-obj.b1_u+obj.Du*obj.b1) -
             %  1/2*(obj.b2*obj.Dv - obj.b2_v +obj.Dv*obj.b2) +
@@ -128,6 +130,9 @@
             D = sqrt(obj.Ji)*(-1/2*(obj.b1*obj.Du + obj.Du*obj.b1) - 1/2*(obj.b2*obj.Dv + obj.Dv*obj.b2) + 1i*obj.c^2*(obj.DUU + obj.DUV + obj.DVU + obj.DVV))*sqrt(obj.Ji); 
         end
         
+         function [Hamiltonian,n] = h_fun(obj,t)
+              Hamiltonian =  obj.c^2*(obj.DUU + obj.DUV + obj.DVU + obj.DVV)*sqrt(obj.Ji);
+         end    
         
         function [D ]= variable_update(obj,t)
             % Metric derivatives