Beispiel #1
0
def Capsule_Quadratic(radius=1.0,straight_length_factor=1,E_per_segment=1):
    """Length of straight is length of arc multiplied by straight_length_factor
    Number of elements in arc is E_per_segment
    Number of elements in straight is E_per_segment*straight_length_factor
    NOTE: straight_length_factor must be integer > 0
    """
    capsule = Capsule_Exact(radius,straight_length_factor,E_per_segment)
    return Lagrange.Mesh([Lagrange.Domain([Lagrange.QuadraticElement(e.P) for e in capsule.eList])])
Beispiel #2
0
def Cylinder_Quadratic(num_elements,radius=1.0):
    theta = np.linspace(2*np.pi,0,num=2*num_elements+1)
    x,y=np.vstack([radius*np.cos(theta),radius*np.sin(theta)])
    elements = [Lagrange.QuadraticElement(np.vstack([x[2*i:2*i+3],y[2*i:2*i+3]])) for i in xrange(num_elements)]
    cylinder = Lagrange.Domain(elements)
    return Lagrange.Mesh([cylinder])
Beispiel #3
0
def CapsAndCyl_Quadratic(elements_per_semicircular_arc=1,elements_per_line=1):
    mesh = CapsAndCyl_Exact(elements_per_semicircular_arc,elements_per_line)
    return Lagrange.Mesh([Lagrange.Domain([Lagrange.QuadraticElement(e.P) for e in d.eList]) for d in mesh.dList])
Beispiel #4
0
def FiveCylinders_Quadratic(num_elements,a=1.0,r=3.0): 
    mesh = FiveCylinders_Exact(num_elements,a,r)
    return Lagrange.Mesh([Lagrange.Domain([Lagrange.QuadraticElement(e.P) for e in d.eList]) for d in mesh.dList])