import numpy as np import laminate_analysis import materials import cantilevers import matplotlib.pyplot as plt from scipy.interpolate import InterpolatedUnivariateSpline from gaussian import Gaussian from laminate_fem import LaminateFEM from connectivity import Connectivity import scipy.sparse as sparse """ """ material = materials.PiezoMumpsMaterial() cantilever = cantilevers.InitialCantileverFixedTip() la = laminate_analysis.LaminateAnalysis(cantilever, material, True) fem = LaminateFEM(cantilever, material, True, 0.01) connectivity = Connectivity(fem.mesh) gaussian = Gaussian(fem, fem.cantilever, 0.1) index = 100 # the index of the pseudo-density to vary. ps = np.arange(0.02, 1, 0.01) g3sums = np.empty_like(ps) netas = np.empty_like(ps) dg3sums = np.empty_like(ps) dnetas = np.empty_like(ps) print('Number of points: %d' % len(ps)) pnew = la.fem.density.copy() mdofmat = la.mdofmat tdofmat = la.tdofmat
import numpy as np import laminate_analysis import materials import cantilevers from symmetry import Symmetry from density_filter import DensityFilter import matplotlib.pyplot as plt from scipy.interpolate import InterpolatedUnivariateSpline """The symmetry operator appears to be working.""" material = materials.PiezoMumpsMaterial() cantilever = cantilevers.InitialCantileverFixedTip() la = laminate_analysis.LaminateAnalysis(cantilever, material, 0.1, False) sym = Symmetry(la.fem) density_filter = DensityFilter(la.fem, 2.0) index = 470 # the index of the design variables to vary. xs = np.arange(0.02, 1, 0.01) netas = np.empty_like(xs) ks = np.empty_like(xs) lams = np.empty_like(xs) dnetas = np.empty_like(xs) dks = np.empty_like(xs) dfs = np.empty_like(xs) print('Number of points: %d' % len(xs)) for i, p in enumerate(xs): xnew = sym.initial(la.fem.density.copy()) xnew[index] = p