From a59d83a583a8d0e19e7ea42196f145fde64b4760 Mon Sep 17 00:00:00 2001 From: Maliniak Date: Wed, 13 Dec 2017 16:09:51 -0500 Subject: [PATCH] Part E --- Part E/SE_diff.asv | 34 ++++++++++++++++++++++++++++++++++ Part E/SE_diff.m | 26 ++++++++++++++++++++++++++ Part E/membrane_solution.m | 23 +++++++++++++++++++++++ 3 files changed, 83 insertions(+) create mode 100644 Part E/SE_diff.asv create mode 100644 Part E/SE_diff.m create mode 100644 Part E/membrane_solution.m diff --git a/Part E/SE_diff.asv b/Part E/SE_diff.asv new file mode 100644 index 0000000..56da973 --- /dev/null +++ b/Part E/SE_diff.asv @@ -0,0 +1,34 @@ +function [pw_se,w]=SE_diff(T,P,n) +E = 1e12; %Pa +v = .31; +t = .3; %nm +h = 10/(n+1); %nm +w = membrane_solution(T,P,n); +z = zeros(n+2); +z(2:end-1,2:end-1) = reshape(w,[n n]); +num = n + 1; +wbar = zeros(num); +for i = 1:num + for j = 1:num + wbar(i,j) = mean([z(i,j),z(i+1,j),z(i,j+1),z(i+1,j+1)]); + end +end +pw = sum(wbar.*h^2.*P); +dwdx = zeros(num); +dwdy = zeros(num); +% for i = 1:num +% for j = 1:num +% dwdx(j,i) = z(i+1,j)-z(i,j); +% dwdy(j,i) = z(i,j+1)-z(i,j); +% end +% end +dwdx(:,1) = wbar(:,2)-wbar(:,1); +for i = 2:n + dwdx(:,3) = wbar(:,n+1)-wbar(:,n-1); +end +% dwdx(:,4) = wbar(:,4)-wbar(:,3); +dwdy(1,:) = wbar(2,:)-wbar(1,:); +dwdy(2,:) = wbar(3,:)-wbar(1,:); +dwdy(3,:) = wbar(4,:)-wbar(2,:); + +%se = E*t*h^2/(2*(1-v^2)); diff --git a/Part E/SE_diff.m b/Part E/SE_diff.m new file mode 100644 index 0000000..f68b909 --- /dev/null +++ b/Part E/SE_diff.m @@ -0,0 +1,26 @@ +function [pw_se,w]=SE_diff(T,P,n) +E = 1; %TPa Units may need to be changed +v = .31; %Poissons ratio +t = .3; %nm +h = 10/(n+1); %nm +w = membrane_solution(T,P,n); +z = zeros(n+2); +z(2:end-1,2:end-1) = reshape(w,[n n]); +num = n + 1; +wbar = zeros(num); +for i = 1:num + for j = 1:num + wbar(i,j) = mean([z(i,j),z(i+1,j),z(i,j+1),z(i+1,j+1)]); + end +end +pw = sum(sum(wbar.*h^2.*P)); +dwdx = zeros(num); +dwdy = zeros(num); +for i = 1:num + for j = 1:num + dwdx(i,j) = mean([z(i+1,j)-z(i,j),z(i+1,j+1)-z(i,j+1)]); + dwdy(i,j) = mean([z(i,j+1)-z(i,j),z(i+1,j+1)-z(i+1,j)]); + end +end +se = E*t*h^2/(2*(1-v^2))*sum(sum(0.25.*dwdx.^4+.25.*dwdy.^4+0.5.*(dwdx.*dwdy).^2)); +pw_se = pw-se; \ No newline at end of file diff --git a/Part E/membrane_solution.m b/Part E/membrane_solution.m new file mode 100644 index 0000000..f9c96d6 --- /dev/null +++ b/Part E/membrane_solution.m @@ -0,0 +1,23 @@ +function [w] = membrane_solution(T,P,n) + % T = Tension (microNewton/micrometer) + % P = Pressure (MPa) + % n = # of interior nodes + + od = ones(n^2-1,1); + od(n:n:end) = 0; + k = -4*diag(ones(n^2,1))+diag(ones((n^2)-n,1),n)+diag(ones((n^2)-n,1),-n)+diag(od,1)+diag(od,-1); + + y = -(10/(n+1))^2*(P/T)*ones(n^2,1); + w = k\y; + % Solves for displacement (micrometers) + % Output w is a vector + % Solution represents a 2D data set w(x,y) + + [x,y] = meshgrid(0:10/(n+1):10,0:10/(n+1):10); + z = zeros(size(x)); + z(2:end-1,2:end-1) = reshape(w,[n n]); + surf(x,y,z) + title('Membrane Displacement') + zlabel('Displacement (micrometer)') + % Membrane displacement is shown on chart +end \ No newline at end of file