コード例 #1
0
T_DUR = 5.0  # [SEC] DURATION OF TRACTION PULSE
EMOD = 2.2E9  # [PA] ELASTIC MODULUS (water)
RHO = 1000.0  # [KG/M3] DENSITY (water)

AREA = 1.0  # [M2] CROSS-SECTIONAL AREA
# SIG_YIELD = 20.0E9  # [PA] YIELD STRESS
SIG_ZERO = 100.0E3  # [PA] AMPLITUDE OF PULSE

# DISCRETIZATION
T_INC = 200  # NUMBER OF TIME INCREMENTS
X_INC = 200  # NUMBER OF SPATIAL INCREMENTS

# CALCULATED PARAMETERS
CEL = np.sqrt(EMOD/RHO)  # [M/SEC]
LWAVE = CEL*T_DUR  # [M]
sf.valprint("wavelength", LWAVE)
LEN_REAL = LWAVE*4  # [M] LENGTH OF REAL DOMAIN, 1/2 the modeled domain

LEN = LEN_REAL*2  # MODELED SPATIAL DOMAIN IS TWICE THAT OF THE REAL DOMAIN
T_NNODE = T_INC + 1  # NUMBER OF TIME NODES
X_NNODE = X_INC + 1  # NUMBER OF SPATIAL NODES
T_ELEM = T_TOT/T_INC  # SIZE OF EACH TIME STEP
X_ELEM = LEN/X_INC  # SIZE OF EACH SPATIAL STEP

# CREATE VECTORS
TVECT = np.linspace(0, T_TOT, T_NNODE)  # TIME VECTOR
XVECT = np.linspace(0, LEN, X_NNODE)  # SPACE VECTOR
TRAC_VECT = np.zeros(len(TVECT))  # EMPTY TRACTION VECTOR

# CREATE THE TRACTION VECTOR (PULSE)
for i in xrange(len(TVECT)):
コード例 #2
0
import numpy as np
import matplotlib.pyplot as plt
import sys
sys.path.append('/Users/Lampe/PyScripts/surgeAnalysis')
import SurgeFunc as sf

PSI = np.linspace(100, 3000)
# sf.matprint("PSI", PSI)

COMP = sf.CompBrine(100, PSI)
BULK = 1/COMP
DEN_GCC = sf.DBrine(100, PSI)  # OR SPECIFIC GRAVITY
# sf.matprint("SG", DEN_GCC)
SG = np.mean(DEN_GCC)
sf.valprint("Avg SG", SG)

DEN_SLUG = 1.94 * DEN_GCC
QUOT = (144.0)/(COMP*DEN_SLUG)
# sf.matprint("QUOT", QUOT)
SPEED = np.sqrt(QUOT)  # FT/SEC
sf.matprint("SPEED OF SOUND", SPEED)

PATH = '/Users/Lampe/Documents/PB/SurgeAnalysis/Results/'
FIG2, AX2 = plt.subplots(figsize=(12, 8))
AX2.plot(PSI, SPEED, 'o--')
AX2.grid(True)
AX2.set_xlabel("Pressure (psi)")
AX2.set_ylabel("Wave Speed (ft/sec)")
# AX2.legend(LBL, frameon=1, framealpha=1, loc=1)
FIG2_NAME = 'brine_speed.pdf'
コード例 #3
0
PRESS_US = 100 + 0.52*LENGTH  # PSI (PRESSURE AT EOT)
# CONSTANTS
GRAV = 32.2  # FT/SEC2

# CONDITIONS FOR FLUID PROPERTIES
FLUID = "Water"
# FLUID = "Brine"
FLUID_TEMP = 105.0  # DEG F
FLUID_PRES = PRESS_US  # PSIG
if FLUID == "Brine":
    SPG = sf.DBrine(FLUID_TEMP, FLUID_PRES)  # SPECIFIC GRAVITY OF FLUID
    FLUID_WEIGHT = SPG * 62.4  # LB/FT3
    FLUID_RHO = FLUID_WEIGHT / GRAV  # SLUG/FT3
else:
    FLUID_WEIGHT = sf.unit_weight(FLUID_TEMP, FLUID_PRES, FLUID)  # LB/FT3
    SPG = FLUID_WEIGHT / 62.4
    FLUID_RHO = FLUID_WEIGHT / GRAV  # SLUG/FT3

# PRODUCT PROPERTIES
PROD = "n-Propane"
PROD_TEMP = 105.0
PROD_PRES = PRESS_US  # PSIG
PROD_WEIGHT = sf.unit_weight(PROD_TEMP, PROD_PRES, PROD)  # LB/FT3
PROD_RHO = PROD_WEIGHT / GRAV  # SLUG/FT3

# DEFINE DISCRETIZATION
NELEM = 4

# CALCULATE WAVE SPEED IN SYSTEM
sf.valprint("FLUID GRAVITY", SPG)