def dw_dot(out, mat, val_qp, bfve, bfsc, geo, fmode): nel, nqp, dim, nc = mat.shape nen = bfve.shape[3] status1 = 0 if fmode in [0, 1, 3]: aux = nm.zeros((nel, nqp, dim * nen, nc), dtype=nm.float64) status1 = terms.actBfT(aux, bfve, mat) if fmode == 0: status2 = terms.mulAB_integrate(out, aux, val_qp, geo, 'AB') if fmode == 1: status2 = terms.mulAB_integrate(out, aux, bfsc, geo, 'AB') if fmode == 2: aux = (bfsc * dot_sequences(mat, val_qp, mode='ATB')).transpose( (0, 1, 3, 2)) status2 = geo.integrate(out, nm.ascontiguousarray(aux)) if fmode == 3: status2 = terms.mulAB_integrate(out, bfsc, aux, geo, 'ATBT') return status1 and status2
def dw_dot(out, mat, val_qp, bfve, bfsc, geo, fmode): nel, nqp, dim, nc = mat.shape nen = bfve.shape[2] status1 = 0 if fmode in [0, 1, 3]: aux = nm.zeros((nel, nqp, dim * nen, nc), dtype=nm.float64) status1 = terms.actBfT(aux, bfve, mat) if fmode == 0: status2 = terms.mulAB_integrate(out, aux, val_qp, geo, 'AB') if fmode == 1: status2 = terms.mulAB_integrate(out, aux, bfsc, geo, 'AB') if fmode == 2: aux = (bfsc * dot_sequences(mat, val_qp, mode='ATB')).transpose((0,1,3,2)) status2 = geo.integrate(out, nm.ascontiguousarray(aux)) if fmode == 3: status2 = terms.mulAB_integrate(out, bfsc, aux, geo, 'ATBT') return status1 and status2