Using Linear Spring and Isolator together

23 views
Skip to first unread message
Assigned to chan...@gmail.com by me

HRISHIV NEUPANE

unread,
Dec 16, 2020, 1:44:35 PM12/16/20
to mastodo...@googlegroups.com
Hi,

I was following the similar nomenclature used in the Isolators for my material model when I caught some errors when I used Linear Spring and my material together in the same model in different blocks and had to change few nomenclatures in my material model. This made me think that the same problem may arise when I use Linear Spring and Isolator together. So, I created a simple test problem with LinearSpring and Isolator whose one end is fixed and attached with shell at the other end. The shell is displaced so that the springs and isolator deform. I couldn't run the program. I don't have much experience using the isolator. So, can someone take their time to make sure that the error is due to the input file and there is no error in the code. I hope replication of the same error as my material model was just a coincidence and not due the same nomenclature used in different source codes.

I have attached the input file and the mesh.

Thanks,
HRISHIV
shellcontacttest2.e
shellcontactspring.i

Chandu Bolisetti

unread,
Dec 18, 2020, 5:26:31 PM12/18/20
to mastodon-users
Hi Hrishiv,

On a preliminary look, I don’t see anything wrong with your input. When I run it I see an error that said that a material property called “deformations” was not found, which is odd. Do you see the same error? I will take a closer look at this soon. 

Also, did you try this without the shell elements? 

Chandu 

HRISHIV NEUPANE

unread,
Dec 18, 2020, 7:09:56 PM12/18/20
to Chandu Bolisetti, mastodon-users
Hi Chandu,

I haven't tried much with these sets but based on the problem that I faced in my material model and its solution what I can guess is both have deformations and common names were the cause of interference in my material model. I am not sure because haven't changed the source code for this, but for my material model giving different names worked. 

LinearSpring.C
_deformations(declareProperty<RealVectorValue>("deformations")),

ComputeIsolatorDeformation.C
_basic_disp(declareProperty<ColumnMajorMatrix>("deformations")),


Thanks
Hrishiv


From: mastodo...@googlegroups.com <mastodo...@googlegroups.com> on behalf of Chandu Bolisetti <chan...@gmail.com>
Sent: Friday, December 18, 2020 3:26 PM
To: mastodon-users <mastodo...@googlegroups.com>
Subject: [mastodon-users] Re: Using Linear Spring and Isolator together
 
--
https://mooseframework.org/mastodon
https://github.com/idaholab/mastodon
---
You received this message because you are subscribed to the Google Groups "mastodon-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mastodon-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mastodon-users/0cc96a56-c9f3-423a-917e-11e9d00c412cn%40googlegroups.com.

Chandrakanth Bolisetti

unread,
Dec 23, 2020, 3:02:36 PM12/23/20
to mastodon-users

Hi Hrishiv,

 

You are right that the error is due to having the same material property names. However, this is not supposed to happen when the materials are defined in different mesh blocks/subdomains. I am still looking into why this is happening but in the meantime you can do the following:

  • In the LinearSpring.C change the material property names in quotes for “deformations”, “rotations”, “global_forces”, and “global_moments”, to “spring_deformation”, “spring_rotations”, etc.
  • The “global_forces”, and “global_moments” material properties occur in lines 56 and 57 of StressDivergenceSpring.C as well, so make the same change there as well.
  • Compile mastodon
  • Run your simulation

 

If this doesn’t work, please let us know.

 

--

Best regards,

Chandu

HRISHIV NEUPANE

unread,
Dec 23, 2020, 3:31:27 PM12/23/20
to mastodon-users, Chandrakanth Bolisetti
Hi Chandu,

Yes, I had already figured it out while running some other problem. I just wanted to bring that thing to your attention because this problem would require a change in a few of the material models that you already have in MASTODON.

Thanks
Hrishiv

From: 'Chandrakanth Bolisetti' via mastodon-users <mastodo...@googlegroups.com>
Sent: Wednesday, December 23, 2020 1:02 PM
To: mastodon-users <mastodo...@googlegroups.com>
Subject: Re: [EXTERNAL] Re: [mastodon-users] Re: Using Linear Spring and Isolator together
 

HRISHIV NEUPANE

unread,
Dec 23, 2020, 6:28:30 PM12/23/20
to mastodon-users, Chandrakanth Bolisetti
Also, there is one more thing that I noticed while using multiple blocks having different properties which I felt a little strange.

Suppose I have 2 blocks,
If I declare in the header file   MaterialProperty<Real> & _yf;
I would assume that I will have two different addresses to the property for two blocks but that doesn't happen unless I declare it as   
MaterialProperty<Real> & _yf; 
const MaterialProperty<Real> & _yf_old;


I am not sure if MOOSE is built to work this way or something else is happening.


Thanks
Hrishiv







From: mastodo...@googlegroups.com <mastodo...@googlegroups.com> on behalf of HRISHIV NEUPANE <Hrishiv...@utah.edu>
Sent: Wednesday, December 23, 2020 1:31 PM
To: mastodon-users <mastodo...@googlegroups.com>; Chandrakanth Bolisetti <Chandrakant...@inl.gov>

Chandu Bolisetti

unread,
Dec 24, 2020, 2:15:44 PM12/24/20
to mastodon-users
Hi Hrishiv,

Can you elaborate on that? What do you mean by different addresses? 

Chandu

HRISHIV NEUPANE

unread,
Dec 24, 2020, 2:34:34 PM12/24/20
to Chandu Bolisetti, mastodon-users
Hi Chandu,

Let me elaborate on that. Suppose I have two blocks and If I declare in the header file   MaterialProperty<Real> & _yf; and suppose I have the assignment of the _yf[_qp] in the initQpStatefulProperties and let's say for block 1 it should be A and for block 2 it should be B and it's is used in some other function say ComputeDeformation later on. The execution sequence how it works in MASTODON right now is:

initQpStatefulProperties 
Block 1 : 
_yf[_qp] = A
Block 2: 
_yf[_qp] = B

ComputeDeformation
Block 1 : 
_yf[_qp] = B  
Block 2:   
_yf[_qp] = B


Since we are defining the property as a reference it seems like just a single memory address is allocated for _yf[_qp] irrespective of the number of blocks so that when value B is assigned for the second block it overrides the value A so the value that is passed in the next function for the block 1 is  B and not A.

However when I define it as 
MaterialProperty<Real> & _yf; 
const MaterialProperty<Real> & _yf_old;

initQpStatefulProperties 
Block 1 : 
_yf[_qp] = A
Block 2: 
_yf[_qp] = B

ComputeDeformation
Block 1 : 
_yf[_qp] = A 
Block 2:   
_yf[_qp] = B


Is this how MOOSE is built to work or if there is some problem with the MASTODON while using multiple blocks?

Thanks
Hrishiv




Sent: Thursday, December 24, 2020 12:15 PM
Reply all
Reply to author
Forward
0 new messages