BioDynaMo  v1.05.0-137fdb15
Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
bdm::Cell Class Reference

#include <cell.h>

Inheritance diagram for bdm::Cell:
[legend]
Collaboration diagram for bdm::Cell:
[legend]

Public Member Functions

 Cell ()
 
 Cell (real_t diameter)
 
 Cell (const Real3 &position)
 
virtual ~Cell ()=default
 
void Initialize (const NewAgentEvent &event) override
 This method is used to initialise the values of daughter 2 for a cell division event. More...
 
Shape GetShape () const override
 
virtual CellDivide ()
 Divide this cell. More...
 
virtual CellDivide (real_t volume_ratio)
 Divide this cell. More...
 
virtual CellDivide (const Real3 &axis)
 Divide this cell. More...
 
virtual CellDivide (real_t volume_ratio, const Real3 &axis)
 Divide this cell. More...
 
virtual CellDivide (real_t volume_ratio, real_t phi, real_t theta)
 Divide this cell. More...
 
real_t GetAdherence () const
 
real_t GetDiameter () const override
 
real_t GetMass () const
 
real_t GetDensity () const
 
const Real3GetPosition () const override
 
const Real3GetTractorForce () const
 
real_t GetVolume () const
 
void SetAdherence (real_t adherence)
 
void SetDiameter (real_t diameter) override
 
void SetVolume (real_t volume)
 
void SetMass (real_t mass)
 
void SetDensity (real_t density)
 
void SetPosition (const Real3 &position) override
 
void SetTractorForce (const Real3 &tractor_force)
 
void ChangeVolume (real_t speed)
 
void UpdateDiameter ()
 
void UpdateVolume ()
 
void UpdatePosition (const Real3 &delta)
 
Real3 CalculateDisplacement (const InteractionForce *force, real_t squared_radius, real_t dt) override
 
void ApplyDisplacement (const Real3 &displacement) override
 
void MovePointMass (const Real3 &normalized_dir, real_t speed)
 
- Public Member Functions inherited from bdm::Agent
 Agent ()
 
 Agent (TRootIOCtor *io_ctor)
 
 Agent (const Agent &other)
 
virtual ~Agent ()
 
virtual AgentNew () const =0
 Create a new instance of this object using the default constructor. More...
 
virtual AgentNewCopy () const =0
 Create a copy of this object. More...
 
virtual void Update (const NewAgentEvent &event)
 
void CreateNewAgents (const NewAgentEvent &event, const std::initializer_list< Agent * > &prototypes)
 
virtual const char * GetTypeName () const
 
virtual std::set< std::string > GetRequiredVisDataMembers () const
 
virtual void RunDiscretization ()
 
void AssignNewUid ()
 
const AgentUidGetUid () const
 
SpinlockGetLock ()
 
virtual void CriticalRegion (std::vector< AgentPointer<>> *aptrs)
 
uint32_t GetBoxIdx () const
 
void SetBoxIdx (uint32_t idx)
 
void SetStaticnessNextTimestep (bool value) const
 
bool GetPropagateStaticness () const
 
void SetPropagateStaticness (bool value=true)
 
void PropagateStaticness (bool beginning=false)
 
void UpdateStaticness ()
 
bool IsStatic () const
 
template<typename TAgent = Agent>
AgentPointer< TAgent > GetAgentPtr () const
 Return agent pointer. More...
 
void AddBehavior (Behavior *behavior)
 Add a behavior to this agent. More...
 
void RemoveBehavior (const Behavior *behavior)
 
void RunBehaviors ()
 Execute all behaviorsq. More...
 
const InlineVector< Behavior *, 2 > & GetAllBehaviors () const
 Return all behaviors. More...
 
virtual void RemoveFromSimulation ()
 
void * operator new (size_t size)
 
void operator delete (void *p)
 

Static Public Attributes

static const Real3 kXAxis = {1.0, 0.0, 0.0}
 First axis of the local coordinate system. More...
 
static const Real3 kYAxis = {0.0, 1.0, 0.0}
 Second axis of the local coordinate system. More...
 
static const Real3 kZAxis = {0.0, 0.0, 1.0}
 Third axis of the local coordinate system. More...
 

Protected Member Functions

Real3 TransformCoordinatesGlobalToPolar (const Real3 &coord) const
 
- Protected Member Functions inherited from bdm::Agent
template<typename TFrom , typename TTo >
std::enable_if< std::is_base_of< TFrom, TTo >::value, TTo * >::type Cast (TFrom *agent) const
 
