node_map_geo = [0,1,3,2], node_map_dof = [0,1,3,2] ) # Discretization domain = MGridDomain( lengths = (1.,1.,0.), shape = (1,1,0), adaptor = mgrid_adaptor ) right_dof = 2 tstepper = TS( tse = tseval, sdomain = domain, # conversion to list (square brackets) is only necessary for slicing of # single dofs, e.g "get_left_dofs()[0,1]" bcond_list = [ BCDof(var='u', dof = i, value = 0.) for i in domain.get_left_dofs()[:,0] ] + [ BCDof(var='u', dof = i, value = 0.) for i in [domain.get_left_dofs()[0,1]] ] + [ BCDof(var='u', dof = i, value = 0.002 ) for i in domain.get_right_dofs()[:,0] ], rtrace_list = [ RTraceGraph(name = 'Fi,right over u_right (iteration)' , var_y = 'F_int', idx_y = right_dof, var_x = 'U_k', idx_x = right_dof, record_on = 'update'), RTraceDomainField(name = 'Stress' , var = 'sig_app', idx = 0, record_on = 'update'), RTraceDomainField(name = 'Displacement' , var = 'u', idx = 0, record_on = 'update', warp = True), # RTraceDomainField(name = 'N0' , # var = 'N_mtx', idx = 0, # record_on = 'update')
# Put the tseval (time-stepper) into the spatial context of the # discretization and specify the response tracers to evaluate there. # right_dof = 2 ts = TS( tse=tseval, sdomain=line_domain, bcond_list=[ BCDof(var='u', dof=i, value=0.) for i in line_domain.get_left_dofs()[:, 0] ] + [ BCDof(var='u', dof=i, value=0.) for i in line_domain.get_left_dofs()[:, 1] ] + [ BCDof(var='u', dof=i, value=20) for i in line_domain.get_right_dofs()[:, 1] ], rtrace_list=[ RTraceGraph(name='Fi,right over u_right (iteration)', var_y='F_int', idx_y=right_dof, var_x='U_k', idx_x=right_dof, record_on='update'), # RTraceDomainField(name = 'Flux field' , # var = 'eps', idx = 0, # record_on = 'update'), RTraceDomainField(name='Temperature', var='u', idx=0, record_on='update'),
tseval = DOTSEval(fets_eval=fets_eval) # Discretization # line_domain = MGridDomain(lengths=(3.0, 1.0, 0.0), shape=(8, 8, 0), n_nodal_dofs=2) # Put the tseval (time-stepper) into the spatial context of the # discretization and specify the response tracers to evaluate there. # right_dof = 2 ts = TS( tse=tseval, sdomain=line_domain, bcond_list=[BCDof(var="u", dof=i, value=0.0) for i in line_domain.get_left_dofs()[:, 0]] + [BCDof(var="u", dof=i, value=0.0) for i in line_domain.get_left_dofs()[:, 1]] + [BCDof(var="u", dof=i, value=20) for i in line_domain.get_right_dofs()[:, 1]], rtrace_list=[ RTraceGraph( name="Fi,right over u_right (iteration)", var_y="F_int", idx_y=right_dof, var_x="U_k", idx_x=right_dof, record_on="update", ), # RTraceDomainField(name = 'Flux field' , # var = 'eps', idx = 0, # record_on = 'update'), RTraceDomainField(name="Temperature", var="u", idx=0, record_on="update"), # RTraceDomainField(name = 'N0' , # var = 'N_mtx', idx = 0,
shape = (6,3,0), adaptor = mgrid_adaptor) # Put the tseval (time-stepper) into the spatial context of the # discretization and specify the response tracers to evaluate there. # mf = MFnLineArray( ydata = [0.,0.0095,0.0105,0.011,0.012,0.02,0.03] ) ts = TS( tse = tseval, sdomain = domain, bcond_list = [ BCDof(var='u', dof = i, value = 0. ) for i in domain.get_left_dofs()[:,0] ]+ [ BCDof(var='u', dof = i, value = 0.) for i in [domain.get_bottom_left_dofs()[0,1]] ] + [ BCDof(var='u', dof = i, time_function = mf.get_value, value = 1. ) for i in domain.get_right_dofs()[:,0] ], rtrace_list = [ RTraceGraph(name = 'Fi,right over u_right (iteration)' , var_y = 'F_int', idx_y = domain.get_bottom_right_dofs()[0,0], var_x = 'U_k', idx_x = domain.get_bottom_right_dofs()[0,0]), # RTraceDomainField(name = 'Flux field' , # var = 'eps', idx = 0), RTraceDomainField(name = 'Deformation' , var = 'u', idx = 0, warp = True), RTraceDomainField(name = 'Damage' , var = 'omega', idx = 0, position = 'int_pnts', warp = True), # RTraceDomainField(name = 'Strain' , # var = 'eps_app', idx = 0),