October 6, 2023 at 2:40 amMoustafa El-SawySubscriber
Hi. Im using ansys apdl. I have a block of concrete that I am already applying horiz,vert and lateral springs to the base nodes. I am aware that solid elements dont have a ROT DOF at their nodes but I need to add additional rotational stiffness and damping to my base for a modal analysis to match my hand calculations. My base is most likely going to act like a rigid plate so I added some rigid shells there that share the same nodes as the bases. I then created a masternode that I apply my rotational stiffness/damping to and created a CERIG between that master node to the slave node. Is this approach correct?
I am also trying to compare my results to a SAP2000 model (modal analysis). I have simplified both models to only regular springs (x,y,z) but I am getting different mass participation factors in the rotx, roty, rotz. Is there something special about how ansys calculates these compares to SAP2000? origin vs center of mass etc.
Here is my code for my first issue:/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 9, 2023 at 12:21 pmRahul KumbharAnsys EmployeeHi @Moustafa,The script appears to do overconstraints. First you have created three translational springs for each base node. (total springs = 3xno of base nodes). The other ends of these translational springs are fixed.Then you have created three rotational springs connecting a master node created in space. The other ends of the springs are fixed. (Total springs =3 only). Then there are CEs connecting the masternode to all base nodes.During the rotation, the equivalent stiffness should be because of both translational springs and rotational srpings.
- 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.
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.
- How to do the frequency response of the nonlinear vibration of a flexible PCB?
- Importing Line and Solid Bodies from SpaceClaim to Mechanical
- how to open SendCommand in Ansys
- problems facing during solution
- Still facing the same issue
- Failed to move file from solver directory to scratch directory: file.rst
- Adaptive Sizing
- Stiffness factor
- Import DAT file
- Import pressure data (coordinates and value) to ansys workbench through excel
© 2023 Copyright ANSYS, Inc. All rights reserved.