Sunday, August 8, 2010

August 8, 2010

Today I worked some more on reformatting the fracture code. I have completed the Tetrahedron class (not tested or compiled, but the code has been transferred)

- I optimized the code in the calculating the strain/stress/derivatives (mostly eliminating redundant loops.

- Currently, the tetrahedron class is untemplated and uses floats. It also uses only House:: namespace libraries. This should be fixed in the future to take a custom data type. Also, the linear math system should either use a different library, or matrix/vector types should be passed as template parameters.

- I was thinking about making the tetrahedron class an abstract class with basic finite element functions which can be implemented with a derived class. This way, multiple element styles/numerical techniques can be tested by simply deriving with a custom element class.

- I am going to use smart pointers for the list of Node pointers which the tetrahedrons keep track of. This way, they can automatically be deleted when no tetrahedron is using them. There is an issue I need to look up before I do this.
? Can a std::vector of smart pointers resize itself when a smart pointer has no more owner? If not, then there will still be a dangling pointer in the vector which would eliminate any advantage of using smart pointers (of course, a routine per time step could go through and resize the vector).

More will be researched later.

No comments:

Post a Comment