Problem with definition of a new element

For developers writing C++, Fortran, Java, code who have questions or comments to make.

Moderators: silvia, selimgunay, Moderators

ehsantafakory
Posts: 3
Joined: Mon Nov 14, 2011 11:47 pm
Location: amirkabir university

Problem with definition of a new element

Hello everyone,
We studied the Structure- Soil- Structure Interaction (SSSI) effects on seismic response of structures. For this purpose, we used Opensees software to perform nonlinear time history analysis, while the stiffness matrix of soil- foundation and foundation- soil- foundation systems were obtained through static analysis of exact plain strain finite element models in Abaqus. In this method, we need to assemble the stiffness matrix to global stiffness matrix of structure's models in Opensees framework. While there is no suitable element for this purpose, we developed a new element, named ElasticSuperElement, in C language and used it to apply SSSI effects in the structure models in Opensees. In fact, a matrix as stiffness matrix and node tags are introduced in this element and the element assembles the matrix in rows and columns of the global stiffness matrix related to degree of freedoms of desired nodes. Based on necessity, we developed this element for certain numbers of nodes (20 nodes). For this propose node pointer is declared like this:
Node *theNodes[20]
We want to modify this element, in the way which can be used for n numbers of nodes. In this case node point was declared in C ++ like this:
Int NumberOfNode;
Node* theNodes = new Node{ NumberOfNode };
The code was built but encountered an error in debug step. We want to ask if this is possible to modify the element for n nodes and if it’s possible, how is the node pointer declared and how do we solve the error?

ehsantafakory
Posts: 3
Joined: Mon Nov 14, 2011 11:47 pm
Location: amirkabir university

Re: Problem with definition of a new element

Dear Michael Scott,
Thank you for answer. We can solve the problem by the way you noticed and the element can be used for n nodes. We modeled an experimental test by use of this element for validation. This test investigated Soil- Structure Interaction (SSI) and Structure- Soil- Structure Interaction (SSSI) effects. A foam block was used to model soil and scaled structure were modeled with Aluminum. We modeled the block in Abaqus to obtain stiffness matrix of it through a static analysis. Then, calculated stiffness matrix was assembled to structure's model in Opensees with our new developed element. The results obtained from Opensees model showed good agreement with experimental results. This model also can be modeled by use of a rotational spring, but in more complicated models, we can't use this method. Furthermore, twoNodeLink element is another choice to assemble a stiffness matrix to Global stiffness matrix, but this element can only consider main diagonal of matrix. Nevertheless, the developed element can be used in simple and complicate models and consider the stiffness matrix completely. So, do you think this element is useful to be add as an element in Opensees framework? In your opinion, can we send pull request to Opensees to add this element?

mhscott
Posts: 582
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Problem with definition of a new element

It sounds like the element is only useful for your specific application. If you can demonstrate that it's generally useful to other applications, then you can send a pull request.