Ignore:
Timestamp:
08/31/12 17:23:24 (13 years ago)
Author:
Eric.Larour
Message:

NEW: large change to the code, to adapt to ADOLC requirements.

This change relates to the introduction of template classes and functions for the
Option.h abstract class. This is needed, because we want to make the Matlab
API independent from the libCore objects, which are dependent on the IssmDouble*
ADOLC type (adouble), when the Matlab API is dependent on the IssmPDouble* type (double).

To make them independent, we need to be able to specify at run time Options, Matrix and
Vector objects that hold either IssmDouble or IssmPDouble objects. The only way to do
that is through the use of templated classes for Option.h, Matrix and Vector.

The change gets rid of a lot of useless code (especially in the classes/objects/Options
directory), by introducing template versions of the same code.

The bulk of the changes to src/modules and src/mex modules is to adapt to this
new runtime declaration of templated Matrix, Vector and Option objects.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/objects/Loads/Icefront.cpp

    r13129 r13216  
    228228/*}}}*/
    229229/*FUNCTION Icefront::CreateKMatrix {{{*/
    230 void  Icefront::CreateKMatrix(Matrix* Kff, Matrix* Kfs){
     230void  Icefront::CreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs){
    231231
    232232        /*No stiffness loads applied, do nothing: */
     
    236236/*}}}*/
    237237/*FUNCTION Icefront::CreatePVector {{{*/
    238 void  Icefront::CreatePVector(Vector* pf){
     238void  Icefront::CreatePVector(Vector<IssmDouble>* pf){
    239239
    240240        /*Checks in debugging mode*/
     
    274274/*}}}*/
    275275/*FUNCTION Icefront::CreateJacobianMatrix{{{*/
    276 void  Icefront::CreateJacobianMatrix(Matrix* Jff){
     276void  Icefront::CreateJacobianMatrix(Matrix<IssmDouble>* Jff){
    277277        this->CreateKMatrix(Jff,NULL);
    278278}
    279279/*}}}*/
    280280/*FUNCTION Icefront::PenaltyCreateKMatrix {{{*/
    281 void  Icefront::PenaltyCreateKMatrix(Matrix* Kff, Matrix* Kfs, IssmDouble kmax){
     281void  Icefront::PenaltyCreateKMatrix(Matrix<IssmDouble>* Kff, Matrix<IssmDouble>* Kfs, IssmDouble kmax){
    282282        /*do nothing: */
    283283        return;
     
    285285/*}}}*/
    286286/*FUNCTION Icefront::PenaltyCreatePVector{{{*/
    287 void  Icefront::PenaltyCreatePVector(Vector* pf,IssmDouble kmax){
     287void  Icefront::PenaltyCreatePVector(Vector<IssmDouble>* pf,IssmDouble kmax){
    288288        /*do nothing: */
    289289        return;
     
    291291/*}}}*/
    292292/*FUNCTION Icefront::PenaltyCreateJacobianMatrix{{{*/
    293 void  Icefront::PenaltyCreateJacobianMatrix(Matrix* Jff,IssmDouble kmax){
     293void  Icefront::PenaltyCreateJacobianMatrix(Matrix<IssmDouble>* Jff,IssmDouble kmax){
    294294        this->PenaltyCreateKMatrix(Jff,NULL,kmax);
    295295}
Note: See TracChangeset for help on using the changeset viewer.