From 129375d321ee545ce3305b09dccf842946183d42 Mon Sep 17 00:00:00 2001 From: Gabriel Quispe Date: Wed, 9 Apr 2025 02:13:28 +0200 Subject: [PATCH] Subida inicial del proyecto --- Codigo3D_Coefs.py | 35 +----------------- Codigo3D_FuncionGeneral.py | 2 +- SPH.log | 8 ---- .../Codigo3D_AjusteHelfrich.cpython-311.pyc | Bin 1408 -> 0 bytes __pycache__/Codigo3D_Coefs.cpython-311.pyc | Bin 17135 -> 0 bytes .../Codigo3D_FuncionGeneral.cpython-311.pyc | Bin 3059 -> 0 bytes 6 files changed, 3 insertions(+), 42 deletions(-) delete mode 100644 SPH.log delete mode 100644 __pycache__/Codigo3D_AjusteHelfrich.cpython-311.pyc delete mode 100644 __pycache__/Codigo3D_Coefs.cpython-311.pyc delete mode 100644 __pycache__/Codigo3D_FuncionGeneral.cpython-311.pyc diff --git a/Codigo3D_Coefs.py b/Codigo3D_Coefs.py index e71504d..6052020 100644 --- a/Codigo3D_Coefs.py +++ b/Codigo3D_Coefs.py @@ -84,12 +84,7 @@ class SHD: l,m = A[0][n],A[1][n] return l,m - def __init__(self,name="SHD",Lmin=2,Lmax=10,debug=False, - radiusMode = "geometric", - expansionMode = "abs"): - - self.__availableRadiusModes = ["expansion","geometric"] - self.__availableExpansionModes = ["fluct","abs"] + def __init__(self,name="SHD",Lmin=2,Lmax=10,debug=False): self.__DEBUG = debug @@ -110,34 +105,8 @@ class SHD: ch.setLevel(logging.INFO) ch.setFormatter(formatter) - #Create other logger. Log to file, with level DEBUG - fh = logging.FileHandler(f'{self.__name}.log') - fh.setLevel(logging.DEBUG) - fh.setFormatter(formatter) - self.logger.addHandler(ch) - self.logger.addHandler(fh) - - ###################################################### - - if radiusMode not in self.__availableRadiusModes: - self.logger.error("Radius mode {} not available. Available modes are: {}".format(radiusMode,self.__availableRadiusModes)) - raise ValueError - else: - self.__radiusMode = radiusMode - - if expansionMode not in self.__availableExpansionModes: - self.logger.error("Traj mode {} not available. Available modes are: {}".format(expansionMode,self.__availableExpansionModes)) - raise ValueError - else: - self.__expansionMode = expansionMode - - if self.__radiusMode == "expansion" and self.__expansionMode == "fluct": - #Not compatible - self.logger.error("Radius mode {} and traj mode {} not compatible".format(self.__radiusMode,self.__expansionMode)) - raise ValueError - - + def __setGrid(self): self.gridSize = self.thetaGrid.shape[0] self.grid = np.asarray([self.thetaGrid,self.phiGrid]).T diff --git a/Codigo3D_FuncionGeneral.py b/Codigo3D_FuncionGeneral.py index d408f92..49277e5 100644 --- a/Codigo3D_FuncionGeneral.py +++ b/Codigo3D_FuncionGeneral.py @@ -11,7 +11,7 @@ import Codigo3D_AjusteHelfrich as c3 def calculate_al(Datos,Lmaximo): - cdata = SHD(name="SPH",Lmin=0,Lmax=Lmaximo,expansionMode="abs",radiusMode="expansion") # def clase + cdata = SHD(name="SPH",Lmin=0,Lmax=Lmaximo) # def clase ### CARGAMOS DATOS A LA CLASE diff --git a/SPH.log b/SPH.log deleted file mode 100644 index 3cba4fc..0000000 --- a/SPH.log +++ /dev/null @@ -1,8 +0,0 @@ -09-Apr-2025 01:30:39 - sphAnalysis - INFO - Generating icosahedral grid with 3 subdivisions ... -09-Apr-2025 01:30:39 - sphAnalysis - INFO - Distributing trajectory points along grid ... -09-Apr-2025 01:31:47 - sphAnalysis - INFO - Performing spherical harmonic expansion ... -09-Apr-2025 01:31:51 - sphAnalysis - INFO - Realizando el calculo de valores medios... -09-Apr-2025 01:32:35 - sphAnalysis - INFO - Generating icosahedral grid with 3 subdivisions ... -09-Apr-2025 01:32:36 - sphAnalysis - INFO - Distributing trajectory points along grid ... -09-Apr-2025 01:33:45 - sphAnalysis - INFO - Performing spherical harmonic expansion ... -09-Apr-2025 01:33:50 - sphAnalysis - INFO - Realizando el calculo de valores medios... diff --git a/__pycache__/Codigo3D_AjusteHelfrich.cpython-311.pyc b/__pycache__/Codigo3D_AjusteHelfrich.cpython-311.pyc deleted file mode 100644 index 8110fb9455b0ebeff1dd3c36535a0818181a8a42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 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 diff --git a/__pycache__/Codigo3D_FuncionGeneral.cpython-311.pyc b/__pycache__/Codigo3D_FuncionGeneral.cpython-311.pyc deleted file mode 100644 index e066b59cb3f793345b6dbb2e1572c064eef19060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3059 zcmbVNZ)hCH6`$LiJ>8z}PC7*w$*!B6S~bd<#EoP-ZKa?hStrSfBma@?!Xb27-OfoX z@7|tw_gd??Yd7FR0{)Im}WsG0Aed6gmK>P_wND3$@8}LR> z4Q6qG&2b8^hO!}#4k|5bI2%@lte{4+5pNDFt!gwIRb$zh#|M;nHtyMI%eG7WEtE}2 zfoYTuJz?8Tr2{lHa+4UR$I?L>oSqz`5j8LBW==Iqi$Fu4^Cr?9#p9YzC_im3DruKUjreEQk(Dsgw)*WuM{HeOCmIH*~RR3p#Ut_l^1praBj+66#a zf6hm6aI8iSpS$V3g_~F5RW!~47CR4G^67(!o3%Y(C4ISCD@Z=y;G#{Q>+7q%_=QTrIBoZK- z03bBZ;9MhlQ_~HW>{}1;^v9A6kmdQZNoHWZ(?h^BMmZXzaJ50)G-iC6cTeG_hhH|R3 zOrzi(7D6V0ef3|#4lK5e-#`FZ=y9}ds%y2CMHSyxMP--#z~**0sjHKX-f1 z8sF*YwlcTgdW;1-GWQ`_RX&^fH0wP7bKtg;_kMK$^1T;;{37|U7h%|I4$iqaXXD%> zrX+sIuSP#MKdLzGY2Y@_-W}Syad#NVf1G{rYZ&&LgXdj5Z{vAD&quz&Jr8kDy~n}5 zF7CB)?@lz~MpIU1JJ#XGUa-bJJmjK4W8oXz_Yn6vIPK!Jjng~H-+I$IF>Fm8cD#d+?S?r% zynoW(hq$*s=ioCgK4arEkGp?TA9lJ2-0lG@+-Xm` z?LW27Zwv9;-PY*iX#DnDYk{@Cdf!IRCut}8iW_|e9M;ykLe@q;Sa|;rb-pfs(&Dte zyz#TGz~_BV+kiE>)0$X0Rqx(NZ;jfmuiNrZ3ng6e%nU9w%>N~P~aE4=xFDm F|2I>Q^GW~!