示例#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
 def _get_fets_eval(self):
     return FETS2D4Q()
示例#4
0
 def _get_xd_concrete(self):
     return XDomainFEGrid(coord_min=(0, self.r_steel),
                          coord_max=(self.L_x, self.r_concrete),
                          shape=(self.n_x, 1),
                          integ_factor=1,
                          fets=FETS2D4Q())
示例#5
0
    Vis3DTensorField, Viz3DTensorField
from mayavi import mlab
from simulator.api import \
    TStepBC
from simulator.xdomain.xdomain_fe_grid import XDomainFEGrid

import numpy as np

from .mlab_decorators import decorate_figure

thickness = 1

xdomain = XDomainFEGrid(coord_max=(1, 1),
                        shape=(1, 1),
                        integ_factor=thickness,
                        fets=FETS2D4Q())

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

m = MATS3DDesmorat()
m = MATS2DElastic(E=1, nu=0)

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)
right_x = BCSlice(slice=xdomain.mesh[-1, :, -1, :],
                  var='u',
                  dims=[0],
                  value=0.0)

m = TStepBC(
 def _get_xd_steel(self):
     return XDomainFEGrid(coord_min=(0, 0),
                          coord_max=(dx, r_steel),
                          shape=(n_x, 1),
                          integ_factor=1,
                          fets=FETS2D4Q())
示例#7
0
    lut.scalar_lut_manager.scalar_bar.height = 0.8
    lut.scalar_lut_manager.scalar_bar.width = 0.17
    lut.scalar_lut_manager.scalar_bar.position = np.array([0.82, 0.1])


if __name__ == '__main__':

    mats2d = MATS2DScalarDamage(stiffness='algorithmic',
                                epsilon_0=0.03,
                                epsilon_f=1.9 * 1000)

    mats2d = MATS2DElastic()

    mats2d = MATS2DMplDamageEEQ(epsilon_0=0.03, epsilon_f=1.9 * 1000)

    fets2d = FETS2D4Q()
    dots = DOTSGrid(L_x=600, L_y=100, n_x=51, n_y=10, fets=fets2d, mats=mats2d)
    xdots = DOTSGrid(L_x=4, L_y=1, n_x=40, n_y=10, fets=fets2d, mats=mats2d)
    tloop = TimeLoop(tline=TLine(min=0, max=1, step=0.1), ts=dots)
    if False:
        tloop.bc_list = [
            BCSlice(slice=dots.mesh[0, :, 0, :], var='u', dims=[0, 1],
                    value=0),
            BCSlice(slice=dots.mesh[25, -1, :, -1],
                    var='u',
                    dims=[1],
                    value=-50),
            BCSlice(slice=dots.mesh[-1, :, -1, :],
                    var='u',
                    dims=[0, 1],
                    value=0)