Consulting

Results 1 to 20 of 27

Thread: VBA Matrix Operations Help Needed.

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #5
    Quote Originally Posted by MagPower View Post
    How are A2, B2, C2, defined, and what are their values?
    I knew someone would ask … I didn't include them because the whole code is fairly long (and getting longer). Here's the hole thing so far:

    Option Explicit
    Option Base 1
    Sub Coefficients()
    Dim ShMain As Worksheet
    Dim Rswrl As Variant
    Dim Lswrl As Variant
    Dim Ror As Variant
    Dim Alpha As Variant
    Dim rho_liq As Variant
    Dim visc As Variant
    Dim rho_air As Variant
    Dim surfT_liquid As Variant
    Dim Omega As Variant
    Dim Re As Variant
    Dim Ain As Variant
    Dim V1 As Variant
    Dim Ri As Variant
    Dim R As Variant
    Dim psi As Variant
    Dim psipsi As Variant
    Dim a As Variant
    Dim b As Variant
    Dim h As Variant
    Dim sum As Variant
    Dim First As Variant
    Dim Last As Variant
    Dim A1 As Variant
    Dim A2 As Variant
    Dim B1 As Variant
    Dim B2 As Variant
    Dim C2 As Variant
    Dim A3 As Variant
    Dim B3 As Variant
    Dim B33 As Variant
    Dim C3 As Variant
    Dim B4 As Variant
    Dim A4 As Variant
    Dim W1 As Variant
    Dim Del1 As Variant
    Dim C As Variant
    Dim D As Variant
    Dim F As Variant
    Dim Pi As Variant
    ReDim C(1 To 2, 1 To 2)
    ReDim D(1 To 2, 1 To 1)
    ReDim F(1 To 2, 1 To 1)
    ReDim Cinv(1 To 2, 1 To 2)
    Dim npts As Long
    Dim k As Long
    ' Input Values:
    ' Geometry:
        Rswrl = ActiveSheet.Range("H18").Value / 2
        Lswrl = ActiveSheet.Range("H14").Value
        Ror = ActiveSheet.Range("H20").Value / 2
        Alpha = ActiveSheet.Range("H21").Value
        Ri = ActiveSheet.Range("H17").Value
    ' Properties:
        rho_liq = ActiveSheet.Range("H8").Value
        visc = ActiveSheet.Range("H9").Value
        rho_air = ActiveSheet.Range("H10").Value
        surfT_liquid = ActiveSheet.Range("H11").Value
    ' Preliminaries
        Pi = 3.14159265
        Ain = ActiveSheet.Range("H23").Value
        V1 = ActiveSheet.Range("H24").Value
    ' Swirl Chamber
        Omega = V1 * (Rswrl - Ri)
        Re = Omega / visc
        R = Rswrl
    '   Coefficients (constants - variable values must be added.
    '    Coefficient A1
            npts = 100
            b = 1#
            a = 0#
            h = (b - a) / npts
        
    '    First and Last Integration Points
            First = (2 * a - a ^ 2) - (2 * a - a ^ 2) ^ 2
            Last = (2 * b - b ^ 2) - (2 * b - b ^ 2) ^ 2
            sum = First
    '    Odd terms
            For k = 1 To npts - 1 Step 2
                psi = 2 * k * h - (k * h) * (k * h)
                sum = sum + 4 * (psi - psi * psi)
            Next k
    '    Even terms
            For k = 2 To npts - 1 Step 2
                psi = 2 * k * h - (k * h) * (k * h)
                sum = sum + 2 * (psi - psi * psi)
            Next k
     '   Add final value
            sum = sum + Last
            A1 = h / 3 * sum
            ActiveSheet.Range("R5") = A1
        
    '    Coefficient A2
            npts = 50
            b = 1#
            a = 0#
            h = (b - a) / npts
    '    First and Last Integration Points
            First = (2 * a - a ^ 2)
            Last = (2 * b - b ^ 2)
            sum = First
    '    Odd terms
            For k = 1 To npts - 1 Step 2
                psi = 2 * k * h - (k * h) * (k * h)
                sum = sum + 4 * psi
            Next k
    '    Even terms
            For k = 2 To npts - 1 Step 2
                psi = 2 * k * h - (k * h) * (k * h)
                sum = sum + 2 * psi
            Next k
     '   Add final value
            sum = sum + Last
            A2 = h / 3 * sum
            ActiveSheet.Range("R6") = A2
     
     '   Coefficient B1 and C2
            b = 1#
            a = 0#
            B1 = (2 - 2 * b) - (2 - 2 * a)
            ActiveSheet.Range("R7") = B1
            C2 = B1
            ActiveSheet.Range("R9") = C2
     
     '   Coefficient B2
            npts = 100
            b = 1#
            a = 0#
            h = (b - a) / npts
    '    First and Last Integration Points
            First = (2 * a - a ^ 2) ^ 2
            Last = (2 * b - b ^ 2) ^ 2
            sum = First
    '    Odd terms
            For k = 1 To npts - 1 Step 2
                psipsi = (2 * k * h - (k * h) * (k * h)) * (2 * k * h - (k * h) * (k * h))
                sum = sum + 4 * psipsi
            Next k
    '    Even terms
            For k = 2 To npts - 1 Step 2
                psipsi = (2 * k * h - (k * h) * (k * h)) * (2 * k * h - (k * h) * (k * h))
                sum = sum + 2 * psipsi
            Next k
     '   Add final value
            sum = sum + Last
            B2 = h / 3 * sum
            ActiveSheet.Range("R8") = B2
    'Set initial conditions
            W1 = 0
            Del1 = 0.05
    '    Swirl Chamber Coefficient Assembly
            C(1, 1) = Del1 * W1
            C(1, 2) = Del1 ^ 2
            C(2, 1) = ((A2 - B2) * Del1 * W1 ^ 2)
            C(2, 2) = ((A2 - 2 * B2 + 1) * Del1 ^ 2 * W1)
            D(1, 1) = B1 / A1
            D(2, 1) = C2 * W1
            ActiveSheet.Range("T5") = C(1, 1)
            ActiveSheet.Range("U5") = C(1, 2)
            ActiveSheet.Range("T6") = C(2, 1)
            ActiveSheet.Range("U6") = C(2, 2)
            ActiveSheet.Range("X5") = D(1, 1)
            ActiveSheet.Range("X6") = D(2, 1)
    '    Get F
            F = WorksheetFunction.MMult(WorksheetFunction.MInverse(C), D)
            
            
    ' Spin Chamber
    '    Coefficients
            A3 = A1
            B3 = A2
            B33 = B2
            C3 = B1
            B4 = C2
            A4 = A1
            ActiveSheet.Range("R10") = A3
            ActiveSheet.Range("R11") = B3
            ActiveSheet.Range("R12") = B33
            ActiveSheet.Range("R13") = C3
            ActiveSheet.Range("R14") = B4
            ActiveSheet.Range("R15") = A4
    
    ' Spray Orifice
            Omega = ActiveSheet.Range("H25")
            Re = ActiveSheet.Range("H26")
            R = Ror
        
    ' Solve Momentum Equations
    
            
    ' Zone 1
            
    End Sub
    Last edited by Paul_Hossler; 02-13-2019 at 05:18 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •