# FISH function for plasticity state

**URL:** <https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786>\
**Category:** FLAC\
**Created:** [November 5, 2024, 9:13pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786 "2024-11-05T21:13:49Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![agapanto](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@agapanto](https://forum.itascainternational.com/u/agapanto)\
**Post date:** [November 5, 2024, 9:13pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/1 "2024-11-05T21:13:49Z")

</div>

Hi all,

Using FLAC v.8, I am trying to write a fish function to associate zero cohesion and tensile values to all the zones “currently at yield in shear and/or volume” (i.e., state = 1) or “currently at yield in tension” (i.e., state = 3). This is the function:

```auto
define failure
    loop i (1, izones)
        loop j (1, jzones)
            if z_state(i, j) = 1 then
                cohesion(i, j) = 0
                tension(i, j) = 0
	    endif
	    if z_state(i, j) = 3 then
                cohesion(i, j) = 0
                tension(i, j) = 0
	    endif
        end_loop
    end_loop
end

```

The function is read by my script but does not seem to make any changes in terms of cohesion and tensile values for the zones with state = 1 or 3.

Would anyone be able to help me?

Thank you,

---

<div class="post-metadata">

**Author:** ![msepu](https://avatars.discourse-cdn.com/v4/letter/m/b9e5f3/32.png) [@msepu](https://forum.itascainternational.com/u/msepu)\
**Post date:** [November 5, 2024, 9:24pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/2 "2024-11-05T21:24:00Z")

</div>

Probably your zones have more than one specific state and the numbers 1 or 3 never happen

---

<div class="post-metadata">

**Author:** ![agapanto](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@agapanto](https://forum.itascainternational.com/u/agapanto)\
**Post date:** [November 5, 2024, 10:38pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/3 "2024-11-05T22:38:38Z")

</div>

Hi msepu, and thank you for your reply!

Honestly, it doesn’t seem that the zones have more than one specific state (at least in terms of visual observation):

**STATE PLOT:**

 ![Screenshot 2024-11-05 143238](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/a/a4802a2647f66cfbf42e89c844663ea517ed4770.png)

**COHESION PLOT**

 ![coh](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/d/df981c9bf87b3bddc23d6081c8a90c9251b9942c.png)

**GRID + PLASTICITY INDICATOR PLOT**

 ![num](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/b/b7bd5ddaeeef91c9558f7b24b7c87c4aedceaf4d.png)

Do you think the FISH function I wrote is correct?

Thank you,

---

<div class="post-metadata">

**Author:** ![jwang](https://avatars.discourse-cdn.com/v4/letter/j/b782af/32.png) [@jwang](https://forum.itascainternational.com/u/jwang)\
**Post date:** [November 5, 2024, 10:45pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/4 "2024-11-05T22:45:19Z")

</div>

There is no ‘z\_state()’ fish intrinsic function, you either use state(i,j) or z\_prop(i,j,‘state) for CPP constitutive models to access the ‘state’ value. And use z\_prop(i,j, ‘cohesion’) and z\_prop(i,j,’ tension’) to assign new values.  
Check this topic: [Use z\_model(),z\_prop() and z\_group(). to access model and properties](https://forum.itascainternational.com/t/use-z-model-z-prop-and-z-group-to-access-model-and-properties/106)

---

<div class="post-metadata">

**Author:** ![msepu](https://avatars.discourse-cdn.com/v4/letter/m/b9e5f3/32.png) [@msepu](https://forum.itascainternational.com/u/msepu)\
**Post date:** [November 5, 2024, 10:51pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/5 "2024-11-05T22:51:10Z")

</div>

As we can see, there is no different state in your model. But as Jwang said z\_state does no exist in flac.

---

<div class="post-metadata">

**Author:** ![agapanto](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@agapanto](https://forum.itascainternational.com/u/agapanto)\
**Post date:** [November 6, 2024, 12:14am UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/6 "2024-11-06T00:14:04Z")

</div>

Thank you jwang.

Even by modifying the function following your advice (both using state(i, j) and z\_prop(i, j, ‘state’)), nothing seems to change. I also tried the function on another project with a different geometry and problem. I’m using a simple Mohr-Coulomb model.

```auto
define failure
    loop i (1, izones)
        loop j (1, jzones)
	  if model(i,j)#1
            if state(i, j) = 1 then
               z_prop(i, j, 'cohesion') = 0
               z_prop(i, j, 'tension') = 0
	    endif
	    if state(i, j) = 3 then
               z_prop(i, j, 'cohesion') = 0
               z_prop(i, j, 'tension') = 0
	    endif
	  endif
       end_loop
    end_loop
end

```

Do you may have any other suggestions?

Here you can find a demo of the project on which I’m working:

> **[agapanto](https://wetransfer.com/downloads/e44b6dd3270d2b70cb955098fe6404f420241106000839/5ccae1?t_exp=1731110919&t_lsid=89817555-6ff4-4e94-999e-609d8ee2b2a5&t_network=link&t_s=download_link&t_ts=1730851719)**
>
> 5 files sent via WeTransfer, the simplest way to send your files around the world

Thank you,

---

<div class="post-metadata">

**Author:** ![jwang](https://avatars.discourse-cdn.com/v4/letter/j/b782af/32.png) [@jwang](https://forum.itascainternational.com/u/jwang)\
**Post date:** [November 6, 2024, 2:41pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/7 "2024-11-06T14:41:56Z")

</div>

try the following updated code, MC is a built-in model(not C++ model), you have to use state(i,j) and cohesion() and tension().

define failure  
loop i (1, izones)  
loop j (1, jzones)  
if model(i,j)#1  
if state(i,j) = 1 then  
cohesion(i,j) = 0  
tension(i,j) = 0  
endif  
if state(i,j) = 3 then  
cohesion(i,j) = 0  
tension(i,j) = 0  
endif  
endif  
end\_loop  
end\_loop  
end  
failure

---

<div class="post-metadata">

**Author:** ![agapanto](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@agapanto](https://forum.itascainternational.com/u/agapanto)\
**Post date:** [November 6, 2024, 8:54pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/8 "2024-11-06T20:54:57Z")

</div>

Thank you jwang!  
Seems that the function is starting to work…

However, while for cohesion values I have no problems (i.e., cohesion = 0 is assigned to all zones currently at yield in shear and/or vol)(Figure 1), for tension values the function seems to associate null values even to the zones currently not at yield but has been in the past (Figure 2). How is it possible?

**FIGURE 1**

 ![cohesion](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/8/8ea354cddf4ef8a6d23865f97bf6b8ced6836fbb.png)

**FIGURE 2**

 ![tension](https://canada1.discourse-cdn.com/flex031/uploads/itasca/original/2X/d/de561a2ea925254106ae776122ecd739edfa43fe.png)

Plastic state indicator numbers are referred to pag. 1-148 of the _Command Reference Manual_.

Thank you so much for your help!

---

<div class="post-metadata">

**Author:** ![jwang](https://avatars.discourse-cdn.com/v4/letter/j/b782af/32.png) [@jwang](https://forum.itascainternational.com/u/jwang)\
**Post date:** [November 6, 2024, 10:02pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/9 "2024-11-06T22:02:42Z")

</div>

For tension, you may check if the tension is already set to zero prior to the fish function. For MC model, once the zone has tension failure, the tension strength will be set to zero automatically by the code.

---

<div class="post-metadata">

**Author:** ![agapanto](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@agapanto](https://forum.itascainternational.com/u/agapanto)\
**Post date:** [November 6, 2024, 10:48pm UTC](https://forum.itascainternational.com/t/fish-function-for-plasticity-state/1786/10 "2024-11-06T22:48:44Z")

</div>

Thank you jwang, your help is always precious and essential!
