! ============================================================
! M03 - Caza de errores
! ============================================================
/CLEAR,START                        ! no representa lo que afirma representar.
/FILNAME,m03_bug_hunt,1
/UNITS,SI
/PREP7

beam_l=1.0
beam_h=0.10
beam_b=0.05
mesh_h=0.025

ET,1,SOLID185                       ! ET,1,SOLID185 declara el tipo de elemento que se usara al mallar.
KEYOPT,1,2,0                        ! KEYOPT,1,2,0 fija la formulacion de flexion del solido (sin tratamiento especial).

MP,EX,1,210000                      ! MP,EX asigna el modulo de Young al material 1 en el banco de propiedades.
MP,PRXY,1,0.30
MP,EX,2,70E9
MP,PRXY,2,0.33

TYPE,1                              ! TYPE,1 activa el puntero de tipo para los elementos que se crearan a continuacion.
MAT,2                               ! MAT,2 activa el puntero de material (aqui el error: deberia ser MAT,1).

SECNUM,1                            ! SECNUM activa un numero de seccion; en solidos no sustituye a la geometria del volumen.

BLOCK,0,beam_l,0,beam_h,0,beam_b
ESIZE,mesh_h
VMESH,ALL

ESEL,S,CENT,X,0.4*beam_l,0.6*beam_l
CM,mid_elems,ELEM

! ERROR 4: ALLSEL destruye la seleccion antes de modificarla.
ALLSEL,ALL
EMODIF,ALL,MAT,2                    ! EMODIF,ALL,MAT,2 reasigna el material almacenado en los elementos seleccionados.

! ERROR 5: MAT,1 cambia el puntero activo, no los elementos ya creados.
MAT,1

*GET,n_elements,ELEM,0,COUNT
ESEL,S,MAT,,1
*GET,n_mat1,ELEM,0,COUNT
ALLSEL,ALL
ESEL,S,MAT,,2
*GET,n_mat2,ELEM,0,COUNT
ALLSEL,ALL

/COM,DIAGNOSE: units, active attributes, sections, selection scope, assignment
FINISH



