idaholab / moose

Multiphysics Object Oriented Simulation Environment
https://www.mooseframework.org
GNU Lesser General Public License v2.1
1.66k stars 1.02k forks source link

Deprecate old TensorMechanics classes #6125

Closed dschwen closed 6 years ago

dschwen commented 8 years ago

Stuff like FiniteStrainElasticMaterial and LinearElasticMaterial should not be used anymore. Let's officially deprecate them and purge them from our examples!

mangerij commented 8 years ago

We still inherit from LinearElasticMaterial in our LinearFerroelectricMaterial

I just made ferret public again if you want to take a look:

https://bitbucket.org/mesoscience/ferret

mangerij commented 8 years ago

I meant to write also, I'm not sure how to code it so it will run without inheriting from that class

dschwen commented 8 years ago

@mangerij , what does that material actually do? The new way of doing TM is to have the monolithic old classes split up into multiple modular classes that each have a specific task. I.e. instead of computing both stress and strain in one class, we have separate classes for both quantities.

dschwen commented 8 years ago

Side note: ferret would benefit from the pretests (style enforcement) and from fixing indentation. The code is hard to read on bitbucket as it is.

mangerij commented 8 years ago

I have been using the ComputeLinearElasticStress and similar classes in addition to this LinearFerroelectricMaterial.C file.

This material takes the elasticity tensor and contracts with a "electrostrictive" tensor to introduce a low-order coupling between ferroelectric and elastic order parameters.

I think this file is a computational bottleneck in our code, you'll see at Ln 58, we call computeProperties() at every quadrature point for this contraction. I don't want this at the moment(this tensor should be same throughout the block) but for some reason this is all I could get to compile.

dschwen commented 8 years ago

Electrostriction is (or causes) a stress? I think I need to look at this in more detail once I'm back from travel, but it should be easy to port this to the new system. If you compute a new elasticity tensor then you could derive from ComputeElasticityTensor (there should be examples where tensors are precomputes to avoid the same computation at each qp. If you need to modify the stress then you need to inherit from ComputeStressBase (or a derived class, such as the linear stress variant).

dschwen commented 8 years ago

Time to act on this and at least add the mooseDeprecated macro (if not the registerDeprecated)

permcody commented 6 years ago

Closed by 398dfa26cff835a5091b7c39804e246be527e4d6