TAGGED: ansys-apdl, ansys-mechanical, apdl, constraints
-
-
October 1, 2023 at 3:46 am
Moustafa El-Sawy
SubscriberI have a concrete block made up of SOLID elements. I am currently applying a spring at the base at each mesh element but I found I also want to apply rotation stiffness to the entire foundation. I have a single value of the stiffness of the system in each direction including rotation stiffness. Before knowing I need to apply rotational stiffness, I took the total value of stiffness in each translation direction and applied a portion of this to each node based on its tributary area. However I also now need to apply rotation stiffness to the entire system so I think this approach will not work.
SOLID nodes dont have rotation DOF, so I was thinking I would create a master node and assign it a single spring with x,y,z,rotx,roty,rotz and then connect this node with all my base nodes. This would distribute the stiffness to the nodes and allow the system to rotate with a certain stiffness.
- Can I perform this without tying all base nodes (X,Y,Z)? My behavior is most likely rigid but I was wondering if its possible. I dont think its possible but please correct me if im wrong
- If its not possible, can I make my base like a rigid plate (X,Y) direction but also able to rotate around the master node with a certain stiffness (around x,y).
-
October 2, 2023 at 11:01 am
peteroznewman
SubscriberSelect the bottom face of your block and insert a Spring in the Connections folder. In the Details window, change the Scope to a Body-Ground spring and change the Behavior of the Mobile side (bottom face) to be Deformable. Deformable means that the individual nodes in the face will have the freedom to move according to the loads distrubuted to them by the Deformable connection, but that the average motion will be controlled by the spring’s master node.
The spring created in Mechanical is a Longitudinal spring, COMBIN14, which is not what you want, but you can override that spring type with another spring element called a COMBI250 by using a Command Object under the Spring object in the model Outline.
A COMBI250 allows you to define six spring constants for the 3 translational and 3 rotational stiffness values.
Look up the COMBI250 element in the Mechanical APDL, Element Library section of the Help system. One line of the APDL code will switch the element type to COMBIN250 and other lines of code will provide the Real Constants for the spring stiffness values.
Here is one example of the needed code. Here is another example.
-
October 2, 2023 at 11:48 am
Moustafa El-Sawy
SubscriberThanks Peter. I am using APDL. With the COMBI250, I am able to assign springs in all directions at the nodes at the bottom of my solid elements even though the solid element nodes dont have DOF for rotation?
-
-
October 2, 2023 at 1:24 pm
peteroznewman
SubscriberNo, a rotational spring attached to a node on a solid element will not be able to apply any moment to that node. A pilot node that distributes forces and moments to a set of nodes can have a moment load applied to the pilot noe, which will be resolved as forces on the set of nodes it is connected to.
-
October 6, 2023 at 2:35 am
Moustafa El-Sawy
SubscriberHi Peter, ive been trying to apply some rotation stiffness to my whole base but im unsure if my approach is correct can you take a look at the code below:
/CLEAR ! Clear all previous data and start fresh/PREP7 ! Enter preprocessor phase! Element DefinitionsET, 1, SOLID185 ! Define SOLID186 element type for solid modelingET, 2, COMBIN14 ! Define COMBIN14 element type for springsKEYOPT, 2, 2, 0KEYOPT, 2, 3, 0ET, 3, COMBIN14 ! Define COMBIN14 element type for springsKEYOPT, 3, 2, 0KEYOPT, 3, 3, 1ET, 999, SHELL181 ! Define SHELL181 element type with a placeholder ID of 999SECTYPE, 999, SHELL ! Specify section type for SHELL181 elementSECDATA, 10 ! Define the thickness of the shell as 100 units! Material Properties for the SolidMP, EX, 1, (32836.56803/1000)/0.83 ! Define Young's Modulus for solid after adjusting valueMP, PRXY, 1, 0.2 ! Define Poisson's Ratio for the solidMP, DENS, 1, (23.544/9810.0)/10**9 ! Define Density for the solid after adjusting valueMP, ALPX, 1, 10E-006 ! Define Coefficient of Thermal Expansion for the solid! Material Properties for Fake/Rigid AreasMAT, 999 ! Activate material with ID 999 for fake areasMP, EX, 999, 1E+13 ! Define a very high Young's Modulus to simulate rigidityMP, PRXY, 999, 0.2 ! Define Poisson's Ratio for the fake areasMP, DENS, 999, 0.0 ! Define Density as 0, implying it's a "rigid" areaMP, ALPX, 999, 10E-006! Define Coefficient of Thermal Expansion for the fake areas! Geometry CreationBLC5, 0, 0, 40000, 40000, 50000 ! Create a block starting from origin with the given dimensions! Meshing Settings for the Solid BlockTYPE, 1 ! Set the element type to SOLID186MAT, 1 ! Set the material type to the first defined material (for solid)ESIZE, (5000) ! Set the mesh sizeVMESH, ALL ! Mesh the created volume! Meshing Settings for the Base Area (Shell)MAT, 999 ! Switch to the material ID 999 (for fake areas)TYPE, 999 ! Switch to the SHELL181 element typeSECNUM, 999 ! Use the section definition with ID 999ND_TOL = 10 ! Define a tolerance for node selection (helpful in selecting nodes near z=0)ALLSEL, ALL ! Select everything in the workspaceASEL, S, LOC, Z, 0-ND_TOL, 0+ND_TOL ! Select areas near the base within the defined toleranceAMESH, ALL ! Mesh the selected areas (i.e., the base) using SHELL181 element type! Select nodes at the baseND_TOL = 10NSEL, S, LOC, Z, 0-ND_TOL, 0+ND_TOL! Create a component for the selected nodesCM, BASE_NDS, NODE! Get essential parameters for node looping*GET, NMAX, NODE, 0, NUM, MAX*GET, NODE_NMIN, NODE, 0, NUM, MIN*GET, NODE_NCOUNT, NODE, 0, COUNTKX = 1000 ! Spring constant in X directionKY = 500 ! Spring constant in Y directionKZ = 2000 ! Spring constant in Z directionR, 1001, KXR, 2001, KYR, 3001, KZCMSEL,S, BASE_NDS ! Select component of nodesL_SPRING = 100! Loop over each node in the created componentNODE_NNUM = NODE_NMIN*DO, i, 1, NODE_NCOUNT! Get coordinates of the current node*GET, X_COORD, NODE, NODE_NNUM, LOC, X*GET, Y_COORD, NODE, NODE_NNUM, LOC, Y*GET, Z_COORD, NODE, NODE_NNUM, LOC, Z! Create spring in X directionN, , X_COORD-L_SPRING, Y_COORD, Z_COORD ! Generate a new node*GET, newNode, NODE, 0, NUM, MAX ! Get the ID of the newly created nodeD, newNode, ALL ! Fix the ground node for X directionTYPE, 2REAL, 1001 ! Define spring constant for XE, NODE_NNUM, newNode! Create spring in Y directionN, , X_COORD, Y_COORD-L_SPRING, Z_COORD ! Generate a new node*GET, newNode, NODE, 0, NUM, MAX ! Get the ID of the newly created nodeD, newNode, ALL ! Fix the ground node for Y directionTYPE, 2REAL, 2001 ! Define spring constant for YE, NODE_NNUM, newNode! Create spring in Z directionN, , X_COORD, Y_COORD, Z_COORD-L_SPRING ! Generate a new node*GET, newNode, NODE, 0, NUM, MAX ! Get the ID of the newly created nodeD, newNode, ALL ! Fix the ground node for Z directionTYPE, 2REAL, 3001 ! Define spring constant for ZE, NODE_NNUM, newNode! Move to the next node in the componentNODE_NNUM = NDNEXT(NODE_NNUM)*ENDDO! add node at center of block and assign rotational torsion springs to this node (master node)! Create a master node at the center of the blockN, , 0, 0, -500*GET, masterNode, NODE, 0, NUM, MAX ! Get the ID of the master node*GET, X_COORD, NODE, masterNode, LOC, X*GET, Y_COORD, NODE, masterNode, LOC, Y*GET, Z_COORD, NODE, masterNode, LOC, Z! Assign rotational torsion springs to this node (master node)KRX = 500 ! Spring constant for rotation about X axis (Torsional Spring)KRY = 500 ! Spring constant for rotation about Y axis (Torsional Spring)KRZ = 500 ! Spring constant for rotation about Z axis (Torsional Spring)R, 4001, KRXR, 5001, KRYR, 6001, KRZ! Create Torsion springs at the master nodeN, , X_COORD-L_SPRING, Y_COORD, Z_COORD ! Generate a new node offset in X for ROTX spring*GET, newXNode, NODE, 0, NUM, MAXD, newXNode, ALLTYPE, 3REAL, 4001E, masterNode, newXNodeN, , X_COORD, Y_COORD-L_SPRING, Z_COORD ! Generate a new node offset in Y for ROTY spring*GET, newYNode, NODE, 0, NUM, MAXD, newYNode, ALLTYPE, 3REAL, 5001E, masterNode, newYNodeN, , X_COORD, Y_COORD, Z_COORD-L_SPRING ! Generate a new node offset in Z for ROTZ spring*GET, newZNode, NODE, 0, NUM, MAXD, newZNode, ALLTYPE, 3REAL, 6001E, masterNode, newZNode! Transfer rotational stiffness from the master node to the slave nodes (base nodes)CMSEL, S, BASE_NDS ! Select nodes in BASE_NDS componentNSEL,A,NODE,,masterNodeCERIG,masterNode,ALL,RXYZ! Re-select everything for subsequent commandsALLSEL, ALL/SOLU ! Enters the solution processorDAMPING_RATIO = 0.00 ! Modal Damping RatioN_MODES = 25 ! Number of Modes, When Method = LANPCG, NMODE should be less than 100 to be computationally efficient.ANTYPE, MODAL ! Perform a modal analysisMXPAND, N_MODES ! Number of modesDMPRAT, DAMPING_RATIO ! Modal damping ratioMODOPT, LANB, N_MODESALLSEL, ALL/MKDIR, 'OUTPUT'/OUTPUT, 'OUTPUT/Modal_Analysis', 'OUT'SOLVEFINISH ! Exits solution processor /SOLU
-
-
October 2, 2023 at 1:28 pm
Moustafa El-Sawy
SubscriberIf I need to apply springs in all 6 directions to the base of my solid elements, is there any way to accomplish this (individual nodes not the entire base with a single value).
I was thinking of adding shell elements to the base that share the same nodes as the solid elements and this will enable those nodes to take moment? Do you think this will work? In this case I was planning on assigning these shells as massless and with small stiffness to not affect the dynamic behavior of the structure.
-
October 6, 2023 at 5:03 pm
peteroznewman
SubscriberI am not an expert at APDL code. I use Workbench and only use a few lines of APDL occasionally. Maybe someone else can comment.
-
- You must be logged in to reply to this topic.

