Marc & Structures
Índice
M05 Intermedio ~70 min (lectura + práctica)

Restricciones y cargas auditables

D, F, SF, DLIST, FLIST, NDNEXT, sistemas de referencia y auditoría

Entregable del módulo

05_loads_constraints.mac

Script APDL listo para ejecutar en MAPDL

Descargar .mac

Una malla no sabe por sí sola dónde está apoyada la estructura ni qué acción exterior debe soportar. En M05 convertiremos el diagrama físico en restricciones y cargas, y comprobaremos los valores que MAPDL ha guardado antes de resolver.

Tu misión

Empotrarás el extremo izquierdo de la viga, distribuirás una fuerza total de -1000 N sobre su extremo derecho y generarás un CSV que demuestre el alcance, los grados de libertad restringidos y la suma real de fuerzas nodales.

Pregunta guía: ¿cómo distingues una fuerza total de una fuerza aplicada a cada nodo?

Objetivos

Al completar M05 podrás demostrar que:

  • Traducir un diagrama de cuerpo libre a regiones, grados de libertad y componentes de fuerza.
  • Aplicar restricciones y cargas exclusivamente sobre componentes nombrados.
  • Explicar qué significa ALL en D,ALL,ALL,0.
  • Mantener una fuerza resultante constante cuando cambia el número de nodos.
  • Distinguir selección, sistema nodal, visualización y sistema de resultados.
  • Leer restricciones y fuerzas almacenadas mediante *GET.
  • Auditar las condiciones de contorno sin utilizar reacciones ni resultados.

Prerrequisitos y descargas

  • Haber completado M02 para trabajar con componentes y selecciones.
  • Haber completado M04: utilizaremos la primera malla aceptada, de 40 elementos.
  • Recordar que SOLID185 dispone de los desplazamientos UX, UY y UZ.

Predicción — El error que crece al refinar

La malla base tiene seis nodos en la punta. ¿Cuál sería la fuerza total si ejecutaras F,ALL,FY,-1000 con esos seis nodos seleccionados?

6 nodos × (−1000 N/nodo) = −6000 N

F recibe una carga nodal. MAPDL no interpreta que -1000 sea la resultante que deseas repartir. Esa intención debe aparecer explícitamente en el script.

Del diagrama físico a una prueba

Traducción de una viga empotrada y cargada a componentes, comandos y auditoría APDL
La cadena completa es física → región → comando → evidencia.
Decisión físicaRepresentación APDLPrueba
Extremo izquierdo inmóvilfixed_nodes + D6 nodos y 18 desplazamientos a cero.
Fuerza total verticaltip_nodes + F6 nodos cargados y suma FY=-1000 N.
Regiones distintasIntersección de componentesn_overlap=0.

Modelo mental — Las condiciones de contorno son parte del modelo

Un empotramiento ideal no es simplemente «donde la pieza toca una pared». Es la hipótesis matemática de que ciertos grados de libertad tienen un valor prescrito. Una fuerza nodal tampoco es una flecha decorativa: tiene magnitud, signo, dirección, punto de aplicación y sistema de referencia.

Una solución puede converger con condiciones equivocadas

El solver puede resolver sin dificultad una viga completamente bloqueada o una carga seis veces mayor que la pretendida. La convergencia algebraica no corrige el modelo físico.

Paso 1 — Recuperar la malla elegida en M04

Utilizamos mesh_h=0.05 m, porque fue la primera malla que cumplió el criterio de desplazamiento de M04. Sus divisiones son 20 × 2 × 1:

MSHAPE,0,3D
MSHKEY,1
! LESIZE sobre las tres familias de lineas
VMESH,ALL

*GET,n_nodes,NODE,0,COUNT
*GET,n_elements,ELEM,0,COUNT

El contrato de entrada de M05 exige 126 nodos y 40 elementos.

Paso 2 — Construir regiones antes de aplicar nada

SELTOL,select_tol
CSYS,0

NSEL,S,LOC,X,0
CM,fixed_nodes,NODE
*GET,n_fixed,NODE,0,COUNT
ALLSEL,ALL

NSEL,S,LOC,X,beam_l
CM,tip_nodes,NODE
*GET,n_tip,NODE,0,COUNT
ALLSEL,ALL

SELTOL,

Aplicar y seleccionar son responsabilidades distintas. Primero demostramos que cada región existe; después guardamos su significado en un componente. La prueba de intersección confirma que ningún nodo pertenece simultáneamente a los dos extremos.

Paso 3 — Entrar en /SOLU sin resolver

FINISH
/SOLU

M05 entra en el procesador de solución porque las cargas pertenecen a la definición del análisis. Sin embargo, no contiene ANTYPE ni SOLVE. Al terminar solo tendremos una base de datos preparada; no habrá reacciones, archivo de resultados ni tensiones.

Paso 4 — Aplicar el empotramiento

CMSEL,S,fixed_nodes
D,ALL,ALL,0
ALLSEL,ALL

La línea debe leerse con sus dos apariciones de ALL:

  • el primer ALL significa todos los nodos actualmente seleccionados;
  • el segundo significa todos los grados de libertad activos del elemento.

Para SOLID185 esos grados de libertad son UX, UY y UZ. No aparecen rotaciones porque el elemento sólido no las posee como grados de libertad nodales.

Paso 5 — Repartir una resultante

CMSEL,S,tip_nodes
*GET,n_tip,NODE,0,COUNT
force_per_node=tip_force/n_tip
F,ALL,FY,force_per_node
ALLSEL,ALL

Para seis nodos, force_per_node=-166.6667 N. El parámetro expresa una distinción fundamental:

entrada fisica:     tip_force
entrada para F:     force_per_node
comprobacion final: suma de todas las fuerzas FY almacenadas
La misma fuerza total repartida entre seis y quince nodos
Al refinar cambia la fuerza nodal; la resultante debe permanecer constante.

Patrón de seguridad

CMSEL,S,nombre_region
*GET,n_region,NODE,0,COUNT
! abortar o fallar si n_region=0
comando_de_carga
ALLSEL,ALL

Seleccionar, comprobar, aplicar y restaurar forman una sola unidad. Separar esos pasos por bloques largos de código hace más fácil que una selección incompleta se propague.

Sistemas de referencia — Cuatro conceptos distintos

EstadoQué controlaQué no controla
CSYSInterpretación de coordenadas y selecciones geométricas.No rota retroactivamente una fuerza nodal existente.
Sistema nodalDirecciones de UX/UY/UZ y FX/FY/FZ.No cambia solo porque se modifique la vista.
DSYSSistema utilizado para mostrar la geometría.No redefine cargas ni restricciones.
RSYSSistema de resultados en postprocesado.No actúa sobre las cargas aplicadas.

En el caso conductor todos los sistemas nodales permanecen cartesianos globales. Por eso FY representa inequívocamente la dirección global Y. Las cargas en sistemas nodales rotados requieren una decisión explícita, no un cambio cosmético de visualización.

F frente a SF

ComandoEntradaUso típico
FFuerza concentrada por nodo.Resultantes repartidas o acciones nodales.
SFCarga superficial sobre caras identificadas mediante nodos.Presión normal, convección u otras etiquetas compatibles.
! Ejemplo conceptual, no se anade al caso conductor
CMSEL,S,top_nodes
SF,ALL,PRES,pressure_value
SFLIST,ALL,PRES
ALLSEL,ALL

Una presión sigue la convención normal de la cara; no sustituye automáticamente a nuestra fuerza transversal de punta. M05 mantiene una única acción para que la auditoría sea inequívoca.

Paso 6 — Listar no es todavía automatizar

DLIST,ALL,ALL
FLIST,ALL,ALL

Los listados permiten leer nodos, etiquetas y valores en el archivo .out. Son esenciales para depurar, pero una revisión humana no basta para ejecutar muchos casos. Convertiremos las mismas preguntas en parámetros y condiciones de aprobación.

Paso 7 — Auditar los tres desplazamientos prescritos

CMSEL,S,fixed_nodes
node_id=0

*DO,j,1,n_fixed
  node_id=NDNEXT(node_id)
  *GET,dof_ux,NODE,node_id,D,UX
  *GET,dof_uy,NODE,node_id,D,UY
  *GET,dof_uz,NODE,node_id,D,UZ
  ! comprobar los tres valores
*ENDDO

NDNEXT devuelve el siguiente nodo seleccionado. Así recorremos los IDs reales sin suponer que son consecutivos. Cada uno de los seis nodos debe almacenar tres valores cero: n_constrained_dof=18.

Compatibilidad comprobada: MAPDL 2025 R2 puede devolver cero al consultar un desplazamiento no prescrito. Por eso el macro audita valores sobre fixed_nodes y utiliza el DLIST global para documentar que no existen restricciones fuera del componente. No intenta detectar ausencia mediante un valor centinela.

Paso 8 — Sumar las fuerzas realmente almacenadas

ALLSEL,ALL
node_id=0
*DO,j,1,n_nodes
  node_id=NDNEXT(node_id)
  *GET,node_fx,NODE,node_id,F,FX
  *GET,node_fy,NODE,node_id,F,FY
  *GET,node_fz,NODE,node_id,F,FZ
  force_sum_x=force_sum_x+node_fx
  force_sum_y=force_sum_y+node_fy
  force_sum_z=force_sum_z+node_fz
*ENDDO

Esta suma recorre todo el modelo, no solo tip_nodes. Por tanto puede detectar una fuerza accidental fuera de la región prevista o una componente inesperada.

load_error=ABS(force_sum_y-tip_force)/ABS(tip_force)

La auditoría exige:

n_force_nodes = n_tip
force_sum_x   = 0
force_sum_y   = -1000
force_sum_z   = 0
load_error    < 0.001

Contrato CSV

05_loads_constraints.mac genera:

