''' Calculo de bending y stretching sobre datos en una circunferencia (se asume equiespaciamiento angular) Ultima Fecha Modificacion: 30/03/25 ''' # %% LIBRERIAS import numpy as np import matplotlib.pyplot as plt import Codigo2D_Base as c7 import Codigo2D_AjusteHelfrich as c8 # %% FUNCION TEORICA kb = 1.380649*10**-23 T = 300 kbT = kb*T valor = 10*kbT # este es el valor que deberia tener el bending def fx(x,stretch,bend): y = kbT*(0.5/stretch)*((1/x) - (stretch/bend + x**2)**(-0.5)) return y # %% CODIGO def calculatecoefs(MSph, nmin, nmax): ''' Se utiliza el metodo de trapecios ''' qx,u = c7.f2(MSph,21,positive = "Yes") # TODOS LOS COEFICIENTES (U) del 1 al 20 ''' El bending solo se calcula para ciertos modos ''' qxnew = qx[nmin:nmax] unew = u[nmin:nmax] bend,stretch = c8.aproxHelfrich(qxnew,unew) qxcont = np.linspace(qxnew[0],qxnew[-1],100) # limites coinciden con qx, pero Y no tiene porque es un ajuste no hay restriccion Ycont = fx(qxcont,stretch,bend) # Al representar sera en el eje x: qxnew y en el y: Y print("----------------") print(f"Para modos entre {nmin+1} y {nmax+1} se obtiene:") print("Bending (en uds kbT): ",bend/kbT) print("Stretching [N/m]: ",stretch) return qx,u,qxcont,Ycont,bend,stretch