Mudanças entre as edições de "Simulação de Micélio de Fungo"

De Física Computacional
Ir para: navegação, pesquisa
Linha 18: Linha 18:
 
Fungo 3:
 
Fungo 3:
 
* Junção (computação de cada elemento individualmente toda vez) (anastomosis)
 
* Junção (computação de cada elemento individualmente toda vez) (anastomosis)
 +
 +
 +
== Implementção ==
 +
 +
<source lang="python">
 +
 +
def crecimento (x,y):
 +
 +
  theta= np.arctan(y/x)
 +
 +
  if (x<0) :
 +
    theta= theta+ math.pi
 +
 +
  aleatorio_theta = random.random()* math.pi/4 - math.pi/8 # angulo de -22.5 até 22.5 (45°)
 +
 
 +
  theta=theta+aleatorio_theta
 +
 +
  addx = r * math.cos(theta)
 +
  addy = r * math.sin(theta)
 +
 
 +
  fx = x + addx
 +
  fy = y + addy
 +
 +
  return (fx,fy)
 +
 +
 +
</source>

Edição das 16h57min de 20 de maio de 2021

Usando como base o segundo e primeiro capítulo do livro [A Hybrid Mathematical Model of Fungal Mycelia: Tropisms, Polarised Growth and Application to Colony Competition.](https://core.ac.uk/download/pdf/6117416.pdf)

  • Mecanismos gerais dos modelos
    • Crescimento
    • A distribuição de nutrientes ocorre de maneira discreta, não contínua.
    • Transporte de nutriente interno # Não será feito por exigir a computação de cada elemento individualmente toda vez

Fungo 1:

  • Branching na ponta
  • Computar só os da ponta
  • Crescimento ocorre só com o nutriente que o ponto final está

Fungo 2:

  • Branching lateral
  • Morte (implementar idade da linha)

Fungo 3:

  • Junção (computação de cada elemento individualmente toda vez) (anastomosis)


Implementção

def crecimento (x,y):

  theta= np.arctan(y/x)

  if (x<0) :
    theta= theta+ math.pi
 
  aleatorio_theta = random.random()* math.pi/4 - math.pi/8 # angulo de -22.5 até 22.5 (45°)
  
  theta=theta+aleatorio_theta

  addx = r * math.cos(theta)
  addy = r * math.sin(theta)
  
  fx = x + addx
  fy = y + addy 

  return (fx,fy)