[petsc-users] Position based coupling matrix

Mohammad Imtiaz M.Imtiaz at victorchang.edu.au
Thu Mar 19 04:42:54 CDT 2015


Thank you, I am trying this now.

One more question:

I am my assigning my coupling matrix R as one of the state variable in the
DMDA passed to RHS function even though R does not change once
initialized.  Is this the most efficient way to do this?

Thanks
Mohammad






On 18/03/2015 2:10 am, "Barry Smith" <bsmith at mcs.anl.gov> wrote:

>
>  You will need to associate the vector with a DMDA so you can use
>DMDAVecGetArray() to index into it. Use DMCreateGlobalVector (with the
>appropriate DMDA) to get the vector instead of VecCreate() before you do
>the VecLoad().
>
>  Barry
>
>
>> On Mar 17, 2015, at 6:15 AM, Mohammad Imtiaz
>><M.Imtiaz at victorchang.edu.au> wrote:
>> 
>> Hi,
>> 
>> I am trying to solve a 2 dimensional finite difference reaction
>>diffusion problem where diffusional coupling is position based, i.e.
>>fibres, discontinuities etc occur due to material properties (e.g. Heart
>>tissue).
>> 
>> I have managed to import a matlab matrix representing coupling in four
>>directions as below:
>> 
>>     PetscViewerBinaryOpen(PETSC_COMM_WORLD,²R",FILE_MODE_READ,&fd);
>>     VecCreate(PETSC_COMM_WORLD,&R);
>>     VecLoad(R,fd);
>> 
>> Š..Repeated to get L, U, D, coupling.
>> 
>> How can I now make R,L,U,D available to my finite difference part of
>>the code? So that I can do
>> 
>> 
>> v is field.
>> 
>> vxx = u[j][i].R*(u[j][i-1].v - u[j][i].v)  + u[j][i].L*(u[j][i+1].v ­
>>u[j][i].v);
>> 
>> And similarly for up & down coupling.
>> 
>> 
>> 
>> 
>> 
>> Thanks
>> Mohammad Imtiaz
>
>Scanned by Messagelabs ***



More information about the petsc-users mailing list