naca | Generate 4 and 5 digit NACA airfoil sections | SMS library

 by   dgorissen Python Version: Current License: No License

kandi X-RAY | naca Summary

kandi X-RAY | naca Summary

naca is a Python library typically used in Messaging, SMS applications. naca has no bugs, it has no vulnerabilities and it has low support. However naca build file is not available. You can download it from GitHub.

Generate 4 and 5 digit NACA airfoil sections
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              naca has a low active ecosystem.
              It has 22 star(s) with 7 fork(s). There are 5 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 1 open issues and 0 have been closed. On average issues are closed in 218 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of naca is current.

            kandi-Quality Quality

              naca has 0 bugs and 13 code smells.

            kandi-Security Security

              naca has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              naca code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              naca does not have a standard license declared.
              Check the repository for any license declaration and review the terms closely.
              OutlinedDot
              Without a license, all rights are reserved, and you cannot use the library in your applications.

            kandi-Reuse Reuse

              naca releases are not available. You will need to build from source code and install.
              naca has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              naca saves you 82 person hours of effort in developing the same functionality from scratch.
              It has 212 lines of code, 10 functions and 1 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed naca and discovered the below as its top functions. This is intended to give you an instant insight into naca implemented functionality, and help decide if they suit your requirements.
            • Calculates the Naca number
            • Calculates the center of a given number
            • Linear interpolation
            • Convert a number to a nacian
            • Generate linspace from start to stop
            • Plot a series of points
            • Synthesize a number
            • Plot data
            • Show the plot
            Get all kandi verified functions for this library.

            naca Key Features

            No Key Features are available at this moment for naca.

            naca Examples and Code Snippets

            No Code Snippets are available at this moment for naca.

            Community Discussions

            QUESTION

            NACA 4 digit airfoil
            Asked 2021-Jan-25 at 20:52

            I have a NACA csv file containing the X and Y coordinates for an airfoil.

            What I'm trying to do is, giving a circle from an angle theta to get the coordinate X. From that X, obtain the Y coordinate from the NACA profil.

            For the needs of my problem, I want to divide the profil in two: extrados and intrados with: _ extrados: profil for y values positive _ intrados: profil for y values negative

            For now, I have this:

            ...

            ANSWER

            Answered 2021-Jan-25 at 20:52

            Well I can't say I've fully understood the "circle" part exactly. But as you've asked for splitting the profile into upper and lower parts and then making interpolation work, this code can help you.

            Source https://stackoverflow.com/questions/65891539

            QUESTION

            How to split data groups into quartiles by group's size
            Asked 2020-Dec-20 at 03:28

            I have a dataset for credit card transaction.

            I split this dataset by group using below code

            ...

            ANSWER

            Answered 2020-Dec-20 at 03:28

            QUESTION

            Unable to plot the graph for ff=2 in below code:
            Asked 2020-Sep-27 at 08:46
            import numpy as np
            import math
            import matplotlib.pyplot as plt
            %matplotlib inline
            
            #Class to calculate Camber and Thickness Distribution
            
            class naca:                                                    # defining class naca
                def __init__(self,airfoil):
                    self.airfoil = airfoil
                    print ('NACA Airfoil is',airfoil ,'\n')
                    self.__maxcamber=int(airfoil[0:1])/100 
                    print ('Maximum Camber of airfoil as a %age of chord is' ,self.__maxcamber *100)
                    self.__pos=int(airfoil[1:2])/10 
                    print ('Position of maximum camber from leading edge as a %age of chord is' ,self.__pos*100)
                    self.__thick=int(airfoil[2:4])/100 
                    print ('Maximum Thickness of airfoil as a %age of chord is' ,self.__thick * 100 ,'\n')
            
            
                #Function to calculate Camber  
                def camber(self,x):                                        # defining camber function               
                    if x < self.__pos and x>=0:
                        z=(self.__maxcamber/(self.__pos**2))*((2*self.__pos*x)-x**2) 
                        return z
                    elif x>=self.__pos and x<=1:
                        z=(self.__maxcamber/((1-self.__pos)**2))*(1-(2*self.__pos)+(2*self.__pos*x)-x**2)
                        return z
                    else:
                        raise Exception ('Entered value of x/c should be between 0 to 1')
              
                #Function to calculate Thickness 
                def thickness (self,x):                                    # defining thickness function        
                    if 0<=x<=1:
                        t= 5*self.__thick*(0.2969*math.sqrt(x) - 0.1260*x - 0.3516*x**2 + 0.2843*x**3 - 0.1036*x**4)
                        return t
                    else:
                        raise Exception ('Entered value of x/c should be between 0 to 1')
                
            #Class to calculate x-derivative of Camber and Thickness distribution function 
            class derivative(naca):                                        # parent class naca mentioned in the bracket
                    def __init__(self,airfoil):
                        super().__init__(airfoil)                          # calling the previous class attributes
            
                    # Finding x-derivative of camber 
                    def d_camber(self,xa):   
                        h=0.01
                        if xa==0:
                            dx=(super().camber(xa+h)-super().camber(xa))/h         # forward differencing
                            return dx
                        elif xa==1:
                            dx=(super().camber(xa)-super().camber(xa-h))/h         # backward differencing
                            return dx
                        else:
                            dx=(super().camber(xa+h)-super().camber(xa-h))/(2*h)   # central differencing
                            return dx
            
                    # Finding x-derivative of thickness
                    def d_thick(self,xa):  
                        h=0.01
                        if xa==0:
                            dt=(super().thickness(xa+h)-super().thickness(xa))/h         # forward differencing
                            return dt
                        elif xa==1:
                            dt=(super().thickness(xa)-super().thickness(xa-h))/h         # backward differencing
                            return dt
                        else:
                            dt=(super().thickness(xa+h)-super().thickness(xa-h))/(2*h)   # central differencing
                            return dt
                               
            #Class to calculate flow around an arbitary airfoil using thin-airfoil theory
            class thinairfoiltheory(derivative):    #parent class mentioned in the bracket
                    def __init__(self, airfoil):
                        super().__init__(airfoil)    #calling the previous class attributes   
                    
                    def sectional(self,alphad,f):
                        n=15                             ### it is not taking value more than 15. n is actually related to the number of division used in intergration
                                                         ##check how to give n=100.For n>15 it is giving error???
                            #we have to increase thye value of n for accuracy
                        alphar=alphad*(np.pi/180)
                        thetal=0
                        thetah=np.pi
                        h=(np.pi-0)/n
                        th=0
                        sum1=0
                        sum2=0
                        sum3=0
                        for i in range(1, n): #composite trapezoidal rule used for integration
                            th=th+h
                            x=0.5*(1-np.cos(th))
                            sum1=sum1+super().d_camber(x)
                            sum2=sum2+(super().d_camber(x)*np.cos(th))
                            sum3=sum3+(super().d_camber(x)*np.cos(2*th))
                                           
                        xl=0.5*(1-np.cos(thetal))
                        xh=0.5*(1-np.cos(thetah))
                        
                        finalsum1=(h/2)*(super().d_camber(xl)+super().d_camber(xh))+(h*sum1)
                        a0=(1/np.pi)*finalsum1
                        
                        finalsum2=(h/2)*(((super().d_camber(xl))*np.cos(thetal))+((super().d_camber(xh))*np.cos(thetah)))+(h*sum2)
                        a1=(2/np.pi)*finalsum2
                        
                        finalsum3=(h/2)*(((super().d_camber(xl))*np.cos(2*thetal))+((super().d_camber(xh))*np.cos(2*thetah)))+(h*sum3)
                        a2=(2/np.pi)*finalsum3
                        
                        
                        cl=2*(np.pi*(alphar-a0)+(np.pi/2)*a1)
                        cmc=-(np.pi/4)*(a1-a2)
                        
                        #print("sectional lift coefficient", cl)
                        #print("quatercord point moment",cmc)
                        
                        if f==1:
                            return cl
                        elif f==2:
                            return cmc
            
                    def plot(self,ff):
                                 
                        deg=np.linspace(0,30,50) 
                        liftcoff=self.sectional(deg,1)
                        momcoff=self.sectional(deg,2)
                           
                                           
                        if ff==1:         #graph for lift coefficient
                            plt.plot(deg,liftcoff)  
                            plt.rcParams['figure.figsize'] = (10, 6)           #This fixes the size of plot displayed below
                            plt.rcParams.update({'font.size': 15})            #This fixes the font size of parameters in the plot below
                            plt.xlabel('Angle of attack in degress')        #This labels the x-axis
                            plt.ylabel('Liff coeff')         #This labels the y-axis
                            plt.grid(b=True, color='black', alpha=0.3,linewidth=1)
                            
                        elif ff==2:    #graph for moment coefficient
                            ##the moment coeff graph is not plotting.I cannot figure out the problem???
                            
                            plt.plot(deg,momcoff)  
                            plt.rcParams['figure.figsize'] = (10, 6)           #This fixes the size of plot displayed
                            plt.rcParams.update({'font.size': 15})            #This fixes the font size of parameters
                            plt.xlabel('Angle of attack in degress')        #This labels the x-axis
                            plt.ylabel('mom coeff')         #This labels the y-axis
                            plt.grid(b=True, color='black', alpha=0.3,linewidth=1)
            
            ...

            ANSWER

            Answered 2020-Sep-27 at 08:46

            Your error is at this line of code cmc=-(np.pi/4)*(a1-a2), for ff=2 your sectional() function will return cmc, which is a constant. I think your formula must be missing alphar to calculate the moment coefficient for different angles.

            Source https://stackoverflow.com/questions/64081123

            QUESTION

            Activate Entry Box from Listbox in Tkinter
            Asked 2020-Aug-29 at 16:14

            I'm trying to create a GUI to collect three inputs from a user, where the first input has two options (based on a Listbox), like the image below (where the option "NACA" is selected):

            The problem is with the Listbox. I guess the options are overlapping each other. For example, If I select the NACA option (image above), and then I select the .txt option, some part of the NACA label remains:

            And of course, just the labels are appearing, not the entry_boxes to type inside (if I delete the part of the listBox, the entry_boxes of the last two input appers, so I really guess the problem is with the ListBox)

            ...

            ANSWER

            Answered 2020-Aug-29 at 16:14

            The problem is that while you clicking button each time, you are creating label each time, if you want to change the text in the label you created,use 'config()'

            change your code like this,

            Source https://stackoverflow.com/questions/63648864

            QUESTION

            How can ı find intersection points of cp and cp_p_g on axis M?
            Asked 2020-May-29 at 11:43
            import numpy as np
            import matplotlib.pyplot as plt 
            
            Cp_0=-0.464   
            M=np.arange(0.3,1,0.1) #Mach number for range<0.3-1>
            Cp=(2/(1.4*M**2))*(((1+0.2*M**2)/(1.2))**3.5-1) #Aerodynamic relation for isentropic flow
            Cp_p_g=Cp_0/((1-M**2)**0.5) #prandtl-Glauert rule
            
            plt.plot(M,Cp)
            plt.plot(M,Cp_p_g)
            plt.grid("major")
            plt.title('NACA**-***') #Title varies on the NACA profiles that we work
            plt.xlabel("M")
            plt.ylabel("Cp")
            
            ...

            ANSWER

            Answered 2020-May-29 at 11:43

            You can refine your x-meshgrid using linspace and then look for the difference of the two curves

            Source https://stackoverflow.com/questions/62084912

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install naca

            You can download it from GitHub.
            You can use naca like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/dgorissen/naca.git

          • CLI

            gh repo clone dgorissen/naca

          • sshUrl

            git@github.com:dgorissen/naca.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular SMS Libraries

            easy-sms

            by overtrue

            textbelt

            by typpo

            notifme-sdk

            by notifme

            ali-oss

            by ali-sdk

            stashboard

            by twilio

            Try Top Libraries by dgorissen

            pycel

            by dgorissenPython

            mfann

            by dgorissenC

            pymatopt

            by dgorissenC

            bogglepy

            by dgorissenPython

            parlycloud

            by dgorissenJavaScript