template<typename TFrom , typename TTo >
std::enable_if<!std::is_base_of< TFrom, TTo >::value, TTo * >::type Cast (TFrom *agent) const
 

Private Member Functions

 BDM_AGENT_HEADER (Cell, Agent, 1)
 

Private Attributes

Real3 position_ = {{0, 0, 0}}
 NB: Use setter and don't assign values directly. More...
 
Real3 tractor_force_ = {{0, 0, 0}}
 
real_t diameter_ = 0
 NB: Use setter and don't assign values directly. More...
 
real_t volume_ = 0
 
real_t adherence_ = 0
 NB: Use setter and don't assign values directly. More...
 
real_t density_ = 0
 NB: Use setter and don't assign values directly. More...
 

Additional Inherited Members

- Protected Attributes inherited from bdm::Agent
AgentUid uid_
 unique id More...
 
uint32_t box_idx_ = std::numeric_limits<uint32_t>::max()
 Grid box index. More...
 
InlineVector< Behavior *, 2 > behaviors_
 collection of behaviors which define the internal behavior More...
 

Detailed Description

Definition at line 40 of file cell.h.

Constructor & Destructor Documentation

◆ Cell() [1/3]

bdm::Cell::Cell ( )
inline

Definition at line 51 of file cell.h.

◆ Cell() [2/3]

bdm::Cell::Cell ( real_t  diameter)
inlineexplicit

Definition at line 53 of file cell.h.

◆ Cell() [3/3]

bdm::Cell::Cell ( const Real3 position)
inlineexplicit

Definition at line 57 of file cell.h.

◆ ~Cell()

virtual bdm::Cell::~Cell ( )
virtualdefault

Member Function Documentation

◆ ApplyDisplacement()

void bdm::Cell::ApplyDisplacement ( const Real3 displacement)
overridevirtual

Implements bdm::Agent.

Definition at line 23 of file cell.cc.

◆ BDM_AGENT_HEADER()

bdm::Cell::BDM_AGENT_HEADER ( Cell  ,
Agent  ,
 
)
private

◆ CalculateDisplacement()

Real3 bdm::Cell::CalculateDisplacement ( const InteractionForce force,
real_t  squared_radius,
real_t  dt 
)
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 262 of file cell.h.

◆ ChangeVolume()

void bdm::Cell::ChangeVolume ( real_t  speed)
inline

Definition at line 232 of file cell.h.

◆ Divide() [1/5]

virtual Cell* bdm::Cell::Divide ( )
inlinevirtual

Divide this cell.

CellDivisionEvent::volume_ratio will be between 0.9 and 1.1
The axis of division is random.

See also
CellDivisionEvent

Definition at line 134 of file cell.h.

◆ Divide() [2/5]

virtual Cell* bdm::Cell::Divide ( const Real3 axis)
inlinevirtual

Divide this cell.

CellDivisionEvent::volume_ratio will be between 0.9 and 1.1

See also
CellDivisionEvent

Definition at line 156 of file cell.h.

◆ Divide() [3/5]

virtual Cell* bdm::Cell::Divide ( real_t  volume_ratio)
inlinevirtual

Divide this cell.

The axis of division is random.

See also
CellDivisionEvent

Definition at line 143 of file cell.h.

◆ Divide() [4/5]

virtual Cell* bdm::Cell::Divide ( real_t  volume_ratio,
const Real3 axis 
)
inlinevirtual

Divide this cell.

See also
CellDivisionEvent

Definition at line 166 of file cell.h.

◆ Divide() [5/5]

virtual Cell* bdm::Cell::Divide ( real_t  volume_ratio,
real_t  phi,
real_t  theta 
)
inlinevirtual

Divide this cell.

See also
CellDivisionEvent

Definition at line 174 of file cell.h.

◆ GetAdherence()

real_t bdm::Cell::GetAdherence ( ) const
inline

Definition at line 180 of file cell.h.

◆ GetDensity()

real_t bdm::Cell::GetDensity ( ) const
inline

Definition at line 186 of file cell.h.

◆ GetDiameter()

real_t bdm::Cell::GetDiameter ( ) const
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 182 of file cell.h.

◆ GetMass()

real_t bdm::Cell::GetMass ( ) const
inline

Definition at line 184 of file cell.h.

◆ GetPosition()

