'''
Created on 10. 11. 2015

@author: Kapsak
'''

from CDEM.basic import *
from CDEM.utils import *
import numpy as np
import tabulate as tbl
from CDEM.file_handler import get_outfile

dom = get_2D_quadrangle_domain(ni=3, nj=10, lx=100., ly=30., E=10000., nu=0.2, density=1., alfaC=50.*(25.**0.5),
                             thickness=1., stiffdef='isoparametric',
                             spring_stiffness_factor=100., domtype='CDEMStatic',
                             load=[((45., 55.), (25., 35.), [0., -50.])],
                             supports=[((-5., 5.), (-5., 5.), [1, 1]), ((95., 105.), (-5., 5.), [0, 1])])


dom.solve(timelog=get_outfile(['Dropbox', 'CDEM', '3point_bending_timing'], '3point_bending_Static_timing.txt'))
dom.plot()
예제 #2
0
@author: Kapsak

'''

from CDEM.basic import *
from CDEM.utils import *
import numpy as np
import tabulate as tbl
from CDEM.file_handler import get_outfile

dom = get_2D_quadrangle_domain(ni=3, nj=20, lx=2., ly=0.2, E=25000000000., nu=0.2, density=2500., alfaC=0.0,
                             thickness=0.2, stiffdef='isoparametric',
                             spring_stiffness_factor=10., domtype='CDEMDR',
                             load=[((0.99, 1.01), (0.19, 0.21), [0., -200000.])],
                             supports=[((-0.01, 0.01), (-0.01, 0.01), [1, 1]), ((1.99, 2.01), (-0.01, 0.01), [0, 1])])


headers = ['d_t', 'n_iter', 'density', 'w_end', 's_end', 'C_min', 'C_max', 'alfaC', 'stiffness_factor']
table = {key:[] for key in headers}

table['n_iter'] = [320000,640000,1280000]

for n_iter in table['n_iter']:
    for nd in dom.nodes:
        nd.v_velo = np.zeros(2)
        nd.v_disp = np.zeros(2)
    dom.solve(t_load=0.008,t_max=0.008,tol=1e-16, maxiter=n_iter, node_to_plot=119, savefile=get_outfile(['Dropbox', 'CDEM', '3point_bending_real','totaltime_008'], 'graph_niter=%.1f.png' % n_iter), 
              savetextfile=get_outfile(['Dropbox', 'CDEM', '3point_bending_real','totaltime_008'], 'textgraph_niter=%.1f.txt' % (n_iter)),show=False,
              output_freq=1000)
    dom.plot(magnitude=100., savefile=get_outfile(['Dropbox', 'CDEM', '3point_bending_real','totaltime_008'], 'deformed_niter=%.1f.png' % (n_iter)), show=False)
예제 #3
0
from CDEM.file_handler import get_outfile
from CDEM import *

# dom = get_2D_quadrangle_domain(ni=3, nj=10, lx=100., ly=30., E=10000., nu=0.2, density=1.,
#                              thickness=1., stiffdef='isoparametric',
#                              spring_stiffness_factor=10., domtype='CDEMStatic',
#                              load=[((49, 51.), (29., 31.), [0., -50.])],
#                              supports=[((-1., 1.), (-1., 1.), [1, 1]), ((99., 101.), (-1., 1.), [0, 1])])

dom = get_2D_quadrangle_domain(ni=3, nj=20, lx=2., ly=0.2, E=25000000000., nu=0.2, density=2500., alfaC=0.0,
                             thickness=0.2, stiffdef='isoparametric',
                             spring_stiffness_factor=10., domtype='CDEMDR',
                             load=[((0.99, 1.01), (0.19, 0.21), [0., -200000.])],
                             supports=[((-0.01, 0.01), (-0.01, 0.01), [1, 1]), ((1.99, 2.01), (-0.01, 0.01), [0, 1])])

f = open(get_outfile(['Dropbox', 'CDEM', 'OOFEM_input'], '3point_bending_real.in'), 'w')

for el in dom.elements:
    el.calc_normal_vectors()
springs = []
nvects = []
for i, node in enumerate(dom.nodes):
    for nb, nv in zip(node.neighbors, node.n_vects):
        if nb != 0:
            couple = (min(i + 1, nb), max(i + 1, nb))
            if couple not in springs:
                springs.append(couple)
                nvects.append(nv)

f.write('ndofman %d nelem %d\n' % (len(dom.nodes), len(dom.elements) + 2 * len(springs)))
for i, node in enumerate(dom.nodes):