DiscreteSystemForceCalculator Class Reference

#include <DiscreteSystemForceCalculator.hpp>

Collaboration diagram for DiscreteSystemForceCalculator:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 DiscreteSystemForceCalculator (MeshBasedCellPopulation< 2 > &rCellPopulation, std::vector< AbstractTwoBodyInteractionForce< 2 > * > forceCollection)
std::vector< std::vector
< double > > 
CalculateExtremalNormalForces ()
void WriteResultsToFile (std::string simulationOutputDirectory)

Private Member Functions

std::set< unsigned > GetNeighbouringNodeIndices (unsigned index)
std::vector< double > CalculateFtAndFn (unsigned index, double theta)
std::vector< double > GetSamplingAngles (unsigned index)
double GetLocalExtremum (unsigned index, double angle1, double angle2)
std::vector< double > GetExtremalAngles (unsigned index, std::vector< double > samplingAngles)

Private Attributes

MeshBasedCellPopulation< 2 > & mrCellPopulation
std::vector
< AbstractTwoBodyInteractionForce< 2 > * > 
mForceCollection
double mEpsilon
out_stream mpVizStressResultsFile

Friends

class TestDiscreteSystemForceCalculator


Detailed Description

A class for calculating the force and stress on each node in a mesh-based cell population.

Definition at line 37 of file DiscreteSystemForceCalculator.hpp.


Constructor & Destructor Documentation

DiscreteSystemForceCalculator::DiscreteSystemForceCalculator ( MeshBasedCellPopulation< 2 > &  rCellPopulation,
std::vector< AbstractTwoBodyInteractionForce< 2 > * >  forceCollection 
)

Constructor.

Parameters:
rCellPopulation reference to the cell population
forceCollection vector of force laws present

Definition at line 30 of file DiscreteSystemForceCalculator.cpp.


Member Function Documentation

std::set< unsigned > DiscreteSystemForceCalculator::GetNeighbouringNodeIndices ( unsigned  index  )  [private]

std::vector< double > DiscreteSystemForceCalculator::CalculateFtAndFn ( unsigned  index,
double  theta 
) [private]

Given a node index and angle of intersecting line in the range (-pi,pi], returns the tangential and normal forces.

Parameters:
index the node index
theta the angle of intersection
Returns:
the vector of tangential and normal forces.

Definition at line 148 of file DiscreteSystemForceCalculator.cpp.

References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetAngleBetweenNodes(), GetNeighbouringNodeIndices(), mForceCollection, mrCellPopulation, and MeshBasedCellPopulation< DIM >::rGetMesh().

Referenced by CalculateExtremalNormalForces(), GetExtremalAngles(), and GetLocalExtremum().

std::vector< double > DiscreteSystemForceCalculator::GetSamplingAngles ( unsigned  index  )  [private]

Given a node index, returns a vector of sampling angles in the range (-pi,pi] that can be used by GetExtremalAngles() to find the locations of local extrema of the normal force.

Parameters:
index 
Returns:
the vector of sampling angles.

Definition at line 200 of file DiscreteSystemForceCalculator.cpp.

References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetAngleBetweenNodes(), GetNeighbouringNodeIndices(), mEpsilon, mrCellPopulation, and MeshBasedCellPopulation< DIM >::rGetMesh().

Referenced by CalculateExtremalNormalForces().

double DiscreteSystemForceCalculator::GetLocalExtremum ( unsigned  index,
double  angle1,
double  angle2 
) [private]

Given a node index and two sampling angles, finds the location of the root of the tangential force in the interval between the two angles. There is no guarantee that this will lie in (-pi,pi].

Parameters:
index the node index
angle1 the first sampling angle
angle2 the second sampling angle
Returns:
the local extremum.

Definition at line 272 of file DiscreteSystemForceCalculator.cpp.

References CalculateFtAndFn().

Referenced by GetExtremalAngles().

std::vector< double > DiscreteSystemForceCalculator::GetExtremalAngles ( unsigned  index,
std::vector< double >  samplingAngles 
) [private]

Given a vector of sampling angles in the range (-pi,pi], returns a vector of extremal angles, i.e. angles at which local extrema of the normal force occur, again in the range (-pi,pi].

Parameters:
index the node index
samplingAngles the vector of sampling angles
Returns:
the vector of extremal angles.

Definition at line 304 of file DiscreteSystemForceCalculator.cpp.

References CalculateFtAndFn(), GetLocalExtremum(), and mEpsilon.

Referenced by CalculateExtremalNormalForces().

std::vector< std::vector< double > > DiscreteSystemForceCalculator::CalculateExtremalNormalForces (  ) 

Returns:
the extremal normal forces on each node in the cell population.

Definition at line 39 of file DiscreteSystemForceCalculator.cpp.

References CalculateFtAndFn(), GetExtremalAngles(), MeshBasedCellPopulation< DIM >::GetNumNodes(), GetSamplingAngles(), and mrCellPopulation.

Referenced by WriteResultsToFile().

void DiscreteSystemForceCalculator::WriteResultsToFile ( std::string  simulationOutputDirectory  ) 


Member Data Documentation

The mechanics used to determine the new location of the cells.

Definition at line 49 of file DiscreteSystemForceCalculator.hpp.

Referenced by CalculateFtAndFn().

Small parameter, used in GetSamplingAngles().

Definition at line 54 of file DiscreteSystemForceCalculator.hpp.

Referenced by GetExtremalAngles(), and GetSamplingAngles().

The file that the results of CalculateExtremalNormalForces.

Definition at line 57 of file DiscreteSystemForceCalculator.hpp.

Referenced by WriteResultsToFile().


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

Generated on Mon Nov 1 12:36:38 2010 for Chaste by  doxygen 1.5.5