Bookmark this page for easy reference to all the resources you need to learn, find examples or solutions, interact with others, or receive support for LS-DYNA.
I want to access the user assigned element numbers from the input card deck from within a user-defined material. I can access the LS-Dyna internally assigned element numbers via the idele variable but I do not know how this internal element number maps to the user assigned element number.
Can you please instruct me how to access the user assigned element numbers from within the user-defined material? What array or variable to I need to access?
I tried using the "Ansys Assistant" but it did not produce any solutions to the above problem.
Thanks!
Dear Anyone,
I know it is an odd request but it appears that LSPP is no longer accessible and I'm looking for another version of it. Is there a way a non-client of ANSYS can get access to LS-PrePost?
Thank you,
George
I am simulating the impact of discrete element (DEM) particles on a wire mesh structure in LS-DYNA. The particles are generated using *DEFINE_DE_INJECTION. The structure consists of a frame modeled with solid elements (*MAT_ELASTIC) and wires modeled with beam elements (*MAT_PLASTIC_KINEMATIC). The keyword file was initially generated using ANSYS LS-DYNA (where meshing was also done) and finalized in LS-PrePost.
For structural contacts, I defined *CONTACT_AUTOMATIC_GENERAL and *CONTACT_AUTOMATIC_NODES_TO_SURFACE. For the DEM-to-structure interaction, I implemented *DEFINE_DE_TO_BEAM_COUPLING and *DEFINE_DE_TO_SURFACE_COUPLING.
However, during the simulation, the DEM particles completely penetrate both the wires and the frame as if the structure does not exist. Are there any missing keywords or specific parameter adjustments required to properly enforce the physical interaction between the DEM particles and the structure?
Hi,
I wanted to ask about the contact with the rigid wall. I think I’m getting a bit confused about it. I have SPH particles in contact with the rigid wall, and based on my searches, I think I should change RWPNAL.
The problem is that, despite having friction on the rigid wall, the particles slide along the wall. In this case, RWPNAL was set to 1.
I changed RWPNAL to -1, and now the particles pass through the rigid wall. I chose -1 based on the following description:
"The optional penalty method for rigidwalls, invoked by setting RWPNAL=-1.0 in *CONTROL_CONTACT , works identical to the contact-impact interface treatment. When a deformable or a rigid node is found to be penetrating a rigidwall, the penetrated distance along the rigidwall normal is computed and is resisted by applying a force that is proportional to the computed distance and multiplied with a stiffness factor that is based on the material of the impacting node and the dimensions of the element it is attached to. The penalty approach conserves both energy and momentum".
How should I resolve this issue? I want the SPH particles to interact properly with the rigid wall.
Thank you,
I am using 3D tet remeshing in a FEM application and I can only get a uniform element size in the entire body. I have tried to change "MM" in keyword *CONTROL_REMESHING but it does not matter what value I use I still get a uniform element size. Since I need to use small elements on the surface to get the contacts to work I get a very large number of elements in the body. Is there any way to get the tet element size to grow from the surfaces?
Hi all,
I am running a repeated-impact simulation chain and I cannot get the
full-deck restart to work in R14.1.1. I would appreciate any insight into
whether thermal-state restore on full restart is expected to work for a
coupled S-ALE multi-material model with a phase-change thermal material,
and whether the boundary-condition crash described below is a known issue.
SOLVER / ENVIRONMENT
- ANSYS 2025 R2 (v252): lsdyna_mpp_dp_msmpi.exe and lsdyna_mpp_dp_impi.exe
- Both report: LS-DYNA MPP double precision, Revision R14.1.1-16-gfadfb49b17
(MS MPI V10.0 and Intel MPI builds respectively)
- Windows 10/11 x64, 16 MPI processes, double precision
- Both the initial run and the restart use the same revision and the same
number of processes, so the d3full version/rank-count requirements are met.
MODEL (initial run, "Impact 01")
- 2D axisymmetric S-ALE, coupled structural-thermal:
*SECTION_ALE2D (ALEFORM=11, ELFORM=14)
*ALE_STRUCTURED_MESH + *ALE_STRUCTURED_MESH_CONTROL_POINTS
*ALE_STRUCTURED_MESH_VOLUME_FILLING (ALL / BOXCOR / ELLIPSOID with
velocity vector via VID)
*ALE_MULTI-MATERIAL_GROUP (3 AMMGs)
- Materials:
*MAT_JOHNSON_COOK (MAT_015) + *EOS_GRUNEISEN for the HSLA-100 target
*MAT_ELASTIC_PLASTIC_HYDRO (MAT_010) + *EOS_GRUNEISEN for the WC
projectile (2220 m/s)
*MAT_ALE_VACUUM for the surrounding void
- Thermal:
*MAT_THERMAL_ISOTROPIC_PHASE_CHANGE for the target (T09)
*MAT_THERMAL_ISOTROPIC for projectile and vacuum
*CONTROL_SOLUTION SOLN=2 (coupled)
*CONTROL_THERMAL_SOLVER SOLVER=12, EQHEAT=1, FWORK=0.9
*CONTROL_THERMAL_TIMESTEP / *CONTROL_THERMAL_NONLINEAR
*INITIAL_TEMPERATURE_SET (NSID=0, 296.15 K)
- Boundary conditions via *BOUNDARY_SALE_MESH_FACE: SYM on the axis face
(negx), NONREFL on the posx/negy/posy faces.
- *DATABASE_BINARY_D3DUMP writes d3dump01/d3full01 at t = 5.3e-5 s.
- *CONTROL_MPP_DECOMPOSITION_DISTRIBUTE_ALE_ELEMENTS is used.
The initial run terminates NORMALLY at t = 5.3e-5 s (4845 cycles) with a
physically sound thermal state (final temperature norm ~1.0e5, nonlinear
thermal residual norms ~1e4-1e6). d3dump01 and d3full01.0000-0015 are
written as expected.
RESTART RUN ("Impact 02")
Full-deck restart deck = full model + *STRESS_INITIALIZATION (PIDO=10,
PIDN=0, the S-ALE mesh part) + a new *ALE_STRUCTURED_MESH_VOLUME_FILLING
(ELLIPSOID, with VID) introducing a second projectile. Executed with:
mpiexec -np 16 lsdyna_mpp_dp_xxxmpi.exe i=restart.k n=d3full01 memory=200m
The restart reads the dump correctly (problem time 5.3000e-5, cycle 4845,
"material 10 in restart file initializes"), but then fails at the very
first cycle in TWO distinct ways:
FAILURE 1 - thermal solver divergence, Error 40359 (SOL+359):
"the minimum time step has been reached and the maximum temperature
change is greater than specified"
solution time 5.3000e-5, node 6234 (inside the previously impacted,
hot region of the target), temperature change 5.2976e+12.
The first thermal solve after restart has an initial residual norm of
7.4432e+22, i.e. 18 orders of magnitude larger than any thermal solve in
the healthy initial run (~1e4-1e6). During the Newton iterations the
trial temperatures drop to ~112 K in material that ended the initial run
hot. The residual is bit-identical whether or not the restart deck
contains *INITIAL_TEMPERATURE_SET, so the initial-temperature card is not
the cause - the thermal state after the restore appears inconsistent/
corrupted regardless of the deck.
FAILURE 2 - access violation in the 2D ALE non-reflecting boundary:
When the NONREFL *BOUNDARY_SALE_MESH_FACE card is active, the run instead
crashes at the first mechanical cycle with
forrtl: severe (157): Program Exception - access violation
NRBCALE2D (dyn60.F, line 36922) <- APPLY_LOADS <- FEM3D <- SOLTN
With the NONREFL card commented out, this crash disappears (the run then
reaches Failure 1 instead). The identical NONREFL setup runs without any
problem in the initial (non-restart) run.
QUESTIONS
1. On a full-deck restart with *STRESS_INITIALIZATION + n=d3full01, is the
nodal temperature field (and phase-change history) of a coupled
structural/thermal S-ALE model supposed to be restored from the dump?
Any known limitations for MAT_THERMAL_ISOTROPIC_PHASE_CHANGE on restart?
2. Is the NRBCALE2D access violation on the restart path a known issue for
2D S-ALE non-reflecting boundaries? (I noticed the R14.1.0 release note
about an incorrect shear modulus in 2D S-ALE non-reflecting boundary
elements, and the R14.0.0 fix to *BOUNDARY_NON_REFLECTING_2D for
discontinuous boundary lines.)
3. Is there a documented workaround other than abandoning the restart and
running both impacts as one continuous simulation (which is my current
fallback)?
For context: under R16.1.1 the same model family crashes at cycle 0 with an
access violation inside *MAT_THERMAL_ISOTROPIC_PHASE_CHANGE (already
reported separately), which is why this chain was migrated to R14.1.1.
I can provide the keyword decks, d3hsp/mes files, and (if useful) the
d3full01 family as a reproducer.
Thanks in advance,
Amrith
I am attempting to create a 27-node solid 3D user-defined element with the LS-Dyna object code. However, it appears to me that the object code is hard coded in many, many places for 8-node solid elements. For example in the dyn21usld.f file and then in the usrsld() subroutine, the main subroutine the calls the user-defined element subroutine, declares the bmtrx variable as:
common/bel7loc/bmtrx(nlq,3,3,8*(3+NXDOFUE))
where (based on my interpretation):
nlq - number of elements in current block
3,3 - matrix of shape function derivatives
8*(3+NXDOFUE) - number of nodes,8, times the number of degrees of freedom per node
This matrix is hard coded in many places throughout the dyn21usld.f file. Also, this is just one example of the hard coded nature of an 8-noded element there are also other variables such as the bvec array, as well as, do-loops that appear to be hard-coded for 8-nodes.
Q1: Can user-defined elements be developed with more than 8-nodes per element?
Q2: Does that require tracing through all the places where an 8-node element is assumed?
Q3: Is there an easier way to develop a user-defined element with more than 8-nodes rather than finding all the places where it is hard-coded?
Q4: How will the rest of the program know how many nodes are being used for the element?
Q5: Am I correctly interpreting that at least some of the variables and do-loops are hard-coded for 8-node solid elements?
Hello, I want to ask if there's any instruction on how I can modify the default behavior of workbench LSDYNA in terms of how it writes out input files.
For example, if I want to use a material model by inserting a lsdyna commnand in the geometry section, it doesn't allow me to put the load curve in that same command file, I have to insert it under lsdyna analysis setting.
I like to modify the input write-out logic such that load curve can be inserted in the command under geometry.
There are many other examples, is it possible?
I am running an implicit analysis on a foam-filled square tube. I am using a single curve for both the loading and unloading. The solver crashes during the unloading phase. Could you please advise on which inputs are incorrect or causing conflict?
squaretubefoam.key
I want to access the user assigned element numbers from the input card deck from within a user-defined material. I can access the LS-Dyna internally assigned element numbers via the idele variable but I do not know how this internal element number maps to the user assigned element number.
Can you please instruct me how to access the user assigned element numbers from within the user-defined material? What array or variable to I need to access?
I tried using the "Ansys Assistant" but it did not produce any solutions to the above problem.
Thanks!
Dear Anyone,
I know it is an odd request but it appears that LSPP is no longer accessible and I'm looking for another version of it. Is there a way a non-client of ANSYS can get access to LS-PrePost?
Thank you,
George
I am simulating the impact of discrete element (DEM) particles on a wire mesh structure in LS-DYNA. The particles are generated using *DEFINE_DE_INJECTION. The structure consists of a frame modeled with solid elements (*MAT_ELASTIC) and wires modeled with beam elements (*MAT_PLASTIC_KINEMATIC). The keyword file was initially generated using ANSYS LS-DYNA (where meshing was also done) and finalized in LS-PrePost.
For structural contacts, I defined *CONTACT_AUTOMATIC_GENERAL and *CONTACT_AUTOMATIC_NODES_TO_SURFACE. For the DEM-to-structure interaction, I implemented *DEFINE_DE_TO_BEAM_COUPLING and *DEFINE_DE_TO_SURFACE_COUPLING.
However, during the simulation, the DEM particles completely penetrate both the wires and the frame as if the structure does not exist. Are there any missing keywords or specific parameter adjustments required to properly enforce the physical interaction between the DEM particles and the structure?
Hi,
I wanted to ask about the contact with the rigid wall. I think I’m getting a bit confused about it. I have SPH particles in contact with the rigid wall, and based on my searches, I think I should change RWPNAL.
The problem is that, despite having friction on the rigid wall, the particles slide along the wall. In this case, RWPNAL was set to 1.
I changed RWPNAL to -1, and now the particles pass through the rigid wall. I chose -1 based on the following description:
"The optional penalty method for rigidwalls, invoked by setting RWPNAL=-1.0 in *CONTROL_CONTACT , works identical to the contact-impact interface treatment. When a deformable or a rigid node is found to be penetrating a rigidwall, the penetrated distance along the rigidwall normal is computed and is resisted by applying a force that is proportional to the computed distance and multiplied with a stiffness factor that is based on the material of the impacting node and the dimensions of the element it is attached to. The penalty approach conserves both energy and momentum".
How should I resolve this issue? I want the SPH particles to interact properly with the rigid wall.
Thank you,
I am using 3D tet remeshing in a FEM application and I can only get a uniform element size in the entire body. I have tried to change "MM" in keyword *CONTROL_REMESHING but it does not matter what value I use I still get a uniform element size. Since I need to use small elements on the surface to get the contacts to work I get a very large number of elements in the body. Is there any way to get the tet element size to grow from the surfaces?
Hi all,
I am running a repeated-impact simulation chain and I cannot get the
full-deck restart to work in R14.1.1. I would appreciate any insight into
whether thermal-state restore on full restart is expected to work for a
coupled S-ALE multi-material model with a phase-change thermal material,
and whether the boundary-condition crash described below is a known issue.
SOLVER / ENVIRONMENT
- ANSYS 2025 R2 (v252): lsdyna_mpp_dp_msmpi.exe and lsdyna_mpp_dp_impi.exe
- Both report: LS-DYNA MPP double precision, Revision R14.1.1-16-gfadfb49b17
(MS MPI V10.0 and Intel MPI builds respectively)
- Windows 10/11 x64, 16 MPI processes, double precision
- Both the initial run and the restart use the same revision and the same
number of processes, so the d3full version/rank-count requirements are met.
MODEL (initial run, "Impact 01")
- 2D axisymmetric S-ALE, coupled structural-thermal:
*SECTION_ALE2D (ALEFORM=11, ELFORM=14)
*ALE_STRUCTURED_MESH + *ALE_STRUCTURED_MESH_CONTROL_POINTS
*ALE_STRUCTURED_MESH_VOLUME_FILLING (ALL / BOXCOR / ELLIPSOID with
velocity vector via VID)
*ALE_MULTI-MATERIAL_GROUP (3 AMMGs)
- Materials:
*MAT_JOHNSON_COOK (MAT_015) + *EOS_GRUNEISEN for the HSLA-100 target
*MAT_ELASTIC_PLASTIC_HYDRO (MAT_010) + *EOS_GRUNEISEN for the WC
projectile (2220 m/s)
*MAT_ALE_VACUUM for the surrounding void
- Thermal:
*MAT_THERMAL_ISOTROPIC_PHASE_CHANGE for the target (T09)
*MAT_THERMAL_ISOTROPIC for projectile and vacuum
*CONTROL_SOLUTION SOLN=2 (coupled)
*CONTROL_THERMAL_SOLVER SOLVER=12, EQHEAT=1, FWORK=0.9
*CONTROL_THERMAL_TIMESTEP / *CONTROL_THERMAL_NONLINEAR
*INITIAL_TEMPERATURE_SET (NSID=0, 296.15 K)
- Boundary conditions via *BOUNDARY_SALE_MESH_FACE: SYM on the axis face
(negx), NONREFL on the posx/negy/posy faces.
- *DATABASE_BINARY_D3DUMP writes d3dump01/d3full01 at t = 5.3e-5 s.
- *CONTROL_MPP_DECOMPOSITION_DISTRIBUTE_ALE_ELEMENTS is used.
The initial run terminates NORMALLY at t = 5.3e-5 s (4845 cycles) with a
physically sound thermal state (final temperature norm ~1.0e5, nonlinear
thermal residual norms ~1e4-1e6). d3dump01 and d3full01.0000-0015 are
written as expected.
RESTART RUN ("Impact 02")
Full-deck restart deck = full model + *STRESS_INITIALIZATION (PIDO=10,
PIDN=0, the S-ALE mesh part) + a new *ALE_STRUCTURED_MESH_VOLUME_FILLING
(ELLIPSOID, with VID) introducing a second projectile. Executed with:
mpiexec -np 16 lsdyna_mpp_dp_xxxmpi.exe i=restart.k n=d3full01 memory=200m
The restart reads the dump correctly (problem time 5.3000e-5, cycle 4845,
"material 10 in restart file initializes"), but then fails at the very
first cycle in TWO distinct ways:
FAILURE 1 - thermal solver divergence, Error 40359 (SOL+359):
"the minimum time step has been reached and the maximum temperature
change is greater than specified"
solution time 5.3000e-5, node 6234 (inside the previously impacted,
hot region of the target), temperature change 5.2976e+12.
The first thermal solve after restart has an initial residual norm of
7.4432e+22, i.e. 18 orders of magnitude larger than any thermal solve in
the healthy initial run (~1e4-1e6). During the Newton iterations the
trial temperatures drop to ~112 K in material that ended the initial run
hot. The residual is bit-identical whether or not the restart deck
contains *INITIAL_TEMPERATURE_SET, so the initial-temperature card is not
the cause - the thermal state after the restore appears inconsistent/
corrupted regardless of the deck.
FAILURE 2 - access violation in the 2D ALE non-reflecting boundary:
When the NONREFL *BOUNDARY_SALE_MESH_FACE card is active, the run instead
crashes at the first mechanical cycle with
forrtl: severe (157): Program Exception - access violation
NRBCALE2D (dyn60.F, line 36922) <- APPLY_LOADS <- FEM3D <- SOLTN
With the NONREFL card commented out, this crash disappears (the run then
reaches Failure 1 instead). The identical NONREFL setup runs without any
problem in the initial (non-restart) run.
QUESTIONS
1. On a full-deck restart with *STRESS_INITIALIZATION + n=d3full01, is the
nodal temperature field (and phase-change history) of a coupled
structural/thermal S-ALE model supposed to be restored from the dump?
Any known limitations for MAT_THERMAL_ISOTROPIC_PHASE_CHANGE on restart?
2. Is the NRBCALE2D access violation on the restart path a known issue for
2D S-ALE non-reflecting boundaries? (I noticed the R14.1.0 release note
about an incorrect shear modulus in 2D S-ALE non-reflecting boundary
elements, and the R14.0.0 fix to *BOUNDARY_NON_REFLECTING_2D for
discontinuous boundary lines.)
3. Is there a documented workaround other than abandoning the restart and
running both impacts as one continuous simulation (which is my current
fallback)?
For context: under R16.1.1 the same model family crashes at cycle 0 with an
access violation inside *MAT_THERMAL_ISOTROPIC_PHASE_CHANGE (already
reported separately), which is why this chain was migrated to R14.1.1.
I can provide the keyword decks, d3hsp/mes files, and (if useful) the
d3full01 family as a reproducer.
Thanks in advance,
Amrith
I am attempting to create a 27-node solid 3D user-defined element with the LS-Dyna object code. However, it appears to me that the object code is hard coded in many, many places for 8-node solid elements. For example in the dyn21usld.f file and then in the usrsld() subroutine, the main subroutine the calls the user-defined element subroutine, declares the bmtrx variable as:
common/bel7loc/bmtrx(nlq,3,3,8*(3+NXDOFUE))
where (based on my interpretation):
nlq - number of elements in current block
3,3 - matrix of shape function derivatives
8*(3+NXDOFUE) - number of nodes,8, times the number of degrees of freedom per node
This matrix is hard coded in many places throughout the dyn21usld.f file. Also, this is just one example of the hard coded nature of an 8-noded element there are also other variables such as the bvec array, as well as, do-loops that appear to be hard-coded for 8-nodes.
Q1: Can user-defined elements be developed with more than 8-nodes per element?
Q2: Does that require tracing through all the places where an 8-node element is assumed?
Q3: Is there an easier way to develop a user-defined element with more than 8-nodes rather than finding all the places where it is hard-coded?
Q4: How will the rest of the program know how many nodes are being used for the element?
Q5: Am I correctly interpreting that at least some of the variables and do-loops are hard-coded for 8-node solid elements?
Hello, I want to ask if there's any instruction on how I can modify the default behavior of workbench LSDYNA in terms of how it writes out input files.
For example, if I want to use a material model by inserting a lsdyna commnand in the geometry section, it doesn't allow me to put the load curve in that same command file, I have to insert it under lsdyna analysis setting.
I like to modify the input write-out logic such that load curve can be inserted in the command under geometry.
There are many other examples, is it possible?
I am running an implicit analysis on a foam-filled square tube. I am using a single curve for both the loading and unloading. The solver crashes during the unloading phase. Could you please advise on which inputs are incorrect or causing conflict?
squaretubefoam.key