Hi,
I am trying to solve a linear system. This is part of my code:
ASSEMBLAGE(
CARA_ELEM=caraMOD,
CHAM_MATER=materMOD,
CHARGE=constrM,
MATR_ASSE=(_F(MATRICE=CO('K_MAT'),
OPTION='RIGI_MECA'),
_F(MATRICE=CO('M_MAT'),
OPTION='MASS_MECA')),
MODELE=modelMOD,
NUME_DDL=CO('NUMEDDL'))
K_MAT = FACTORISER(
reuse=K_MAT,
MATR_ASSE=K_MAT,
METHODE="MUMPS",
STOP_SINGULIER="OUI",
RENUM="METIS",
NPREC=8,
ELIM_LAGR="NON"
)
load_SX = AFFE_CHAR_MECA(
FORCE_NODALE=tuple(
_F(NOEUD=str(riga[0]).strip(), FX=float(riga[4]), FY=float(riga[5]), FZ=float(riga[6]))
for riga in mpyForcX_signed
),
MODELE=modelMOD
)
vectX = CALC_VECT_ELEM(
OPTION='CHAR_MECA',
CHARGE=load_SX,
CHAM_MATER=materMOD,
CARA_ELEM=caraMOD
)
vect_SX = ASSE_VECTEUR(
VECT_ELEM=vectX,
NUME_DDL=NUMEDDL
)
dispX = RESOUDRE(
CHAM_NO=vect_SX,
MATR=K_MAT
)
The matrix mpyForcX_signed is a matrix of nodal forces, having these columns:
['NOEUD', 'COOR_X', 'COOR_Y', 'COOR_Z', 'DX', 'DY', 'DZ', 'DRX', 'DRY', 'DRZ'].
Can I skip the AFFE_CHAR_MECA and directly define the load vector that comes into play in the linear system?
Is there a more efficient way than the one I reported?
I would avoid to use MECA_STATIQUE or other methods, because I need to follow this way of "manual" resolution