示例#1
0
 def _get_xd_steel(self):
     dx = self.geometry.L_x
     r_steel = self.cross_section.R_f
     return XDomainFEGridAxiSym(coord_min=(0, 0),
                                coord_max=(dx, r_steel),
                                shape=(self.n_x, self.n_y_steel),
                                integ_factor=2 * np.pi,
                                fets=FETS2D4Q())
示例#2
0
 def _get_xd_concrete(self):
     r_steel = self.cross_section.R_f
     print('len', self.geometry.L_x)
     dx = self.geometry.L_x
     r_concrete = self.cross_section.R_m
     return XDomainFEGridAxiSym(coord_min=(0, r_steel),
                                coord_max=(dx, r_concrete),
                                shape=(self.n_x, self.n_y_concrete),
                                integ_factor=2 * np.pi,
                                fets=FETS2D4Q())
示例#3
0
    Vis3DTensorField, Viz3DTensorField
from mayavi import mlab
from simulator.api import \
    TStepBC
from simulator.xdomain.xdomain_fe_grid_axisym import XDomainFEGridAxiSym

import numpy as np

from .mlab_decorators import decorate_figure

inner_radius = 1
outer_radius = 2

xdomain = XDomainFEGridAxiSym(coord_min=(0, inner_radius),
                              coord_max=(1, outer_radius),
                              shape=(10, 10),
                              integ_factor=2 * np.pi,
                              fets=FETS2D4Q())

print(xdomain.B1_Eimabc.shape)
print(xdomain.B0_Eimabc.shape)

m = MATS3DDesmorat()
m = MATS3DElastic(E=1, nu=0.3)

left_y = BCSlice(slice=xdomain.mesh[:, 0, :, 0], var='u', dims=[1], value=0)
left_x = BCSlice(slice=xdomain.mesh[0, :, 0, :], var='u', dims=[0], value=-1.0)
right_x = BCSlice(slice=xdomain.mesh[-1, :, -1, :],
                  var='u',
                  dims=[0],
                  value=0.0)
from .mlab_decorators import decorate_figure

n_x_e = 20
n_y_e = 30
L_x = 20.0
R_in = 1.0
R_out = 5.0

E_c = 28e+3
f_c_t = 5.0
eps_0 = f_c_t / E_c
u_0 = L_x * eps_0
print('u_9', u_0)

xd1 = XDomainFEGridAxiSym(coord_min=(0, 0),
                          coord_max=(L_x, R_in),
                          shape=(n_x_e, 2),
                          fets=FETS2D4Q())
xd2 = XDomainFEGridAxiSym(coord_min=(0, R_in),
                          coord_max=(L_x, R_out),
                          shape=(n_x_e, n_y_e),
                          integ_factor=2 * np.pi,
                          fets=FETS2D4Q())
m1 = MATS3DElastic(E=280000, nu=0.32)
m2 = MATS3DElastic(E=28000, nu=0.3)

xd12 = XDomainFEInterface(I=xd1.mesh.I[:, -1],
                          J=xd2.mesh.I[:, 0],
                          fets=FETS1D52ULRH())

left_y = BCSlice(slice=xd1.mesh[0, 0, 0, 0], var='u', dims=[1], value=0)
left_x = BCSlice(slice=xd1.mesh[0, :, 0, :], var='u', dims=[0], value=-0)
示例#5
0
n_e_ds = 12
phi = 5
L_b = phi * ds
n_b = phi * n_e_ds
L_e = ds / n_e_ds
n_ex = 8
L_e_ex = n_ex * L_e
n_y_concrete = 8
n_y_steel = 1
L_x = 2 * L_e_ex + L_b
n_e = 2 * n_ex + n_b
R_steel = ds / 2
R_concrete = 10 * ds
xd_steel_1 = XDomainFEGridAxiSym(coord_min=(0, 0),
                                 coord_max=(L_x, R_steel),
                                 shape=(n_e, n_y_steel),
                                 integ_factor=2 * np.pi,
                                 fets=FETS2D4Q())
print(np.max(xd_steel_1.x_Eia[..., 0]))
xd_concrete_2 = XDomainFEGridAxiSym(coord_min=(0, R_steel),
                                    coord_max=(L_x, R_concrete),
                                    shape=(n_e, n_y_concrete),
                                    integ_factor=2 * np.pi,
                                    fets=FETS2D4Q())

E_c = 28000 * 1
E_s = 210000 * 1
# m_steel = MATS3DDesmorat(E_1=210000, nu=0.3, tau_bar=2000.0)
# m_concrete = MATS3DDesmorat(tau_bar=2.0)
m_steel = MATS3DElastic(E=E_s, nu=0.2)
m_concrete = MATS3DElastic(E=E_c, nu=0.3)