Beispiel #1
0
import numpy as np

from IPython import embed
"""

Main entry point of the simulation.

"""

from src import Warp

endpts = [[[-0.0, -1.0, -0.1], [-0.0, 1.0, -0.1]],
          [[0.9, -1.0, -0.1], [0.9, 1.0, -0.1]],
          [[-1.0, 0.0, 0.0], [1.0, 0.0, 0.0]],
          [[-1.0, 0.2, 0.0], [1.0, 0.2, 0.0]]]

warp = Warp(endpts, cutoff=0.3)
warp.create_contacts()  #[(0,2), (1,2)])

DelT = MultiMeshFunction(warp.Tmmfs)

warp.assemble_thermal_system()
warp.apply_thermal_bcs(Constant(1.0))

solve(warp.AT, DelT.vector(), warp.RT)
for i, fib in enumerate(warp.fibrils):
    fib.T.vector()[:] = DelT.vector()[warp.Tmdof.part(i).dofs()]
warp.output_states("post/fibril_{0}_temp.pvd", 1)
# warp.output_contacts("post/contact_{2}_{0}_{1}.pvd")
embed()
                #                         "0.0", "0.0"),
                #                         sq = -(restL-width)/restL,
                #                         p=np.pi/width *4.0,
                #                         o= width/8.0,
                #                         A1=2.5*scale,
                #                         A2=1.25*scale))

        warp.wx.vector()[ warp.mdof.part(i).dofs() ] = fib.wx.vector()[:]
        warp.wv.vector()[ warp.mdof.part(i).dofs() ] = fib.wv.vector()[:]

warp.output_states("post/stockinette_{0}_"+str(0)+".pvd",1)
warp.output_surfaces("post/stockinettemesh_time_{0}_"+str(0)+".pvd",1)
initialize()                             
warp.output_states("post/stockinette_{0}_"+str(1)+".pvd",1)
warp.output_surfaces("post/stockinettemesh_time_{0}_"+str(1)+".pvd",1)


Tmax=4.0
NT = 100
h = Tmax/NT
warp.create_contacts()
warp.assemble_mass()
dirk = DIRK_Monolithic(1, h, warp, warp.assemble_system, warp.update, apply_BCs)
for t in xrange(NT):
    dirk.march()

    warp.output_states("post/stockinette_time_{0}_"+str(t+2)+".pvd",1)
    warp.output_surfaces("post/stockinettemesh_time_{0}_"+str(t+2)+".pvd",1)

embed()