Abaqus a-t-il une raison de donner ce message d'erreur «Référence de mémoire illégale (signal11)» chaque fois que le nombre de statev est supérieur à 15?

0

Je travaille beaucoup avec Abaqus CAE / Standard!

Chaque fois que j'ai essayé de placer un nombre supérieur à 15 sous le mot clé * Depvar (et qu'il peut exister des sous-routines (UMAT ou USDFLD) sans codage , uniquement les paramètres de base fournis par Abaqus User Subroutine Guide), le travail toujours, sans faute, avorte immédiatement et me donne l'erreur: "Référence de mémoire illégale (signal 11)".

Gardez à l'esprit qu'il n'y a pas de code réel dans le sous-programme utilisateur où il pourrait y avoir une erreur; J'ai essayé cela juste comme une curiosité, et juste comme prévu, dès que le nombre de variable dépendante est supérieur à 15, ça avorte tout de suite !!!

Quelle est la cause de cela?

MousumiG
la source
Je suppose que c'est simplement codé de cette façon, 15 variables d'état semblent plus que suffisantes pour n'importe quel modèle matériel.
user190081
Bonjour @ utilisateur190081, je modélise le transport de l'agent de soutènement dans Abaqus Standard et, au lieu de la méthode CFD-DEM, j'utilise la méthode du continuum dans laquelle les variables d'état sont la concentration de l'agent de soutènement, la vitesse de tassement, la vitesse de soutènement, etc. à différents points d'intégration de matériaux ! Donc, j'ai besoin de beaucoup de variables d'état dans mon cas, c'est pourquoi je suis préoccupé par cela!
MousumiG

Réponses:

1

Ils utilisent probablement un nibble (un demi octet ou 4 bits) pour représenter le compteur qui représente cette valeur. La plus grande valeur non signée qu'un quartet peut représenter est 15, avec une plage de 0 à 15.

Il y a probablement une logique en place pour générer l'erreur que vous avez mentionnée chaque fois que vous essayez d'utiliser une valeur dépassant cette plage. Une simple if(0xF0 & num_states)vérification suffit pour détecter une valeur supérieure à 15.

Et bien que je ne puisse pas commenter le raisonnement utilisé par les développeurs Abaqus, les amuse-gueules sont généralement utilisés lorsque:

  • La mémoire disponible est une ressource limitante, et ils essaient de compresser les choses autant que possible.
  • "Personne n'aura jamais besoin de plus de 15 d'entre eux!" est déclaré
GlenH7
la source
Merci Glen d'avoir corrigé mes erreurs grammaticales! Donc, cela peut paraître stupide de ma part, alors je m'excuse d'avance !!!! Comment réparer un «petit bout»? En passant, les variables d'état sont toutes les variables que l'utilisateur définit au point d'intégration dans les matériaux. Donc, ils peuvent être logiques, entiers, ou double précision ou même des caractères!
MousumiG
C'est juste que je ne vois aucune raison pour qu'il n'y ait pas plus de 15 variables d'état; c'est tout! :)
MousumiG
selon toute probabilité, vous ne pourrez pas le réparer car ce sera une «fonctionnalité» codée en dur. À première vue, c'est un héritage qui n'a jamais été mis à jour
DrBwts
0

99,9% du signal de temps 11 signifie qu'il y a un bogue dans le programme. Donc, dans ce cas, vous avez un bogue qui n'est déclenché que lorsque cette variable est supérieure à 15. Restez sous 15 ans ou demandez au vendeur de le réparer.

Daniel Kiracofe
la source