case,mesh_h,n_nodes,n_elements,n_fixed,n_tip,n_constrained_dof,n_force_nodes,force_per_node,force_sum_x,force_sum_y,force_sum_z,target_force,load_error,passes

La fila base debe contener 126 nodos, 40 elementos, 18 restricciones, 6 nodos cargados y passes=1. En MAPDL 2025 R2 la suma validada es -1000 N con un error relativo del orden de 10⁻¹⁶.

Caza de errores

Ejecuta 05_bug_hunt.mac. No contiene un fallo del solver: contiene cinco traducciones lógicamente incorrectas.

  1. fixed_nodes se crea después de recuperar todos los nodos.
  2. El empotramiento termina aplicado a todo el modelo.
  3. NSEL,R intenta encontrar la punta dentro de una selección que ya no la contiene.
  4. La fuerza total se aplica completa a cada nodo de la punta.
  5. CSYS, DSYS y RSYS se utilizan como si rotaran el sistema nodal.

Reto verificable — Misma fuerza, más nodos

Completa 05_challenge.mac con mesh_h=0.025 m. No copies IDs del caso anterior y no resuelvas.

MagnitudCaso baseReto
Elementos40320
Nodos126615
Nodos por extremo615
DOF restringidos1845
Fuerza nodal−166.6667 N−66.6667 N
Suma FY−1000 N−1000 N

Antes de ejecutar, predice qué columnas deben cambiar y cuáles deben permanecer invariantes. Después explica por qué force_per_node no es una entrada física independiente.

Autoevaluación

  1. ¿Qué dos significados tiene ALL en D,ALL,ALL,0?
  2. ¿Por qué F,ALL,FY,tip_force no aplica una resultante total?
  3. ¿Qué cambia al ejecutar DSYS,1?
  4. ¿Por qué la auditoría de fuerzas recorre todos los nodos?
  5. ¿Qué evidencia todavía no puede existir antes de SOLVE?
> Ver respuestas breves
  1. Todos los nodos seleccionados y todos sus DOF activos.
  2. Porque F recibe el valor para cada nodo seleccionado.
  3. Solo el sistema de representación gráfica.
  4. Para detectar cargas accidentales fuera del componente previsto.
  5. Reacciones, equilibrio y resultados estructurales.

Evidencia de aprendizaje

  • m05_bc_audit.csv con passes=1.
  • Los extractos de DLIST y FLIST.
  • Una captura de los símbolos de restricciones y cargas.
  • El CSV del reto con la misma fuerza total y 15 nodos cargados.
  • El diagnóstico de los cinco defectos.

Checklist de salida

  • ☐ Mis componentes se crean antes de aplicar condiciones.
  • ☐ Compruebo que las regiones son no vacías y disjuntas.
  • ☐ Distingo fuerza total y fuerza por nodo.
  • ☐ Restauro la selección después de cada aplicación.
  • ☐ No confundo CSYS, sistema nodal, DSYS y RSYS.
  • ☐ Leo y sumo las cargas almacenadas en todo el modelo.
  • ☐ Mi script termina sin ANTYPE, SOLVE, /POST1 ni FSUM.

Trazabilidad técnica

La lección utiliza Basic Analysis Guide para la definición de condiciones de contorno y Command Reference 2024 R1 para D, F, SF, DLIST, FLIST, NDNEXT, *GET, CSYS, DSYS y RSYS.

Siguiente paso: M06

Ya hemos demostrado qué cargas y restricciones entrarán en el análisis. En M06 declararemos el análisis estático, resolveremos y compararemos la fuerza aplicada con las reacciones para cerrar el equilibrio global.

Demuestra que puedes hacerlo sin pistas

Necesitas al menos 80 % y acertar todas las comprobaciones críticas. Puedes repetirla sin límite; después de cada intento recibirás una ruta de repaso concreta.

6 comprobaciones

Competencia

Aplicar y auditar restricciones y cargas antes de resolver.

Evidencia esperada

18 DOF, 6 nodos cargados y suma FY=-1000 N en el caso base.

Guarda el dominio entre dispositivos

Introduce tu email y recibirás un enlace seguro. La cuenta solo guarda progreso, intentos y puntuaciones.

1.Una fuerza total de −1000 N se reparte entre 6 nodos. Introduce FY por nodo. Crítica
N
2.¿Cuántos grados de libertad restringidos exige el caso base? Crítica
DOF
3.¿Por qué se auditan DLIST y FLIST antes de SOLVE? Crítica
4.Introduce la suma FY esperada de las cargas aplicadas. Crítica
N
5.Refinas la cara cargada y aumenta el número de nodos. ¿Qué debe permanecer?
6.Una selección nodal para cargar queda vacía. ¿Qué conducta es segura? Crítica

Las respuestas se corrigen en el servidor; el navegador no puede desbloquear módulos.

El módulo se completa al superar la prueba de dominio. Las lecciones anteriores permanecen disponibles.

Descargar 05_loads_constraints.mac