Changeset 12112


Ignore:
Timestamp:
04/23/12 23:04:27 (13 years ago)
Author:
Eric.Larour
Message:

Finished python version of setmask.py and FlagElements.py
Also finished triangle.py, with addition of 2 python modules NodeConnectivity
and ElementConnectivity.

Location:
issm/trunk-jpl
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/configs/config-macosx64-larour-nopetsc.sh

    r12102 r12112  
    11#!/bin/sh
    22
    3 pythonversion=2.7
     3pythonversion=3.2
    44
    55./configure \
  • issm/trunk-jpl/src/c/python/io/FetchPythonData.cpp

    r12073 r12112  
    5757}
    5858/*}}}*/
     59/*FUNCTION FetchData(double** pmatrix,int* pM, int* pN, PyObject* py_matrix){{{1*/
     60void FetchData(double** pmatrix,int* pM,int *pN,PyObject* py_matrix){
     61
     62        /*output: */
     63        double* matrix=NULL;
     64        int M,N;
     65        int ndim;
     66        npy_intp*  dims=NULL;
     67
     68        /*retrive dimensions: */
     69        ndim=PyArray_NDIM((const PyArrayObject*)py_matrix);
     70        if(ndim!=2)_error_("expecting an MxN matrix in input!");
     71        dims=PyArray_DIMS((PyArrayObject*)py_matrix);
     72        M=dims[0]; N=dims[1];
     73       
     74        /*retrieve internal value: */
     75        matrix=(double*)PyArray_DATA((PyArrayObject*)py_matrix);
     76
     77        /*output: */
     78        if(pM)*pM=M;
     79        if(pN)*pN=N;
     80        if(pmatrix)*pmatrix=matrix;
     81}
     82/*}}}*/
    5983
    6084/*Python version dependent: */
  • issm/trunk-jpl/src/c/python/io/WritePythonData.cpp

    r12017 r12112  
    6464}
    6565/*}}}*/
     66/*FUNCTION WriteData(PyObject* py_tuple,int index, double* matrix, int M, int N){{{1*/
     67void WriteData(PyObject* tuple, int index, double* matrix, int M,int N){
     68       
     69        npy_intp dims[2]={0,0};
     70        PyObject* array=NULL;
     71       
     72        dims[0]=(npy_intp)M;
     73        dims[1]=(npy_intp)N;
     74        array=PyArray_SimpleNewFromData(2,dims,NPY_DOUBLE,matrix);
     75       
     76        PyTuple_SetItem(tuple, index, array);
     77
     78}
  • issm/trunk-jpl/src/c/python/io/pythonio.h

    r12011 r12112  
    2121
    2222//void WriteData(PyObject* py_tuple,DataSet* dataset);
    23 //void WriteData(PyObject* py_tuple,double* matrix, int M,int N);
    2423//void WriteData(PyObject* py_tuple,int*    matrix, int M,int N);
    2524//void WriteData(PyObject* py_tuple,double* vector, int M);
     
    2827//void WriteData(PyObject* py_tuple,double scalar);
    2928//void WriteData(DataHandle* py_tuple,Parameters* parameters);
     29void WriteData(PyObject* py_tuple, int index, double* matrix, int M,int N);
    3030void WriteData(PyObject* py_tuple, int index, char* string);
    3131void WriteData(PyObject* py_tuple, int index, Matrix* matrix);
     
    3434
    3535//void FetchData(DataSet** pdataset,PyObject* py_ref);
    36 //void FetchData(double** pmatrix,int* pM,int *pN,PyObject* py_ref);
    3736//void FetchData(double** pmatrix,int* pnumel,int* pndims,int** psize,PyObject* py_ref);
    3837//void FetchData(int** pmatrix,int* pM,int *pN,PyObject* py_ref);
     
    4746//void FetchData(char** pmatrix,int* pnumel,int* pndims,int** psize,PyObject* py_ref);
    4847//void FetchData(Parameters** pparameters, DataHandle py_ref);
     48void FetchData(double** pmatrix,int* pM,int *pN,PyObject* py_array);
    4949void FetchData(char** pstring,PyObject* py_unicode);
    5050void FetchData(double* pscalar,PyObject* py_float);
  • issm/trunk-jpl/src/m/model/mesh

    • Property svn:ignore
      •  

        old new  
         1__pycache__
        12Makefile.in
        23Makefile
  • issm/trunk-jpl/src/m/model/mesh/triangle.py

    r12102 r12112  
    1 from TriMesh import *
    21from numpy import *
     2import TriMesh as tm
     3import NodeConnectivity as nc
     4import ElementConnectivity as ec
    35
    46def triangle(md, domainname, resolution,riftname=''):
     
    3234
    3335        #Mesh using TriMesh
    34         [md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=TriMesh(domainname,riftname,area)
     36        [md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=tm.TriMesh(domainname,riftname,area)
    3537
    3638        #Fill in rest of fields:
     
    4648
    4749        #Now, build the connectivity tables for this mesh.
    48         print "Node: NodeConnectivity not implemented yet!"
    49         #md.mesh.vertexconnectivity = NodeConnectivity((md.mesh.elements), (md.mesh.numberofvertices))
    50         print "Node: ElementConnectivity not implemented yet!"
    51         #md.mesh.elementconnectivity = ElementConnectivity((md.mesh.elements), (md.mesh.vertexconnectivity))
     50        [md.mesh.vertexconnectivity]= nc.NodeConnectivity(md.mesh.elements, md.mesh.numberofvertices)
     51        [md.mesh.elementconnectivity] = ec.ElementConnectivity(md.mesh.elements, md.mesh.vertexconnectivity)
    5252
    5353        #type of model
  • issm/trunk-jpl/src/modules/ElementConnectivity/ElementConnectivity.cpp

    r11933 r12112  
    55#include "./ElementConnectivity.h"
    66
    7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
     7WRAPPER(ElementConnectivity){
    88
    99        /*inputs: */
     
    1919        MODULEBOOT();
    2020
    21         /*checks on arguments on the matlab side: */
    22         CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&ElementConnectivityUsage);
     21        /*checks on arguments: */
     22        CHECKARGUMENTS(NLHS,NRHS,&ElementConnectivityUsage);
    2323       
    2424        /*Input datasets: */
     
    3232        WriteData(ELEMENTCONNECTIVITY,elementconnectivity,nel,3);
    3333
    34         /*Free ressources: */
    35         xfree((void**)&elements);
    36         xfree((void**)&nodeconnectivity);
    37 
    3834        /*end module: */
    3935        MODULEEND();
  • issm/trunk-jpl/src/modules/ElementConnectivity/ElementConnectivity.h

    r12029 r12112  
    66#define _ELEMENTCONNECTIVITY_H
    77
    8 /* local prototypes: */
    9 void ElementConnectivityUsage(void);
     8#ifdef HAVE_CONFIG_H
     9        #include <config.h>
     10#else
     11#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
     12#endif
    1013
     14/*Very important definition in case we are compiling a python module!: needs to come before header files inclusion*/
     15#ifdef _HAVE_PYTHON_
     16#define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol
     17#endif
     18
     19/*Header files: */
    1120#include "../../c/include/globals.h"
     21#include "../../c/toolkits/toolkits.h"
     22#include "../../c/include/include.h"
    1223#include "../../c/modules/modules.h"
    1324#include "../../c/Container/Container.h"
    1425#include "../../c/shared/shared.h"
    1526#include "../../c/issm-binding.h"
     27#include "../../c/io/io.h"
     28#include "../../c/EnumDefinitions/EnumDefinitions.h"
     29
     30#ifdef _HAVE_MATLAB_MODULES_
     31/* serial input macros: */
     32/* serial input macros: */
     33#define ELEMENTS (mxArray*)prhs[0]
     34#define NODECONNECTIVITY (mxArray*)prhs[1]
     35/* serial output macros: */
     36#define ELEMENTCONNECTIVITY (mxArray**)&plhs[0]
     37#endif
     38
     39#ifdef _HAVE_PYTHON_MODULES_
     40/* serial input macros: */
     41/* serial input macros: */
     42#define ELEMENTS PyTuple_GetItem(args,0)
     43#define NODECONNECTIVITY PyTuple_GetItem(args,1)
     44/* serial output macros: */
     45#define ELEMENTCONNECTIVITY output,0
     46#endif
    1647
    1748#undef __FUNCT__
    1849#define __FUNCT__  "ElementConnectivity"
    19 
    20 /* serial input macros: */
    21 #define ELEMENTS (mxArray*)prhs[0]
    22 #define NODECONNECTIVITY (mxArray*)prhs[1]
    23 
    24 /* serial output macros: */
    25 #define ELEMENTCONNECTIVITY (mxArray**)&plhs[0]
    2650
    2751/* serial arg counts: */
     
    3155#define NRHS  2
    3256
     57/* local prototypes: */
     58void ElementConnectivityUsage(void);
     59
    3360#endif  /* _ELEMENTCONNECTIVITY_H */
  • issm/trunk-jpl/src/modules/NodeConnectivity/NodeConnectivity.cpp

    r12029 r12112  
    55#include "./NodeConnectivity.h"
    66
    7 void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
     7WRAPPER(NodeConnectivity){
    88
    99        /*inputs: */
    1010        double* elements=NULL;
    11         int     nel,nods;
     11        int     nel;
     12        int     nods;
    1213
    1314        /*outputs: */
     
    1819        MODULEBOOT();
    1920
    20         /*checks on arguments on the matlab side: */
    21         CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&NodeConnectivityUsage);
     21        /*checks on arguments: */
     22        CHECKARGUMENTS(NLHS,NRHS,&NodeConnectivityUsage);
    2223       
    2324        /*Input datasets: */
     
    3132        WriteData(CONNECTIVITY,connectivity,nods,width);
    3233
    33         /*Free ressources: */
    34         xfree((void**)&elements);
    35 
    3634        /*end module: */
    3735        MODULEEND();
  • issm/trunk-jpl/src/modules/NodeConnectivity/NodeConnectivity.h

    r12029 r12112  
    66#define _NODECONNECTIVITY_H
    77
    8 /* local prototypes: */
    9 void NodeConnectivityUsage(void);
     8#ifdef HAVE_CONFIG_H
     9        #include <config.h>
     10#else
     11#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
     12#endif
    1013
     14/*Very important definition in case we are compiling a python module!: needs to come before header files inclusion*/
     15#ifdef _HAVE_PYTHON_
     16#define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol
     17#endif
     18
     19/*Header files: */
    1120#include "../../c/include/globals.h"
     21#include "../../c/toolkits/toolkits.h"
     22#include "../../c/include/include.h"
    1223#include "../../c/modules/modules.h"
    1324#include "../../c/Container/Container.h"
    1425#include "../../c/shared/shared.h"
    1526#include "../../c/issm-binding.h"
     27#include "../../c/io/io.h"
     28#include "../../c/EnumDefinitions/EnumDefinitions.h"
     29
     30#ifdef _HAVE_MATLAB_MODULES_
     31/* serial input macros: */
     32#define ELEMENTS (mxArray*)prhs[0]
     33#define NUMNODES (mxArray*)prhs[1]
     34/* serial output macros: */
     35#define CONNECTIVITY (mxArray**)&plhs[0]
     36#endif
     37
     38#ifdef _HAVE_PYTHON_MODULES_
     39/* serial input macros: */
     40#define ELEMENTS PyTuple_GetItem(args,0)
     41#define NUMNODES PyTuple_GetItem(args,1)
     42/* serial output macros: */
     43#define CONNECTIVITY output,0
     44#endif
    1645
    1746#undef __FUNCT__
    1847#define __FUNCT__  "NodeConnectivity"
    19 
    20 /* serial input macros: */
    21 #define ELEMENTS (mxArray*)prhs[0]
    22 #define NUMNODES (mxArray*)prhs[1]
    23 
    24 /* serial output macros: */
    25 #define CONNECTIVITY (mxArray**)&plhs[0]
    2648
    2749/* serial arg counts: */
     
    3153#define NRHS  2
    3254
     55/* local prototypes: */
     56void NodeConnectivityUsage(void);
     57
    3358#endif  /* _NODECONNECTIVITY_H */
  • issm/trunk-jpl/src/modules/TriMesh/TriMesh.cpp

    r12098 r12112  
    2626        MODULEBOOT();
    2727
    28         /*checks on arguments on the matlab side: */
     28        /*checks on arguments: */
    2929        CHECKARGUMENTS(NLHS,NRHS,&TriMeshUsage);
    3030       
  • issm/trunk-jpl/src/modules/python/Makefile.am

    r12075 r12112  
    33#Bin programs {{{1
    44if MODULES
    5 bin_PROGRAMS = TriMesh
     5bin_PROGRAMS = TriMesh \
     6                           NodeConnectivity \
     7                           ElementConnectivity
    68endif
    79#}}}
     
    2628#}}}
    2729#Bin sources {{{1
     30ElementConnectivity_SOURCES = ../ElementConnectivity/ElementConnectivity.cpp\
     31                          ../ElementConnectivity/ElementConnectivity.h
     32
     33NodeConnectivity_SOURCES = ../NodeConnectivity/NodeConnectivity.cpp\
     34                                                                                ../NodeConnectivity/NodeConnectivity.h
     35
    2836TriMesh_SOURCES = ../TriMesh/TriMesh.cpp\
    2937                          ../TriMesh/TriMesh.h
  • issm/trunk-jpl/startup.py

    r12102 r12112  
    8383from private import *
    8484from triangle import *
     85from setmask import *
    8586
    8687#}}}
  • issm/trunk-jpl/test/NightlyRun/test102.py

    r12111 r12112  
    11from model import *
    22from triangle import *
     3from setmask import *
    34
    45md=model();
    56md=triangle(md,'../Exp/Square.exp',150000);
     7md=setmask(md,'all','');
Note: See TracChangeset for help on using the changeset viewer.