diff --git a/src/new/thermal/FT_approximate_paraboloid_for_thermal_distortion.m b/src/new/thermal/FT_approximate_paraboloid_for_thermal_distortion.m
index 504bd88f170c5e6fc8e13a75fb2c8e9132e6529c..0257cb0e60c9d194cbcbbbabe5d48a26b3650d02 100644
--- a/src/new/thermal/FT_approximate_paraboloid_for_thermal_distortion.m
+++ b/src/new/thermal/FT_approximate_paraboloid_for_thermal_distortion.m
@@ -3,11 +3,15 @@
 % FT_approximate_paraboloid_for_thermal_distortion(beam,mirror,num_terms)
 %
 % A function for Matlab which calculates the approximate paraboloid for the
-% thermal distortion of a mirror.
+% thermal distortion of a mirror due to an incident beam absorbed in the
+% coating or substrate.
 %
+% N.B. currently only valid for and LG00 incident beam.
+%
+% coeffs:   Coefficients for bessel expansion of thermal distortion.
+% SV:       Saint-Venant correction.
 % beam:     Structure storing beam parameters (FT_init_thermal_beam.m).
 % mirror:   Structure storing mirror parameters (FT_init_thermal_mirror.m).
-% num_terms:Number of terms to use in approximation of thermal distortion.
 %
 % c,p:      Parameters for best fitted paraboloid:
 %           Z = c*r^2+p
@@ -17,28 +21,22 @@
 %--------------------------------------------------------------------------
 %
 
-function [c,p] = FT_approximate_paraboloid_for_thermal_distortion(beam,mirror,num_terms)
+function [c,p] = FT_approximate_paraboloid_for_thermal_distortion(coeffs,SV,beam,mirror)
 
-    % Beam parameters
-    P = beam.P;
+    X = mirror.X;
+    a = mirror.a;
     w = beam.w;
-
-    % Mirror parameters
-    alpha = mirror.alpha;
     pois = mirror.pois;
-    Cabs = mirror.Cabs;
-    K = mirror.K;
-    a = mirror.a;
-    h = mirror.h;
-    X = mirror.X;
-    
-    % Factors
-    k1 = - alpha*(1+pois)*Cabs*P/(4*pi*a^2*K);
-    k2 = - alpha*(1+pois)*Cabs*P/(pi*K);
+    Y = mirror.Y;
 
-    % Calculate coefficents
-    zeta_0s = FT_bessel_zeros(0,X,num_terms);
-    x_0s = zeta_0s.^2 * w^2 / (8*a^2);
+    % Number of terms in expansion
+    num_terms = length(coeffs);
+    
+    % Calculating bessel zeros
+    zeta_0 = FT_bessel_zeros(0,X,num_terms);
+    y0 = zeta_0.^2*w^2/(8*a^2);
+    
+    c0 = -2/w^2*exp(-y0).*y0;
     
     % Initial paraboloid parameters
     c = 0;
@@ -47,11 +45,13 @@ function [c,p] = FT_approximate_paraboloid_for_thermal_distortion(beam,mirror,nu
     % Calculate parabaloid terms
     for s=1:num_terms
         
-        c = c + k1 * (zeta_0s(s)^3*exp(-zeta_0s(s)^2*w^2/(4*a^2))/((zeta_0s(s)^2+X^2)*(besselj(0,zeta_0s(s))^2))) * (zeta_0s(s)+X-(zeta_0s(s)-X)*exp(-2*zeta_0s(s)*h/a)) / ((zeta_0s(s)+X)^2-(zeta_0s(s)-X)^2*exp(-2*zeta_0s(s)*h/a));
-        p = p + k2 * (zeta_0s(s)*exp(-x_0s(s))/((zeta_0s(s)^2+X^2)*(besselj(0,zeta_0s(s))^2))) * (1-(1+x_0s(s))*exp(-x_0s(s))) * (zeta_0s(s) + X - (zeta_0s(s)-X)*exp(-2*zeta_0s(s)*h/a)) / ((zeta_0s(s)+X)^2-(zeta_0s(s)-X)^2*exp(-2*zeta_0s(s)*h/a));  
+        c = c - c0(s)*coeffs(s);
+        p = p + (1 - exp(-y0(s)))*coeffs(s); 
         
     end
-
+    
+    c = c + SV;
+    p = p + SV*w^2/2 - c*w^2/2;
 
 end
 
diff --git a/src/new/thermal/FT_approximate_paraboloid_for_thermal_lens.m b/src/new/thermal/FT_approximate_paraboloid_for_thermal_lens.m
index 0f8ccecdf02ffea8f4a6eabd9d08e529f3b5fbd6..a9c067aa9ed2cbc24f4a6d6b1db94f063e474487 100644
--- a/src/new/thermal/FT_approximate_paraboloid_for_thermal_lens.m
+++ b/src/new/thermal/FT_approximate_paraboloid_for_thermal_lens.m
@@ -3,7 +3,10 @@
 % FT_approximate_paraboloid_for_thermal_lens(coeffs,X,a,w)
 %
 % A function for Matlab which computes the approximate paraboloid for a 
-% thermal lens:
+% thermal lens caused by heating from a laser beam absorbed in the coating
+% or substrate.
+%
+% Currently only valid for LG00 incident beam.
 %
 % coeffs:   Coefficients for expansion of thermal lens in terms of bessel
 %           functions.
@@ -25,8 +28,11 @@ function [c,p] = FT_approximate_paraboloid_for_thermal_lens(coeffs,X,a,w)
     num_terms = length(coeffs);
     
     % Calculating bessel zeros
-    zeta_0s = FT_bessel_zeros(0,X,num_terms);
-
+    zeta_0 = FT_bessel_zeros(0,X,num_terms);
+    y0 = zeta_0.^2*w^2/(8*a^2);
+    
+    c0 = -2/w^2*exp(-y0).*y0;
+    
     % Initial coefficients
     c = 0;
     p = 0;
@@ -34,11 +40,12 @@ function [c,p] = FT_approximate_paraboloid_for_thermal_lens(coeffs,X,a,w)
     % Calculating approximate parabaloid parameters
     for s=1:num_terms
         
-        c = c - 1/(4*a^2) * coeffs(s) * zeta_0s(s)^2 * exp(-zeta_0s(s)^2*w^2/(8*a^2));
-        p = p + coeffs(s) * (1+zeta_0s(s)^2*w^2/(8*a^2)) * exp(-zeta_0s(s)^2*w^2/(8*a^2));
-        
+        c = c + c0(s)*coeffs(s);
+        p = p + exp(-y0(s))*coeffs(s);
     end
 
+    p = p - c*w^2/2;
+   
 
 end