VUMAT for Blatz-Ko hyperfoam model
12:46
UEL subroutine in ABAQUS part four
14:34
UEL subroutine in ABAQUS part three
8:25
UEL subroutine in ABAQUS part two
7:53
UEL subroutine in ABAQUS
8:49
2 жыл бұрын
Element Deletion using UMAT
4:34
2 жыл бұрын
USDFLD subroutine
7:44
3 жыл бұрын
VUMAT for Power-Law Plasticity
4:45
3 жыл бұрын
VDISP subroutine for ABAQUS
6:25
3 жыл бұрын
Пікірлер
@majidakbarzadeh7018
@majidakbarzadeh7018 2 күн бұрын
Hi, thanks for the useful video. When we have geometry nonlinearity, we have to add this code or it can help convergency? I have a umat for an isotropic hyperelastic material which works very well under simple loading but it's hard to get converged for complex geometry and high deformation. It can be solved if I add this piece of code into my umat?
@learneasyonline
@learneasyonline 21 күн бұрын
Please share the setting of your input file and your solver setting. Statev(2) = 0 alone cant delete elements.
@kianaghani
@kianaghani 20 күн бұрын
@@learneasyonline there are no special settings and everything is according to the video. Also, yes sdv2 can delete elements. It is pretty easy.
@pma7224
@pma7224 2 ай бұрын
Hey. I tried to implement it in a matlab code. I want to silmulate a uniaxial tensile Test. After the first plastic step i get a little stress in the 22 and 33 component of the stresstensor. this false components are then go into the new trial stress and over several loops add up to a very false result. what do you think i did wrong?
@kianaghani
@kianaghani 2 ай бұрын
@@pma7224 if your solution is converging, then you have allocation problem with your tensors.
@user-yj4ir9my9b
@user-yj4ir9my9b 2 ай бұрын
Thanks for your excellent tutorial, I need to assign material strength and modulus to different elements of three materials, if I go through with NOEL, the array will cross the boundary, how can I solve this problem, can you provide some suggestions
@kianaghani
@kianaghani 2 ай бұрын
@@user-yj4ir9my9b a more straightforward approach is to use the inp file. Built 3 elements with 3 different materials, and connect those elements in the inp file.
@user-yj4ir9my9b
@user-yj4ir9my9b 2 ай бұрын
@@kianaghani Thank you for your reply. I'm sorry, I looked at my description again, the problem I described may be too simplistic. My problem is that three materials, say each material has 10,000 elements, and the modulus and strength of each element is random. If i use inp files, i need to create 30,000 collections and assign attributes to them. So i now use UEXTERNALDB to read 3 dat files, each dat file contains 10000 modulus and strength information, what I need to do now is to assign the information of these three dat files to the element , but the NOEL of these three sets is also random, and using NOEL to assign attributes will cause the array to cross the boundary.
@kianaghani
@kianaghani 2 ай бұрын
@@user-yj4ir9my9b i can think of several solutions. The easiest is to use scripting instead of subroutine. If you insist on using subs, load the files and use a counter to measure the length of the array. Then, use a loop with the size of the counter, to assign materials and an if condition to see whether noel crosses the counter.
@kar-dt1hk
@kar-dt1hk 2 ай бұрын
thank you for making this beautiful video
@mdrumi629
@mdrumi629 3 ай бұрын
Sir, thank you for these exceptional videos on user subroutines in Abaqus. Would you please make a detailed video or a series of videos on writing and implementing VUEL for 2D and 3D uncoupled Cohesive Zone Models? It would be a great opportunity to learn from you about this topic. Please consider this request.
@jiajunsong3342
@jiajunsong3342 4 ай бұрын
thank you very much for sharing the wonderful vedio! i understand field(1) controls the elastic modulus, but why statev(2) = 0 means the element is deleted can you explain that, thanks again!
@kianaghani
@kianaghani 3 ай бұрын
statev(2) is controlling the element deletion process. 1 means active, whereas 0 means non-active.
@refquesog8104
@refquesog8104 4 ай бұрын
The option deepVar is grey in my Abaqus Learning Edition 2023. Is this a limitation?
@kianaghani
@kianaghani 4 ай бұрын
It seems so.
@mahdivafaei4394
@mahdivafaei4394 5 ай бұрын
please help me what is this error
@mahdivafaei4394
@mahdivafaei4394 5 ай бұрын
i get error found invalid intiger 0
@kianaghani
@kianaghani 5 ай бұрын
Take a look at the log or msg files.
@jumpshot-zz1uy
@jumpshot-zz1uy 5 ай бұрын
hi,sir. I changed the geometry in the first model by modelchange. After , in the second model, I import the part by the odb file. The geometry wasn't same as the first one shown in the result. Please tell me if it were nomal.
@kianaghani
@kianaghani 5 ай бұрын
Maybe you’re doing something wrong
@alicejohnson3802
@alicejohnson3802 5 ай бұрын
Thank you very much, it seems very useful, but I don't know how to use this method. What I mean is that I now have a VUMAT subroutine with over 2000 lines, and I want to change it to a UMAT subroutine. What should I do using your method?
@kianaghani
@kianaghani 5 ай бұрын
This is not about changing the subs. It’s about conversion between them.
@alicejohnson3802
@alicejohnson3802 5 ай бұрын
@@kianaghani I have a VUMAT subroutine and I want it to run under “Static,General” conditions. What should I do? Thank you very much.
@kianaghani
@kianaghani 5 ай бұрын
@@alicejohnson3802 just pass the stress vector from vumat to the umat. Also construct the ddsdde matrix in umat
@alicejohnson3802
@alicejohnson3802 4 ай бұрын
@@kianaghani Dear Aghani, I want to use the method you mentioned to solve the problem I want to solve, but I have tried for a month but still can't solve it. Could you please leave your email? Can I send you my VUMAT program and model? Is it convenient for you to help me solve this problem?
@compengaero4481
@compengaero4481 5 ай бұрын
How do you set up the number of cpus using command?
@kianaghani
@kianaghani 5 ай бұрын
At the end of the command line type, for example, "cpus=4", you can use gpus too, "gpus=5"
@compengaero4481
@compengaero4481 5 ай бұрын
Thanks for your quick reply. ​@@kianaghani
@compengaero4481
@compengaero4481 5 ай бұрын
​@@kianaghanithanks for your quick reply
@user-ty3qw7gs7k
@user-ty3qw7gs7k 6 ай бұрын
thanks for your sharing, sir. I'm using your script but I'm having trouble getting it to run., can you help find where errors are? subroutine vdload ( C Read only (unmodifiable)variables - 1 nblock, ndim, stepTime, totalTime, 2 amplitude, curCoords, velocity, dirCos, jltyp, sname, C Write only (modifiable) variable - 1 value ) C include 'vaba_param.inc' C dimension curCoords(nblock,ndim), velocity(nblock,ndim), 1 dirCos(nblock,ndim,ndim), value(nblock) character*80 sname C real*8 a,b real*8 LA,LB real*8 p !real*8 slabW,v a=0.35 b=0.2 LA=5 LB=2.5 p=1000 slabW=10 v=20 disp=v*stepTime do km = 1, nblock if(curCoords(km,1)<(slabW-LB)/2. .and. curCoords(km,1)>(slabW-LB)/2.-b) then if(curCoords(km,3)<disp+a .and. curCoords(km,3)>disp) then value(km)=p else if(curCoords(km,3)<disp+a+LA .and. curCoords(km,3)>disp+LA) then value(km)=p else value(km)=0.0 end if else if(curCoords(km,1)>(slabW+LB)/2. .and. curCoords(km,1)<(slabW+LB)/2.+b) then if(curCoords(km,3)<disp+a .and. curCoords(km,3)>disp) then value(km)=p else if(curCoords(km,3)<disp+a+LA .and. curCoords(km,3)>disp+LA) then value(km)=p else value(km)=0.0 end if else value(km)=0.0 end if end do return end
@kianaghani
@kianaghani 6 ай бұрын
Hi.Check your *.log file.
@user-ty3qw7gs7k
@user-ty3qw7gs7k 5 ай бұрын
Hi, I found my problem because of the version, I'm using version 2022.@@kianaghani
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
@kianaghani I didn't see the concrete tension damage parameter in this plugin
@kianaghani
@kianaghani 6 ай бұрын
It uses fracture energy in tension.
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
@@kianaghani Please see point number 18 docs.software.vt.edu/abaqusv2022/English/SIMACAECAERefMap/simacae-t-prpmechanicalplasticconcretedamagedmodel.htm
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
@@kianaghani can you please see step 18 in this link docs.software.vt.edu/abaqusv2022/English/SIMACAECAERefMap/simacae-t-prpmechanicalplasticconcretedamagedmodel.htm
@zonoucoffimarius8327
@zonoucoffimarius8327 6 ай бұрын
Hi sir! Can I get your email?
@kianaghani
@kianaghani 6 ай бұрын
@Valera197615
@Valera197615 6 ай бұрын
Thank you for the video!!! I wish you all good health and happiness, as well as peace, love and harmony!!!
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
Do it uses stress strain diagram from code or test data?
@kianaghani
@kianaghani 6 ай бұрын
It uses the Saenz stress-strain equation for concrete, which is pretty good for numerical simulations.
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
@@kianaghani thank you so much for your promt reply.
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
How do you determine tha fracture energy GFI value?​@@kianaghani
@kianaghani
@kianaghani 6 ай бұрын
@@structurelearninghub3340 depends on the eq. you are using. I normally use fib-2010 code equations.
@structurelearninghub3340
@structurelearninghub3340 6 ай бұрын
@@kianaghani Hello sir, Which relation do you use to define the behaviour of concrete in tension ?
@tcp-cd9tv
@tcp-cd9tv 6 ай бұрын
I replicated your model, but the element were not deleted where the FIELD(1) =0 and SDV2=0, what could be the reason? thanks.
@kianaghani
@kianaghani 6 ай бұрын
If you replicated the exact model, the results should be the same. Maybe, all of the integration points have not reached the critical value.
@RajKumar-vq5pm
@RajKumar-vq5pm 6 ай бұрын
Please explain why did you assign filed(1) = 0 Later field(1) = 1 and finally 3
@RajKumar-vq5pm
@RajKumar-vq5pm 6 ай бұрын
Suppose, if I wanted to do parameterization, the thickness will dimensions will change, in that case how can I get the corresponding dimensions dynamically in subroutine to compute E. please make a video
@olawaleayinde6215
@olawaleayinde6215 7 ай бұрын
Hello bro. Please, how can I contact you. The vdload subroutine file is not compiling. Guess may be an error somewhere.
@kianaghani
@kianaghani 7 ай бұрын
Hi. The subroutine works fine. If you have compiling issues, there must be a problem with your ABAQUS not linked with the compiler.
@satellizer2267
@satellizer2267 7 ай бұрын
Is the plugin you have listed still valid for 2023 version? I can't seem to get it working on mine.
@kianaghani
@kianaghani 7 ай бұрын
I tried it on 2022 and it worked. I don’t know about 2023 though.
@derejegobena6876
@derejegobena6876 7 ай бұрын
@kianaghani1709 How to contact you?
@derejegobena6876
@derejegobena6876 7 ай бұрын
I want to contact you. Can you provide your email address?
@pedromattioli6202
@pedromattioli6202 7 ай бұрын
The OPEN statement is passing the 72 column limit. Why isn't this causing an error? I thought ABAQUS used fortran 77, with fixed format.
@pedromattioli6202
@pedromattioli6202 7 ай бұрын
Also, thanks for all the high quality videos on Abaqus. Your channel has been very insightful.
@kianaghani
@kianaghani 7 ай бұрын
@@pedromattioli6202 Thank you. I fixed the 72 column problem by using some coding in the compiler options. The fix can be found on the internet. Nonetheless, you are right about that.
@karimmosli
@karimmosli 7 ай бұрын
thank you sir for this video
@jumpshot-zz1uy
@jumpshot-zz1uy 8 ай бұрын
thanks for your sharing, sir. I write the subroutine script, I met a problem that I want introduce an initial stress field with a legendre polynomil. how can I do it. my script like this, can you help find where errors are? subroutine sigini(sigma,coords,ntens,ncrds,noel,npt,layer, $ kspt,lrebar,rebarn) C include 'aba_param.inc' C dimension sigma(ntens),coords(ncrds) character*80 rebarn C integer i double precision x,y, Pnx x=coords(1) y=coords(2) z=coords(3) Pnx=legendreP(3,y/38) C if (n.eq.3.and.abs(x).lt.60.0d0) then sigma(1)=Pnx end if return end C function legendreP(n,y) result(Pn) integer, intent(in) n double precision, intent(in) y double precision Pn if (n==0) then Pn=1.0d0 else if (n==1) then Pn=y else Pn=((2*n-1)*y*legendreP(n-1,y) $ -(n-1) * legendreP(n-2,y)/n end if end function legendreP
@kianaghani
@kianaghani 8 ай бұрын
I think the problem is related to “n”. Introduce “n” before the if condition instead of 3.
@jumpshot-zz1uy
@jumpshot-zz1uy 8 ай бұрын
Thanks Ill try.@@kianaghani
@karimmosli
@karimmosli 8 ай бұрын
thank you sir for this video
@MirgenMiro-dv2hf
@MirgenMiro-dv2hf 8 ай бұрын
Excellent work 👍❤
@ehsankk1636
@ehsankk1636 8 ай бұрын
Great job. Thanks a lot.
@hayelelnaggar4440
@hayelelnaggar4440 9 ай бұрын
Can run the NEW model from the GUI?
@kianaghani
@kianaghani 8 ай бұрын
If you want to use the GUI, you should input the suitable keyword.
@altaflone3356
@altaflone3356 9 ай бұрын
Sir, i am using C3D8 elements with 8 nodes, 8 integration points, 5 degrees of freedom at each integration point, 18 variables at each integration point, 13 properties. i politely request if i am using the correct modifications below ************************************************************* *User element, nodes=8, type=U1, properties=13, coordinates=3, var=144 1,2,3 ************************************************* *ELEMENT, TYPE=U1, ELSET=SOLID ************************************************************* also, sir after 1,2.3 do i need to add anything more? politely request for help sir.
@kianaghani
@kianaghani 9 ай бұрын
it's correct
@hadihaghgouei666
@hadihaghgouei666 9 ай бұрын
Hi Kian, Thank you for your excellent tutorial. I have a question about assigning different Young's moduli to elements, where each element has a unique Young's modulus, in order to simulate a heterogeneous model. I am curious about how we can implement this solution when using VUMAT, considering that Abaqus calls elements block by block. Appreciate your guidance.
@kianaghani
@kianaghani 9 ай бұрын
Hello, Use VUSDFLD and SDVs. Nonetheless, it’s gonna be hard.
@altaflone3356
@altaflone3356 9 ай бұрын
Sir is there any MATLAB resource to modify any .inp File for UEL Compatibility. Politely request for help sir.
@kianaghani
@kianaghani 9 ай бұрын
Not that I know of. Usually, everyone has their own method. I do it by hand not coding.
@altaflone3356
@altaflone3356 9 ай бұрын
When i run the input and fortran scripts through terminal, i get the odb as shown in video. However i don't get any results. can you please tell what is wrong. i am using input file provided by you without modifying it.
@kianaghani
@kianaghani 9 ай бұрын
I think you are making a mistake in the process.
@kianaghani
@kianaghani 9 ай бұрын
​@@altaflone3356 At the end of the inp file, there is a line "*element output, elset=decoy, SDV ". With this line the data will be shown.
@jumpshot-zz1uy
@jumpshot-zz1uy 9 ай бұрын
Hi,sir. I CANT RUN the command, it's warning that"Abaqus Error: The following file(s) could not be located: Job-1.mdl". May you have ever encountered such a problem, how to solve it?
@kianaghani
@kianaghani 9 ай бұрын
Hi. Both jobs should be in the same folder.
@jumpshot-zz1uy
@jumpshot-zz1uy 8 ай бұрын
@@kianaghani thanks very much!
@boopathy989
@boopathy989 9 ай бұрын
Hi sir i can't run the model with oldjob data. Can you help me please
@kianaghani
@kianaghani 9 ай бұрын
You are probably doing something wrong
@ShubhamTiwari-n8m
@ShubhamTiwari-n8m 9 ай бұрын
Can we further add any parts after getting the deformed geometry? or change the dimesions?
@kianaghani
@kianaghani 9 ай бұрын
You can add parts but you cannot change the dimensions of the mapped configuration.
@hschan9423
@hschan9423 10 ай бұрын
Hi, nice video! Do you happen to have umat version instead of vumat?
@sanjeevkumar-id7ij
@sanjeevkumar-id7ij 11 ай бұрын
Sir, I am using combined hardning rule for steel damper subjected to cycle loading. I am trying to validate the results but I am getting high initial stiffness. Is there a way we can use reduced value of youngs modules for initial cycles and higher values for remaining cycles
@kianaghani
@kianaghani 11 ай бұрын
You can do whatever you want with this subroutine. However, the initial stiffness is related to elastic modulus.
@sanjeevkumar-id7ij
@sanjeevkumar-id7ij 11 ай бұрын
Thank you Sir
@karimmosli8637
@karimmosli8637 11 ай бұрын
Thank sir for shearing this video
@siddheshkulkarni1572
@siddheshkulkarni1572 11 ай бұрын
Why have u used state variables for stress input and not stress values are available at the start of the subroutine???
@kianaghani
@kianaghani 11 ай бұрын
I do not exactly follow your question.
@vishnuos4075
@vishnuos4075 Жыл бұрын
Great work sir, In damage modeling using UMAT, the following error is coming.. ''Time increment required is less than minimum provided''. My model consist of more than one material. Once the damage reaches maximum value in one element this error is coming and other elements are not even reaching the peak stress.
@kianaghani
@kianaghani 11 ай бұрын
It is a convergence problem, and might have a lot of reasons.
@vishnuos4075
@vishnuos4075 9 ай бұрын
Thank you for the reply sir. The UMAT was running successfully for the model. But it took almost one week to run the simulation. Then I have added some cohesive interactions in the model. Now my model is taking too much time to finish one increment. It may take even one month to complete the job.. I am modeling a unit cell of unidirectional composite.. Are there any methods to reduce the running time sir?
@chrisvila5258
@chrisvila5258 Жыл бұрын
Hello is the code supplied by E.M. Paneda valid for any 3d geometry (thick bodies) or what are the limitations? Thanks in advance
@kianaghani
@kianaghani Жыл бұрын
I believe you are mistaking this code with someone else’s.
@halenter3231
@halenter3231 Жыл бұрын
Thank you very much for your tutorial. Btw, can we run the new model (step 2) directly on the software interface, basically press the button submit in job module?
@kianaghani
@kianaghani Жыл бұрын
In my experience, when you press the submit button, the JOB hangs since you haven’t introduced the OLDJOB.
@halenter3231
@halenter3231 Жыл бұрын
@@kianaghani thank you for your reply, you are right, it did not work. Btw, is this mapping solution applied only for ABAQUS/Standard? I have tried with ABAQUS/Explicit, but it did not work as well.
@kianaghani
@kianaghani Жыл бұрын
@@halenter3231 As the manual says, it is currently available in standard only.
@karimmosli8637
@karimmosli8637 Жыл бұрын
Hello sir kian ,can you please help me i have just small problem with abaqus
@kianaghani
@kianaghani Жыл бұрын
State your problem here and I will try to help.
@karimmosli8637
@karimmosli8637 Жыл бұрын
​@@kianaghani Thank you very much for your response, sir. My problem is that I am simulating the behavior of a hyperelastic hollow sphere under internal pressure with a thickness parameter (eta) of 2, C10 value of 0.398, and a Poisson's ratio (v0) of 0.499. The model used is Neo-Hookean. I have obtained results for internal pressures up to Pi=0.1, 0.2, 0.3, 0.4, and 0.5. However, when I apply a pressure of Pi=0.6, 1, 2, or 3 Pascal, it doesn't work. I encounter this error: "Time required is less than the minimum specified."
@kianaghani
@kianaghani Жыл бұрын
@@karimmosli8637 this is a standard issue, and may have several reasons. Maybe the load is too high.
@karimmosli8637
@karimmosli8637 Жыл бұрын
@@kianaghani sir how I can solve this problem
@mahdisimyarian5651
@mahdisimyarian5651 Жыл бұрын
thank you in advaance
@mortazapirouz7482
@mortazapirouz7482 Жыл бұрын
I have a question about VUEL-VUMAT, I guess since they may be similar to the case if UEL-VUMAT, I post it here, however I did not see any other video or forum to post my question. I am working on a VUEL-VUMAT for fracture analysis, where calculations are performed in VUEL, and the final results need to be exported to VUMAT for visualization. Here are the key points: 1. I have 80 nodes in total, and I defined a user-defined element with 5 to 13 nodes. After calculating the extension between nodes, I assign a value to each node representing the number of broken bonds. So, after the calculation, I have a matrix 'A' of size (80,1) for one time increment. The first column contains node numbers, and the second column represents the degree of damage. I assume that my nodes and integration points are the same, but corrections are welcome. 2. I created a module to share data files and access the matrix 'A' of size (80, 1) in VUMAT. Using a simple do loop, I assigned the values of matrix 'A' to 'statenew'. However, I couldn't see the results in Abaqus through SDV1. I assign one to one because I am using CPE4R element in the vumat to visualize: do k = 1, 80 statenew(k,1) = A(k) end do 3. I suspect the issue is related to using element CPE4R, which has reduced integration points (only 1 point) located at the middle of the element(?). The values assigned to 'statenew' are now at the corner nodes, which might be causing the problem(?) I am unsure whether I should directly assign 'A' to 'statenew' or create a new node list with different coordinates, forming 4 new nodes to represent the corner nodes around the statenew nodes. 4. At the end of step 2, I am able to see displacement, stress, strain, etc. interpolated using the node values, but I am struggling with how to assign the specific variable values to be shown through SDVs (State Dependent Variables). 5. Regarding the structure of 'statenew' (NBlock, NStatev), I have a question. Is it a simple 2D array? In comparison with UEL-UMAT structure, where we assign a 3D array to 'statev' for visualization in UMAT, I am confused. In the attachment file you will see my node and element distribution. Cross signs are VUEL elements, and in the background is VUMAT elements. As you see the value of SDV1 is 0 everwhere. MANY THANKS IN ADVANCE !
@kianaghani
@kianaghani Жыл бұрын
There are some complications in your text. First, your A matrix has ONE column not two. Assuming that it is a typo error, you should write a code to make your integration points compatible with those of the CPE4R element. Statenew is a 2D array, while STATEV is a 1D array. Also, the way I used for visualization is not related to the size of STATEV.
@mortazapirouz7482
@mortazapirouz7482 Жыл бұрын
@@kianaghani you are right, the size of A matrix is (80,2), including the nblock and the value for each block. Do you think if I implement the way you did it may work? I did once and no success, I may had a mistake in the input file somewhere. I will try again. Thank you !
@kianaghani
@kianaghani Жыл бұрын
@@mortazapirouz7482 Theoretically, it should work but it will be hard.
@mortazapirouz7482
@mortazapirouz7482 Жыл бұрын
@@kianaghani Thank you for the input. I got it work, the thing I was missing is doing a simple stress calculation in VUMAT for dummy elements. This let me to visualize whatever is assigned to statenew. BTW, your videos really helped me to figure out how to get it done. Thank you and keep up the great work !!
@kianaghani
@kianaghani Жыл бұрын
@@mortazapirouz7482 Your welcome. If it is possible, share your subroutines ( or at least a part of it) with me for expanding the knowledge.
@rishiraj6242
@rishiraj6242 Жыл бұрын
I want to use VDFLUX and VUSDFLD subroutine in one file. how to do this?
@kianaghani
@kianaghani Жыл бұрын
Hi. Just copy the subs into one file with *.for format.