Changeset 3594


Ignore:
Timestamp:
04/21/10 14:27:19 (15 years ago)
Author:
seroussi
Message:

hooks in penpair

Location:
issm/trunk/src/c/objects
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/Penpair.cpp

    r3567 r3594  
    2626/*}}}1*/
    2727/*FUNCTION Penpair::creation {{{1*/
    28 Penpair::Penpair(int    penpair_id, double penpair_penalty_offset,int  penpair_penalty_lock,int penpair_node_ids[2],int penpair_dof){
    29        
    30         int i;
    31         id=penpair_id;
    32         penalty_offset =penpair_penalty_offset;
    33         penalty_lock  =penpair_penalty_lock;
    34 
    35         for(i=0;i<2;i++){
    36                 node_ids[i]=penpair_node_ids[i];
    37                 node_offsets[i]=UNDEF;
    38                 nodes[i]=NULL;
    39 
    40         }
    41         dof=penpair_dof;
     28Penpair::Penpair(int penpair_id, int* penpair_node_ids):
     29        hnodes(penpair_node_ids,2)
     30{
     31
     32        /*all the initialization has been done by the initializer, just fill in the id: */
     33        this->id=penpair_id;
     34       
     35        return;
     36}
     37/*}}}1*/
     38/*FUNCTION Penpair::creation {{{1*/
     39Penpair::Penpair(int penpair_id, Hook* penpair_hnodes):
     40        hnodes(penpair_hnodes)
     41{
     42
     43        /*all the initialization has been done by the initializer, just fill in the id: */
     44        this->id=penpair_id;
    4245       
    4346        return;
     
    5154               
    5255/*Object marshall*/
     56/*FUNCTION Penpair::Configure {{{1*/
     57
     58void  Penpair::Configure(void* pelementsin,void* pnodesin,void* pmaterialsin){
     59
     60        DataSet* nodesin=NULL;
     61
     62        /*Recover pointers :*/
     63        nodesin=(DataSet*)pnodesin;
     64
     65        /*Take care of hooking up all objects for this element, ie links the objects in the hooks to their respective
     66         * datasets, using internal ids and offsets hidden in hooks: */
     67        hnodes.configure(nodesin);
     68
     69}
     70/*}}}1*/
     71/*FUNCTION Penpair::copy {{{1*/
     72Object* Penpair::copy() {
     73        return new Penpair(this->id,&this->hnodes);
     74}
     75/*}}}1*/
     76/*FUNCTION Penpair::DeepEcho {{{1*/
     77void Penpair::DeepEcho(void){
     78
     79        printf("Penpair:\n");
     80        printf("   id: %i\n",id);
     81        hnodes.DeepEcho();
     82
     83        return;
     84}               
     85/*}}}1*/
     86/*FUNCTION Penpair::Echo {{{1*/
     87void Penpair::Echo(void){
     88
     89        int i;
     90
     91        printf("Penpair:\n");
     92        printf("   id: %i\n",id);
     93        hnodes.Echo();
     94       
     95        return;
     96}
     97/*}}}1*/
    5398/*FUNCTION Penpair::Marshall {{{1*/
    5499void  Penpair::Marshall(char** pmarshalled_dataset){
     
    68113        /*marshall Penpair data: */
    69114        memcpy(marshalled_dataset,&id,sizeof(id));marshalled_dataset+=sizeof(id);
    70         memcpy(marshalled_dataset,&penalty_offset,sizeof(penalty_offset));marshalled_dataset+=sizeof(penalty_offset);
    71         memcpy(marshalled_dataset,&penalty_lock,sizeof(penalty_lock));marshalled_dataset+=sizeof(penalty_lock);
    72         memcpy(marshalled_dataset,&dof,sizeof(dof));marshalled_dataset+=sizeof(dof);
    73         memcpy(marshalled_dataset,&node_ids,sizeof(node_ids));marshalled_dataset+=sizeof(node_ids);
    74         memcpy(marshalled_dataset,&node_offsets,sizeof(node_offsets));marshalled_dataset+=sizeof(node_offsets);
     115
     116        /*Marshall hooks*/
     117        hnodes.Marshall(&marshalled_dataset);
    75118
    76119        *pmarshalled_dataset=marshalled_dataset;
     
    82125
    83126        return sizeof(id)+
    84                 sizeof(penalty_offset)+
    85                 sizeof(penalty_lock)+
    86                 sizeof(dof)+
    87                 sizeof(node_ids)+
    88                 sizeof(node_offsets)+
    89                 sizeof(int); //sizeof(int) for enum type
     127                +hnodes.MarshallSize()
     128                +sizeof(int); //sizeof(int) for enum type
    90129}
    91130/*}}}1*/
     
    103142
    104143        memcpy(&id,marshalled_dataset,sizeof(id));marshalled_dataset+=sizeof(id);
    105         memcpy(&penalty_offset,marshalled_dataset,sizeof(penalty_offset));marshalled_dataset+=sizeof(penalty_offset);
    106         memcpy(&penalty_lock,marshalled_dataset,sizeof(penalty_lock));marshalled_dataset+=sizeof(penalty_lock);
    107         memcpy(&dof,marshalled_dataset,sizeof(dof));marshalled_dataset+=sizeof(dof);
    108         memcpy(&node_ids,marshalled_dataset,sizeof(node_ids));marshalled_dataset+=sizeof(node_ids);
    109         memcpy(&node_offsets,marshalled_dataset,sizeof(node_offsets));marshalled_dataset+=sizeof(node_offsets);
    110 
    111         for(i=0;i<2;i++){
    112                 nodes[i]=NULL;
    113         }
     144
     145        /*demarshall hooks: */
     146        hnodes.Demarshall(&marshalled_dataset);
    114147
    115148        /*return: */
     
    118151}
    119152/*}}}1*/
     153/*FUNCTION Penpair::UpdateFromInputs {{{1*/
     154void  Penpair::UpdateFromInputs(void* inputs){
     155       
     156}
     157/*}}}1*/
    120158
    121159/*Object functions*/
    122 /*FUNCTION Penpair::Configure {{{1*/
    123 
    124 void  Penpair::Configure(void* pelementsin,void* pnodesin,void* pmaterialsin){
    125 
    126         DataSet* elementsin=NULL;
    127         DataSet* nodesin=NULL;
    128 
    129         /*Recover pointers :*/
    130         elementsin=(DataSet*)pelementsin;
    131         nodesin=(DataSet*)pnodesin;
    132         /*Link this load with its nodes: */
    133         ResolvePointers((Object**)nodes,node_ids,node_offsets,2,nodesin);
    134 
    135 }
    136 /*}}}1*/
    137 /*FUNCTION Penpair::copy {{{1*/
    138 Object* Penpair::copy() {
    139         return new Penpair(*this);
    140 }
    141 /*}}}1*/
    142160/*FUNCTION Penpair::CreateKMatrix {{{1*/
    143161
     
    155173        return;
    156174
    157 }
    158 /*}}}1*/
    159 /*FUNCTION Penpair::DeepEcho {{{1*/
    160 void Penpair::DeepEcho(void){
    161 
    162         int i;
    163 
    164         printf("Penpair:\n");
    165         printf("   id: %i\n",id);
    166         printf("   penalty_offset: %g\n",penalty_offset);
    167         printf("   penalty_lock: %i\n",penalty_lock);
    168         printf("   node_ids: [%i %i]\n",node_ids[0],node_ids[1]);
    169         printf("   node_offsets: [%i %i]\n",node_offsets[0],node_offsets[1]);
    170         printf("   dof: %i\n",dof);
    171        
    172         for(i=0;i<2;i++){
    173                 if(nodes[i])nodes[i]->Echo();
    174         }
    175         return;
    176 }               
    177 /*}}}1*/
    178 /*FUNCTION Penpair::Echo {{{1*/
    179 void Penpair::Echo(void){
    180 
    181         int i;
    182 
    183         printf("Penpair:\n");
    184         printf("   id: %i\n",id);
    185         printf("   penalty_offset: %g\n",penalty_offset);
    186         printf("   penalty_lock: %i\n",penalty_lock);
    187         printf("   node_ids: [%i %i]\n",node_ids[0],node_ids[1]);
    188         printf("   node_offsets: [%i %i]\n",node_offsets[0],node_offsets[1]);
    189         printf("   dof: %i\n",dof);
    190        
    191         for(i=0;i<2;i++){
    192                 if(nodes[i])nodes[i]->Echo();
    193         }
    194         return;
    195175}
    196176/*}}}1*/
     
    229209}
    230210/*}}}1*/
    231 /*FUNCTION Penpair::UpdateFromInputs {{{1*/
    232 void  Penpair::UpdateFromInputs(void* inputs){
    233        
    234 }
    235 /*}}}1*/
  • issm/trunk/src/c/objects/Penpair.h

    r3463 r3594  
    1515
    1616                int             id;
    17                 double  penalty_offset; //penalty used
    18                 int     penalty_lock;  //maximum counter can go until locks the penalty.
    1917               
    20                 /*nodes: */
    21                 int     node_ids[2];
    22                 Node*   nodes[2];
    23                 int     node_offsets[2];
    24 
    25                 /*penalty pairing of one dof: */
    26                 int     dof;
     18                Hook hnodes;  //hook to 2 nodes
    2719
    2820        public:
    2921
    3022                Penpair();
    31                 Penpair(int     id, double penalty_offset,int  penalty_lock,int nodes_ids[2],int dof);
     23                Penpair(int penpair_id,int* penpair_node_ids);
     24                Penpair(int penpair_id,Hook* penpair_hnodes);
    3225                ~Penpair();
    3326
  • issm/trunk/src/c/objects/Tria.cpp

    r3588 r3594  
    110110/*FUNCTION Tria::Configure {{{1*/
    111111void  Tria::Configure(void* ploadsin,void* pnodesin,void* pmaterialsin,void* pparametersin){
    112 
    113         int i;
    114112
    115113        DataSet* loadsin=NULL;
Note: See TracChangeset for help on using the changeset viewer.