Boost Ansys Fluent Simulations with AWS
Computational Fluid Dynamics (CFD) helps engineers design products in which the flow of fluid components is a significant challenge. These different use cases often require large complex models to solve on a traditional workstation. Click here to join this event to learn how to leverage Ansys Fluids on the cloud, thanks to Ansys Gateway powered by AWS.

Earth Rescue – An Ansys Online Series
The climate crisis is here. But so is the human ingenuity to fight it. Earth Rescue reveals what visionary companies are doing today to engineer radical new ideas in the fight against climate change. Click here to watch the first episode.

Ansys Blog
Subscribe to the Ansys Blog to get great new content about the power of simulation delivered right to your email on a weekly basis. With content from Ansys experts, partners and customers you will learn about product development advances, thought leadership and trends and tips to better use Ansys tools. Sign up here.
- Saving & sharing of Working project files in .wbpz format
- Solver Pivot Warning in Beam Element Model
- Understanding Force Convergence Solution Output
- An Unknown error occurred during solution. Check the Solver Output…..
- What is the difference between bonded contact region and fixed joint
- The solver engine was unable to converge on a solution for the nonlinear problem as constrained.
- whether have the difference between using contact and target bodies
- Defining rigid body and contact
- Colors and Mesh Display
- A solver pivot warning or error has been detected
-
8736
-
4658
-
3151
-
1678
-
1452
© 2023 Copyright ANSYS, Inc. All rights reserved.