UpdateMaterialStage in OpenSeesSP
Moderator: selimgunay
UpdateMaterialStage in OpenSeesSP
I have been working on this for a few days and still no luck. I am running a geotech example model (slopeAnalysis2Deff) in OpenSeesSP on a cluster. I am having issues with the UpdateMaterialStage command. After the first analysis the updateMaterialStage command starts doing some funny things. It produces this warning
WARNING: updateMaterialStage - MaterialStageParameter::setDomain() - no effect with material tag 8
The material tag changes with the number of processes i start. So when i do mpirun -n 2 only that line is produced. However in -n 3 many more errors are produced. From this I guess it has something to do with domain decomposition because it only happens after the analyze command.
Any help will be much appreciated.
WARNING: updateMaterialStage - MaterialStageParameter::setDomain() - no effect with material tag 8
The material tag changes with the number of processes i start. So when i do mpirun -n 2 only that line is produced. However in -n 3 many more errors are produced. From this I guess it has something to do with domain decomposition because it only happens after the analyze command.
Any help will be much appreciated.
Re: UpdateMaterialStage in OpenSeesSP
After further analysis of the source code it seems the error is in MaterialStageParameter.cpp in setDomain. The issue is in the following set of lines:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
while (((theEle = theEles()) != 0) && (theResult == -1)) {
opserr << *theEle << endln;
theResult = theEle->setParameter(theString, 2, *this);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
As you can see in the second line I print out the output of theEle which is usually just the element being considered. However after issuing the analyze command this same line prints out the whole domain.
How can this issue be fixed? Obviously the analyze command does a domain decomposition but does the domain get rebuilt at the completion of the analyze command?
Any help will be much appreciated.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
while (((theEle = theEles()) != 0) && (theResult == -1)) {
opserr << *theEle << endln;
theResult = theEle->setParameter(theString, 2, *this);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
As you can see in the second line I print out the output of theEle which is usually just the element being considered. However after issuing the analyze command this same line prints out the whole domain.
How can this issue be fixed? Obviously the analyze command does a domain decomposition but does the domain get rebuilt at the completion of the analyze command?
Any help will be much appreciated.
Re: UpdateMaterialStage in OpenSeesSP
Still struggling with this. If anyone can help will be much appreciated. Further manipulation of the source code it seems the issue is in ArrayOfTaggedObjectsItr.cpp in the following lines:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
while ((currIndex <= myComponents.positionLastEntry)
&& (myComponents.theComponents[currIndex] == 0))
currIndex++;
// if not at the end of the list return the element
// NOTE: a BAD type cast is needed here - Maybe change domain
if (currIndex < myComponents.sizeComponentArray) {
TaggedObject *dc= myComponents.theComponents[currIndex];
numDone++; currIndex++;
return(dc);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
It's either the first while loop is not determining currIndex or the second if statement is not extracting the correct dc value. Unfortunately I'm stuck and can't seem to take it any further.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
while ((currIndex <= myComponents.positionLastEntry)
&& (myComponents.theComponents[currIndex] == 0))
currIndex++;
// if not at the end of the list return the element
// NOTE: a BAD type cast is needed here - Maybe change domain
if (currIndex < myComponents.sizeComponentArray) {
TaggedObject *dc= myComponents.theComponents[currIndex];
numDone++; currIndex++;
return(dc);
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
It's either the first while loop is not determining currIndex or the second if statement is not extracting the correct dc value. Unfortunately I'm stuck and can't seem to take it any further.
-
- Posts: 27
- Joined: Mon May 14, 2012 11:07 am
- Location: University of Colorado Boulder
- Contact:
Re: UpdateMaterialStage in OpenSeesSP
Hi there,
I am also working on soil modeling in the parallel version.
Have you solved the issue?
I am also working on soil modeling in the parallel version.
Have you solved the issue?
Re: UpdateMaterialStage in OpenSeesSP
Not yet unfortunately
Re: UpdateMaterialStage in OpenSeesSP
Any possibility of frank looking at this? I really need it to work asap.
Re: UpdateMaterialStage in OpenSeesSP
yes i will .. it is just a matter of finding time to do it .. hopefully this week.
Re: UpdateMaterialStage in OpenSeesSP
Much appreciated
-
- Posts: 27
- Joined: Mon May 14, 2012 11:07 am
- Location: University of Colorado Boulder
- Contact:
Re: UpdateMaterialStage in OpenSeesSP
Can I ask you what type of ND materials you are using? It seems that PDMY works fine but PDMY02 has some problem with decomposition.
Re: UpdateMaterialStage in OpenSeesSP
Yea I had to add that material to the list of commands. If I remember correctly I had to make a few changes to the FEM_ObjectBrokerAllClasses.cpp source file. They are easy changes I just coppied PressureDependMultiYield and added 02.
Frank, if those changes are correct can you make changes to the source code so other people can make use of it.
Frank, if those changes are correct can you make changes to the source code so other people can make use of it.
-
- Posts: 27
- Joined: Mon May 14, 2012 11:07 am
- Location: University of Colorado Boulder
- Contact:
Re: UpdateMaterialStage in OpenSeesSP
Can you send me your OpenSeesSP.exe file please. So I can try it too.
Re: UpdateMaterialStage in OpenSeesSP
Are you running OpenSeesSP on a cluster or on your personal computer? If on your own computer are running it in parallel or not?
Re: UpdateMaterialStage in OpenSeesSP
There is no point in giving you my executable because it is compiled on a unix cluster so will not work on windows. Best to wait for frank to make the change if he thinks it is correct and then provide a windows executable.
-
- Posts: 27
- Joined: Mon May 14, 2012 11:07 am
- Location: University of Colorado Boulder
- Contact:
Re: UpdateMaterialStage in OpenSeesSP
I am running OpenSeesSP on my personal computer in parallel. I will wait for Frank to update it.
Thanks for your help
Thanks for your help
Re: UpdateMaterialStage in OpenSeesSP
Interested in this. Kindly update your find.