Skip to content

Instantly share code, notes, and snippets.

Tristan Hearn thearn

Block or report user

Report or block thearn

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View SIRvec.py
import numpy as np
import openmdao.api as om
class SIRvec(om.ExplicitComponent):
"""Basic epidemiological infection model
S (suceptible), I (infected), R (recovered).
"""
def initialize(self):
self.options.declare('num_nodes', types=int)
@thearn
thearn / vector.py
Created Apr 21, 2020
vectorized comp
View vector.py
import numpy as np
import openmdao.api as om
class SIRvec(om.ExplicitComponent):
"""Basic epidemiological infection model
S (suceptible), I (infected), R (recovered).
"""
def initialize(self):
self.options.declare('num_nodes', types=int)
View input.txt
4 21 894
419 794 987
424 797 125
651 305 558
655 631 963
2 628 436
736 50 363
657 707 408
252 705 98
532 173 878
View ad_test.py
from openmdao.core.explicitcomponent import ExplicitComponent
from openmdao.api import Problem, Group, ExecComp, IndepVarComp
from openmdao.devtools.generate_derivative import GenerateDerivative
class Paraboloid(ExplicitComponent):
"""
Evaluates the equation f(x,y) = (x-3)^2 + xy + (y+4)^2 - 3.
"""
View rkmd.py
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fmin, fminbound, fmin_bfgs
from scipy.misc import ascent
import pywt
from scipy.stats import kurtosis
true_image = ascent()
sigma = 25.0
test_image = true_image + sigma * np.random.randn(*true_image.shape)
View gradient.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View petsc_test.py
from petsc4py import PETSc
rank = PETSc.COMM_WORLD.getRank()
num_ranks = PETSc.COMM_WORLD.getSize()
x = PETSc.Vec().createMPI(4) # VecCreateMPI: Creates a parallel vector. size=4
x.setValues([0,1,2,3], [10,20,30,40]) # VecSetValues: Inserts or adds values into certain locations of a vector. x[0]=10, x[1]=20, x[2]=30, x[3]=40
print ('Rank',rank,'has this portion of the MPI vector:', x.getArray() ) # VecGetArray: Returns a pointer to a contiguous array that contains this processor's portion of the vector data.
vec_sum = x.sum() # VecSum: Computes the sum of all the components of a vector. 10+20+30+40=100
View chem_eq_ad.py
import numpy as np
from openmdao.core.component import Component
from pycycle.constants import R_UNIVERSAL_ENG, MIN_VALID_CONCENTRATION
from openmdao.core.options import OptionsDictionary
from openmdao.components.indep_var_comp import IndepVarComp
from ad import adnumber
@thearn
thearn / implicit.py
Created Feb 8, 2016
working example
View implicit.py
from openmdao.api import *
import numpy as np
"""
Test model:
-------------
Find value of state variable "x" such that the line 2*x + 1 has a specific
value of 'y1'
"""
View gist:321448632e23396819e2
Connections for inlet.flow_in:
------------------------------
.foo -> {unconnected}
fc.subgroup.fs.exit_static.flow_static.Fl_O:stat:V (fc.Fl_O:stat:V) [ft/s] -> .Fl_I:stat:V (inlet.Fl_I:stat:V) [ft/s]
fc.subgroup.fs.exit_static.flow_static.Fl_O:stat:W (fc.Fl_O:stat:W) [lbm/s] -> .Fl_I:stat:W (inlet.Fl_I:stat:W) [lbm/s]
fc.subgroup.fs.totals.flow.Fl_O:tot:Cp (fc.Fl_O:tot:Cp) [Btu/(lbm*degR)] -> .Fl_I:tot:Cp (inlet.Fl_I:tot:Cp) [Btu/(lbm*degR)]
fc.subgroup.fs.totals.flow.Fl_O:tot:Cv (fc.Fl_O:tot:Cv) [Btu/(lbm*degR)] -> .Fl_I:tot:Cv (inlet.Fl_I:tot:Cv) [Btu/(lbm*degR)]
fc.subgroup.fs.totals.flow.Fl_O:tot:P (fc.Fl_O:tot:P) [lbf/inch**2] -> .Fl_I:tot:P (inlet.Fl_I:tot:P) [lbf/inch**2]
fc.subgroup.fs.totals.flow.Fl_O:tot:S (fc.Fl_O:tot:S) [Btu/(lbm*degR)] -> .Fl_I:tot:S (inlet.Fl_I:tot:S) [Btu/(lbm*degR)]
fc.subgroup.fs.totals.flow.Fl_O:tot:T (fc.Fl_O:tot:T) [degR] -> .Fl_I:tot:T (inlet.Fl_I:tot:T) [degR]
You can’t perform that action at this time.