const Real3& bdm::Cell::GetPosition ( ) const
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 188 of file cell.h.

◆ GetShape()

Shape bdm::Cell::GetShape ( ) const
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 127 of file cell.h.

◆ GetTractorForce()

const Real3& bdm::Cell::GetTractorForce ( ) const
inline

Definition at line 190 of file cell.h.

◆ GetVolume()

real_t bdm::Cell::GetVolume ( ) const
inline

Definition at line 192 of file cell.h.

◆ Initialize()

void bdm::Cell::Initialize ( const NewAgentEvent event)
inlineoverridevirtual

This method is used to initialise the values of daughter 2 for a cell division event.

See also
CellDivisionEvent

Reimplemented from bdm::Agent.

Reimplemented in bdm::neuroscience::NeuronSoma.

Definition at line 68 of file cell.h.

◆ MovePointMass()

void bdm::Cell::MovePointMass ( const Real3 normalized_dir,
real_t  speed 
)
inline

Definition at line 357 of file cell.h.

◆ SetAdherence()

void bdm::Cell::SetAdherence ( real_t  adherence)
inline

Definition at line 194 of file cell.h.

◆ SetDensity()

void bdm::Cell::SetDensity ( real_t  density)
inline

Definition at line 216 of file cell.h.

◆ SetDiameter()

void bdm::Cell::SetDiameter ( real_t  diameter)
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 201 of file cell.h.

◆ SetMass()

void bdm::Cell::SetMass ( real_t  mass)
inline

Definition at line 214 of file cell.h.

◆ SetPosition()

void bdm::Cell::SetPosition ( const Real3 position)
inlineoverridevirtual

Implements bdm::Agent.

Definition at line 223 of file cell.h.

◆ SetTractorForce()

void bdm::Cell::SetTractorForce ( const Real3 tractor_force)
inline

Definition at line 228 of file cell.h.

◆ SetVolume()

void bdm::Cell::SetVolume ( real_t  volume)
inline

Definition at line 209 of file cell.h.

◆ TransformCoordinatesGlobalToPolar()

Real3 bdm::Cell::TransformCoordinatesGlobalToPolar ( const Real3 coord) const
protected

Returns the position in the polar coordinate system (cylindrical or spherical) of a point expressed in global cartesian coordinates ([1,0,0],[0,1,0],[0,0,1]).

Parameters
coordposition in absolute coordinates - [x,y,z] cartesian values
Returns
the position in local coordinates

Definition at line 33 of file cell.cc.

◆ UpdateDiameter()

void bdm::Cell::UpdateDiameter ( )
inline

Definition at line 243 of file cell.h.

◆ UpdatePosition()

void bdm::Cell::UpdatePosition ( const Real3 delta)
inline

Definition at line 257 of file cell.h.

◆ UpdateVolume()

void bdm::Cell::UpdateVolume ( )
inline

Definition at line 252 of file cell.h.

Member Data Documentation

◆ adherence_

real_t bdm::Cell::adherence_ = 0
private

NB: Use setter and don't assign values directly.

Definition at line 377 of file cell.h.

◆ density_

real_t bdm::Cell::density_ = 0
private

NB: Use setter and don't assign values directly.

Definition at line 379 of file cell.h.

◆ diameter_

real_t bdm::Cell::diameter_ = 0
private

NB: Use setter and don't assign values directly.

Definition at line 374 of file cell.h.

◆ kXAxis

const Real3 bdm::Cell::kXAxis = {1.0, 0.0, 0.0}
static

First axis of the local coordinate system.

Definition at line 45 of file cell.h.

◆ kYAxis

const Real3 bdm::Cell::kYAxis = {0.0, 1.0, 0.0}
static

Second axis of the local coordinate system.

Definition at line 47 of file cell.h.

◆ kZAxis

const Real3 bdm::Cell::kZAxis = {0.0, 0.0, 1.0}
static

Third axis of the local coordinate system.

Definition at line 49 of file cell.h.

◆ position_

Real3 bdm::Cell::position_ = {{0, 0, 0}}
private

NB: Use setter and don't assign values directly.

Definition at line 371 of file cell.h.

◆ tractor_force_

Real3 bdm::Cell::tractor_force_ = {{0, 0, 0}}
private

Definition at line 372 of file cell.h.

◆ volume_

real_t bdm::Cell::volume_ = 0
private

Definition at line 375 of file cell.h.


The documentation for this class was generated from the following files: