New Version of the code is released

433 views
Skip to first unread message

Mohammadreza Yaghoobi

unread,
Aug 7, 2019, 10:54:11 AM8/7/19
to Prisms-CPFE-users
Dear All,

New version of the code is released. It works with all versions of deal.ii. Make sure that you compile deal.ii without trillions package.
Let me know if you have any problem compiling it.

Thanks
Mohammadreza

Rajesh Khatirkar

unread,
Sep 11, 2019, 6:27:46 AM9/11/19
to Prisms-CPFE-users
Hi,

I want to try PRISMS-plasticity code for my texture simulation.

I have a machine with following configuration:
32 core Intel Xeon processor
64 GB RAM
2.9 GHz
1 TB HDD

Rate independent would be better or rate dependent for installation and fast running.....any suggestions

Typically, my machine doesnt stop for 200Hr ....has a backup.

regards
Rajesh

Mohammadreza Yaghoobi

unread,
Sep 11, 2019, 12:12:11 PM9/11/19
to Prisms-CPFE-users
Rajesh,

The rate-independent constitutive model is generally faster than the rate dependent one.

Mohammadreza

Rajesh Khatirkar

unread,
Sep 18, 2019, 3:40:59 AM9/18/19
to Prisms-CPFE-users
Hi,

Installed. But while running error is coming. Its the test run which I gave specified in the installation manual.

Can you please have a look.

regards

error.jpg

rajesh

Mohammadreza Yaghoobi

unread,
Sep 18, 2019, 10:40:50 AM9/18/19
to Prisms-CPFE-users
Hi,

I think you forgot to make a folder with the name of "results" (mkdir results) in your problem folder. You should have a folder with the name of the set Output Directory as you defined in the input file. Can you try this and see if it works.

Reza

Rajesh Khatirkar

unread,
Sep 19, 2019, 4:24:44 AM9/19/19
to Prisms-CPFE-users
Thanks for your reply. I made folder named 'results'. But still its not working. However,I tried compression of FCC i.e Cu in the compression folder as mentioned in your paper (Computational Materials Science, 2019), its working.

I have few more queries, which you may answer in few lines if possible:
(1) In Both dream3d and Neper inputs, hexahedral meshes are used and for both one grain is approximated by one element. That mean its a CPFEM simulation but more like mean field in 3d. I dont know whether I am understanding it correctly or not. Can you please clarify briefly. I am still reading papers where prisms is used.

(2) How the calibration of model is done for new material? Can you please point me to a paper where all details are mentioned?

(3) You made total 92 grains for Cu in CMS paper. What is interior grains 16 numbers used? How mesh is defined using dream3d?

regards
rajesh

Mohammadreza Yaghoobi

unread,
Sep 19, 2019, 10:13:58 AM9/19/19
to Prisms-CPFE-users
(1) There are two types of problem you can use. First, modelling the sample in a way that each element is a grain. This will be similar as if you are using other homogenization methods like Taylor model or VPSC, but more precise. This CPFE simulations are good for the following applications:

a) you want to show the capabilities of a new model or implementation.
b) Calibration of a problem.
c) Studying the texture evolution

However, in the case of virtual samples built by Neper or Dream3D or experimental microstructures like HEDM near field data, each grain is modeled using many elements. For example, see the BCC sample in PRISMS plasticity, it has 92 grains, but different element numbers up to 1.6 milion elements. In the case of FCC with Neper, the sample has 200 randomly oriented grains where modeled using different number of elements up to 32000 elements.
This kind of problems are more demanding, but one can get the microstructural information, such as local stress and strain, from these simulations.

(2) I am not aware of any specific reference exclusively addressed calibration. Calibration is typically done against the uniaxial tension and compression curves. In the current implemented model, the initial yield point is modeled using Initial Slip Resistance. The hardening is controlled using Initial Hardening Modulus,  Power Law Exponent, and saturation stress. At the end, if the material has been reported in other CP simulations, it is better to start using their data as a starting point. Calibration is kind of an art and it needs a set of trial and error, in which you get better at it while you become more experience.

(3) Dream3D does not define mesh. It defines the microstructure as a voxilized pattern. This mesh is generated in PRISMS-Plasticity software. Then using the data provided by DREAM3D, which is the GrainID, the PRISMS-Plasticity decide what Grain ID it will assign to each element.

Let me know if you have further questions.

Thanks
Reza

Rajesh Khatirkar

unread,
Sep 21, 2019, 2:49:41 PM9/21/19
to Prisms-CPFE-users
Hi,

Thanks for your answers to earlier questions. They clarified many things. I can run dream3d, paraview, MTEX very well. Now PRISMS is also installed properly and working fine for all the test runs. I am trying to generate input from my experimental data. I have bimodal grain size distribution of my bcc material. I also have the standardized field parameters obtained from VPSC simulation and tensile curve. I will be trying that. I have few questions regarding generation of input files. These are the details which will help in my understanding and optimizing the run on my machine. Otherwise the simulations will run infinitely on my limited capability cluster.

(1) Dream3d and Neper both will be required or dream3d alone will suffice?

(2) For your CMS paper you generated 92 grain data for bcc beta titanium with 68x64x46 box size which gives 200192 elements like voxalized cuboids which were then input to PRISMS. I presume you kept the resolution as 1x1x1 while generating the input files. If you keep it 2, the elements will become 200192x2 I suppose. The number of elements should depend on the resolution also. The number of grain on the grain size distribution of course, smaller the grain size more will be the number and vice-versa. Having said that, the computation time will depend on the resolution then.

(3) Neper can give conforming and non-conforming periodic meshes. Dream3d .... I think is always non-conforming since its voxalized cuboids.

(4) Neper....do we have to do tessellation within tessellation in Neper to generate volumetric meshes and then use it. Or simple tessellation will do.

(5) Grain size actually does not have a meaning currently in the simulation since we are not considering the size effect as of now I think.


With best regards
Rajesh

Mohammadreza Yaghoobi

unread,
Sep 22, 2019, 9:37:39 PM9/22/19
to Prisms-CPFE-users
Rajesh,

1) Either Dream3d or Neper can be used alone to generate the microstructure. You don't have to use both. 

2) The resolution in grain ID means that since you are using the voxelized pattern to define the grain maps, the smaller the resolution is, you can define the grain map more precise. However, it doesn't ensure the increase in the accuracy alone. Your FE discretization should be also follow the same refinement. In other words, the resolution of the problem is governed by the coarsest resolution among the Grain Id input resolution and FE discretization. For example, you can have 10 Voronoi grains inside the sample. First, you should define the resolution you want to have the voxilized microstructure information. Next, you should define your mesh information. Now imagine two limit cases. If you model the whole microstructure with one voxel, it will include only one grain, even if you define millions of elements in you FE discretization. On the other hand, if you define just one single FE element, it still going to model one grain even if you have millions of voxels describing the microstructure. So the accuracy is controlled by both microstructural resolution and FE discretization resolution.

The resolution you need is depending on the target of the simulation. If the target is to model the homogenized behavior like homogenized sample response or texture evolution, you do not need to worry that much about the microstructure itself. As a crude approximation, you can model the sample as each grain is a single element. This will be equivalent to the VPSC or Taylor homogenization model. However, if you are trying to study the local information such as local stress or strain, you need to model the microstructure as accurate as possible.

3) Dream3d can generate the microstructre. Neper can generate both microstructure and its corresponding FE mesh. If you are generating the microstructure using either Neper and dream3D, you will end up having the voxelized microstructure anyway. However, using the Neper to generate the mesh from the microstructure, you can have conforming mesh. You need to readin that mesh using external mesh feature we have in the code.

As a suggestion, it is always faster to use the PRISMS-Plasticity mesh generation (which is Hex). Reading external mesh makes the code slow. It is always better to use Neper or Dream3D to generate the microstructure and then let the code to mesh the sample. Also, it is always faster to use the set Refine factor to refine the mesh rather than use the subdivisions in the x,y, and z.

4) Neper will provide you the voxelized grainID similar to the Dream3D. It also can provide you the FE mesh for that microstructure.

5) Correct, Grain Size does not included. It is under development. However, a simple Hall-Petch model can be easily added to the code by adding few lines (Depending the CRSS on the size of the grain). We can discuss that if you're interested.

Best Regards,
Mohammadreza
Message has been deleted

Rajesh Khatirkar

unread,
Oct 5, 2019, 2:19:49 PM10/5/19
to Prisms-CPFE-users
Hi,

Thanks for earlier answers. Few more questions.

(1) What should be the minimum or maximum value of set refine parameter? While using approximations close to each grain as each element, its value is 3. In other cases where the mesh is 32x32x32 or 6x6x6, it is set as 0.

(2) Is it possible to restart a broken simulation? For example if I want ta total strain of 0.51 and due to some reason it stops at 0.20, can it be restarted from the same point?

(3) Sometimes it gives error '.............5 parameter is illegal". What does it mean................incorrect input parameters? Sometimes it comes after 20-30 iterations.

(4) I ran many simulations, all stop at approximately 0.52 to 0.53 strain corresponding to 40% reduction during cold rolling.............is it a limit? I want to go upto 1.6 corresponding to 80% cold rolling. I am using velocity gradient. I kept step size as 0.01. Is there any optimum step size or smaller is better (i.e. increased computation time).

(5) I want to use two slip systems (BCC) i.e. 24..........can be done by modifying the slipdirections and slipnormal file i guess.

(6) I want to visualize the deformed mesh........i think i should use 'u' with wireframe option superimposed on grain structure or the slice option possibly in paraview.

regards
Rajesh

Mohammadreza Yaghoobi

unread,
Oct 6, 2019, 12:38:21 PM10/6/19
to Rajesh Khatirkar, Prisms-CPFE-users
Rajesh,

1) There are two ways to refine the mesh in PRISMS-Plasticity, one way is using "set Subdivisions" and the other one is using "Refine factor". For example, you can generate a 2*2*2 mesh by using set Subdivisions X,Y,Z=2 and set refine factor=0 or keep the set Subdivisions=1 and set refine factor=1. However, one should note that using set refine factor decrease the "memory cost" big time. So it is always recommended to use "Refine factor" and set Subdivisions X,Y,Z=1, unless you have to use it. 

2) We didn't put the restart feature inside the code yet. It is under development feature.

3) Generally speaking, that error shows the code cannot converge. It can have many reasons. Some of them are as follows:
a) Timestep is large so the code diverge.
b)You are too many number of processors which is unreasonable. For example, you cannot solve a problem with 8 elements using 16 or even 8 elements.
c) Material properties such as hardening and CRSS are in a way that the constitutive model cannot converge.

These are just few examples you might get this error. It needs some experience with the code to figure this out.

4) If you cannot go further than 0,.52% strain and you want to simulate more, you should use the othe calculate plasticity recently added which is more stable. You should replace the calculatePlasticity.cc (plasticity/src/materialModels/crystalPlasticity/calculatePlasticity.cc) with another one in 
plasticity/src/materialModels/crystalPlasticity/MaterialModels/RateIndependentModel2/calculatePlasticity.cc. Then you need to recompile the code for this new calculatePlasticity.cc. One more step is this new material model needs a parameter in the input file:
 # Maximum no. of iterations to achieve non-linear convergence
set Max Solver Iterations                        = 1
you can use 1 for now.
If you had this before in your input file then you're fine. please check following file to see where you can add these lines.

This new calculatePlasticity.cc helps you reach higher strain.

Regarding the stable strain, the general rule of thumb is you can apply 0.0001 (or 0.01%) strain for each increment. If with this value this diverge, then you can try half of it which is more conservative.

5) For BCC with 24 slip systems, you just need to modify the slipdirections and slipnormal files.

6)For visualizing the deformed body, you can use the Warp By Vector filter in Paraview. We described this here:
 

Best Regards,
Mohammadreza

--
You received this message because you are subscribed to the Google Groups "Prisms-CPFE-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prisms-cpfe-us...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/prisms-cpfe-users/67d79297-aa24-4cf5-aabb-9a1a97698936%40googlegroups.com.

Rajesh Khatirkar

unread,
Nov 13, 2019, 1:50:16 AM11/13/19
to Prisms-CPFE-users
Dear Sir,

I did some simulations with prisms software. They are running fine.

(1) I can go upto 0.32 true strain as of now. As suggested in last posts, if I use rateindependentmodel2 I should be able to go to higher strains. I tried to recompile, but errors are coming when I use the rateindependentmodel2.

(2) Quadrature output in which 8-10 columns corresponds to the Rodrigues vector. I want to have ODF plotted. The oriplot file which is included is taking input OrientationOutputs. Do I need to put some other lines in the prm.in during simulations to take orientation output and use it to plot the PF or ODF. If I take 8-10 column of QuadratureOutputs the ODF/PF are strange and not matching. Please suggest.

(3) If I make a microstructure using dream3D lets say 64x64x64 and then set refine mesh as 5, it gives error. Till set refine mesh 3 and 4 it runs fine. It there a limit on the fineness of the mesh which I can use based on the voxels. If I use 128x128x128, then probably I can go upto set refine mesh 6. Can you please clarify a bit?

regards
Rajesh

Mohammadreza Yaghoobi

unread,
Nov 13, 2019, 8:35:19 PM11/13/19
to Rajesh Khatirkar, Prisms-CPFE-users
Rajesh,

1) Regarding your first point, I tested the calculatePlasticity.cc in RateIndependentModel2 folder and compiled it successfully. I made some changes recently. Maybe you're using an older version of the code. Can you git clone it again. It should work. Otherwise, please copy the error here so we can help you.

2) The oriplot_big.m provided in Training material https://github.com/prisms-center/plasticity/blob/master/Training_Materials/Post-Processing/oriplot_big.m is set for HCP. You need to define the crystal structure first. It should include the updated Rodrigues vector components which are in columns 8-10. During running the Matlab file, make sure that the variable dats in line 22 of the oriplot_big.m should be your Rodrigues vector components for all quadrature points (Each line for one quadrature point). Then, the code should work. You can try the test case of https://github.com/prisms-center/plasticity/tree/master/applications/crystalPlasticity/fcc/FCC_RandomOrientationBlock for random FCC and the pole figures should look like the one we have in the PRISMS-Plasticity CMS paper.

3) It shouldn't be the case. Unless you have memory issues. At what stage, you got the error? Did it give error at the first iteration or later on? Can you share your input files so we can take a look into them and see why the error pops up?

Thanks
Mohammadreza

--
You received this message because you are subscribed to the Google Groups "Prisms-CPFE-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to prisms-cpfe-us...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages