Beispiel #1
0
print "wrt4 =", n1.PositionWRT(bdf2, 4)

# <codecell>

n1 = bdf2.nodes[1]
n1.xyz[1] = -7.5
print "repr  =", n1.reprFields()
print "raw   =", n1.rawFields()

#n1.xyz[1] = 100000000000.
print "repr2 =", n1.reprFields()
print n1

# <codecell>

print "mass = ", bdf2.Mass()

# <codecell>

eid100 = bdf2.elements[100]
print eid100
print "nodes =", eid100.nodes
print "--node0--\n", eid100.nodes[0]
print "--cd--\n", eid100.nodes[0].cd
print "cd.cid", eid100.nodes[0].cd.cid

print "area =", eid100.Area()
print "mass =", eid100.Mass()
print "--pid--\n", eid100.pid
print "pid.pid =", eid100.pid.pid
print "pid.Pid() =", eid100.Pid()
Beispiel #2
0
    def test_opt_2(self):
        """tests updating model based on DESVARs"""
        model = BDF(debug=False)
        model.add_grid(1, [0., 0., 0.])
        model.add_grid(2, [1., 0., 0.])
        model.add_grid(3, [1., 1., 0.])
        model.add_grid(4, [0., 1., 0.])
        eid = 1
        pid_pshell = 1
        nids = [1, 2, 3, 4]
        model.add_cquad4(eid, pid_pshell, nids)

        delta = 0.1
        #---------------------------------------------------
        model.add_pshell(pid_pshell, mid1=1, t=0.1)
        c2 = 0.5
        t2 = 1.0
        c0p = 0.1
        #      0.1 + 0.5*1.0 = 0.6
        tnew = c0p + c2 * (t2 + delta)
        model.add_desvar(2, 'T2', t2)
        desvars = [2] # desvar
        coeffs = [c2]
        prop_type = 'PSHELL'
        pname_fid = 'T'
        model.add_dvprel1(1, prop_type, pid_pshell, pname_fid, desvars, coeffs,
                          p_min=None, p_max=1e20,
                          c0=c0p, validate=True,
                          comment='')
        #---------------------------------------------------

        mid = 1
        E = 1.0
        G = None
        nu = 0.3
        model.add_mat1(mid, E, G, nu)

        c1 = 0.5
        e1 = 110.
        c0m = 100.
        model.add_desvar(1, 'E1', e1)
        mat_type = 'MAT1'
        mp_name = 'E'
        coeffs = [c1]
        desvars = [1]
        # 100 + 0.5 * 110 = 100 + 55 = 155
        enew = c0m + c1 * (e1 + delta)
        model.add_dvmrel1(2, mat_type, mid, mp_name, desvars, coeffs,
                          mp_min=None, mp_max=1e20,
                          c0=c0m, validate=True,
                          comment='')
        #---------------------------------------------------

        eid_conm2 = 2
        nid = 1
        mass = 0.1
        model.add_conm2(eid_conm2, nid, mass, cid=0, X=None, I=None, comment='')
        c3 = 1.0
        mass3 = 12.
        model.add_desvar(3, 'MASS', mass3)
        element_type = 'CONM2'
        cp_name = 'M'
        coeffs = [c3]
        desvars = [3]
        mass0 = 0.
        # ???
        mass_new = mass0 + c3 * (mass3 + delta)
        model.add_dvcrel1(3, element_type, eid_conm2, cp_name, desvars, coeffs, cp_min=None,
                         cp_max=1e20, c0=mass0,
                         validate=True, comment='')
        #---------------------------------------------------

        x14 = 37.
        model.add_desvar(4, 'X1', x14)
        element_type = 'CONM2'
        cp_name = 'X1'
        c4 = 1.
        x10 = 0.
        coeffs = [c4]
        desvars = [4]
        x1_new = x10 + c4 * (x14 + delta)
        model.add_dvcrel1(4, element_type, eid_conm2, cp_name, desvars, coeffs, cp_min=None,
                          cp_max=1e20, c0=x10,
                          validate=True, comment='')
        #---------------------------------------------------

        pid_pcomp = 2
        mids = [1]
        thicknesses = [1.]
        model.add_pcomp(pid_pcomp, mids, thicknesses, thetas=None, souts=None,
                        nsm=0., sb=0., ft=None,
                        tref=0., ge=0., lam=None,
                        z0=None, comment='')
        t5 = 5.
        model.add_desvar(5, 'T5', t5)
        prop_type = 'PCOMP'
        pname_fid = 'T1'
        desvars = [5] # desvar
        coeffs = [1.0]
        tpcomp_new = t5 + delta
        model.add_dvprel1(5, prop_type, pid_pcomp, pname_fid, desvars, coeffs,
                          p_min=None, p_max=1e20,
                          c0=0., validate=True,
                          comment='')
        #---------------------------------------------------

        model.validate()
        model.cross_reference()
        model.update_model_by_desvars()

        assert model.properties[pid_pshell].t == tnew, 't=%s tnew=%s' % (model.properties[pid_pshell].t, tnew)
        assert model.materials[mid].e == enew, 'E=%s enew=%s' % (model.materials[mid].e, enew)
        assert model.Mass(eid_conm2).mass == mass_new, 'mass=%s mass_new=%s' % (model.Mass(eid_conm2).mass, mass_new)
        assert model.Mass(eid_conm2).X[0] == x1_new, 'X1=%s x1_new=%s' % (model.Mass(eid_conm2).mass, x1_new)
        assert model.properties[pid_pcomp].thicknesses[0] == tpcomp_new, 't=%s tnew=%s' % (model.properties[pid_pcomp].thicknesses[0], tpcomp_new)
Beispiel #3
0
print("wrt4 =", n1.PositionWRT(bdf2, 4))

# <codecell>

n1 = bdf2.nodes[1]
n1.xyz[1] = -7.5
print("repr  =", n1.repr_fields())
print("raw   =", n1.raw_fields())

#n1.xyz[1] = 100000000000.
print("repr2 =", n1.repr_fields())
print(n1)

# <codecell>

print("mass = ", bdf2.Mass())

# <codecell>

eid100 = bdf2.elements[100]
print(eid100)
print("nodes =", eid100.nodes)
print("--node0--\n", eid100.nodes[0])
print("--cd--\n", eid100.nodes[0].cd)
print("cd.cid", eid100.nodes[0].cd.cid)

print("area =", eid100.Area())
print("mass =", eid100.Mass())
print("--pid--\n", eid100.pid)
print("pid.pid =", eid100.pid.pid)
print("pid.Pid() =", eid100.Pid())