Skip to content

Instantly share code, notes, and snippets.

@nicoguaro
nicoguaro / mohr2d.py
Last active July 28, 2022 11:12
Scripts to plot Mohr circles.
"""
Mohr circle in 2D.
@author: Nicolás Guarín-Zapata
@date: May 2020
"""
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'serif'
@nicoguaro
nicoguaro / example_layered_elastic.py
Created April 20, 2015 22:40
Dispersion curves for multilayer elastic materials using Trasfer Matrix Method and Bloch theorem.
# -*- coding: utf-8 -*-
"""
Wave propagation in layered elastic media.
@author: Nicolas Guarin-Zapata
@email: nguarin@purdue.edu
"""
import matplotlib.pyplot as plt
from matplotlib import rcParams
from layered_elastic import *
@nicoguaro
nicoguaro / bilinear_map.ipynb
Last active August 29, 2015 14:19
Bilinear map inversion (analytically)
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@nicoguaro
nicoguaro / hausdorff.py
Last active August 29, 2015 14:19
Calculate two-side Hausdorff distance between two sets using a brute force approach.
# -*- coding: utf-8 -*-
"""
Calculate two-side Hausdorff distance between two sets using a brute
force approach.
References
[1] http://en.wikipedia.org/wiki/Hausdorff_distance
@author: Nicolas Guarin-Zapata
"""
@nicoguaro
nicoguaro / parallel_proj.py
Last active August 29, 2015 14:20
Snippets relted to Paraview
"""
Set projection to parallel in Paraview
In Paraview 4.3 the default is perspective projection.
"""
camera = GetActiveCamera ()
camera. SetParallelProjection (True)
@nicoguaro
nicoguaro / eval_fun.py
Created May 11, 2015 21:48
Evaluate a function with variable number of parameters.
def eval_fun(f, **args):
""" (str, dict) -> object
f: Function as string.
args: dictionary with arbitrary variables.
Use arbitrary args in **args to eval general functions.
Examples:
>> eval_fun('x**2',x=5)
25
>> eval_fun('x*y', x=3, y=2)
6
@nicoguaro
nicoguaro / plot_mesh.py
Created May 11, 2015 22:00
Plot a (finite element) mesh formed by 8 node (serendipity) elements.
from numpy import array
from matplotlib import pyplot as plt
def plot_msh(pts, els, shw_pts=True, shw_els=True,
pts_text=False, els_text=False):
"""
Plot a mesh of 8 nodes (serendipity) elements.
Parameters
----------
@nicoguaro
nicoguaro / beam_eigs_FD.py
Last active November 29, 2016 21:30
Eigenvalues of beams and plates using Finite Differences.
# -*- coding: utf-8 -*-
"""
Eigenmodes of an Euler-Bernoulli beam with fixed ends [1]_. The stencil
used is a central finite difference of second order [2]_.
References
----------
.. [1] Euler–Bernoulli beam theory. (2015, June 2). In Wikipedia,
The Free Encyclopedia. Retrieved 20:11, June 3, 2015, from
@nicoguaro
nicoguaro / hull_plot.py
Created June 8, 2015 14:55
Plot the convex hull around a set of points as a shaded polygon.
# -*- coding: utf-8 -*-
"""
Plot the convex hull around a set of points as a
shaded polygon.
@author: Nicolas Guarin Zapata
@date: October 15, 2014
"""
import numpy as np
from scipy.spatial import ConvexHull
@nicoguaro
nicoguaro / FDM_dirichlet.py
Last active August 29, 2015 14:24
Method of Manufactured Solutions for FDM in 1D
from __future__ import division
import numpy as np
from numpy import cos, sin, exp, zeros
from numpy.linalg import solve, norm
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'serif'
rcParams['font.size'] = 16