Changes between Version 1 and Version 2 of AstroBearProjects/multiphysics


Ignore:
Timestamp:
09/21/11 13:55:11 (13 years ago)
Author:
Shule Li
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • AstroBearProjects/multiphysics

    v1 v2  
    9191= =================================== =
    9292
    93 Taking viscosity as an example. The goal for the multiphysics modules is to calculate a vdot inside a grid, using the known hydro vars. It will need the two ghost zone's as illustrated below:[[BR]]
     93Taking viscosity as an example. The goal for the multiphysics modules is to calculate a change of velocisty inside a grid, using the known hydro vars. [[BR]]
     94This integration can be done before any hyperbolic updates. We denote the hyperbolic update, integrated source term calculation and explicit source term calculation as H, S and E. [[BR]]
     95The operators applied are as follows: [[BR]][[BR]]
     96[[latex($E S^{1/2} H S^(1/2)$)]][[BR]][[BR]]
     97But this operator does not commute with its own transpose, meaning that [[BR]][[BR]]
     98[[latex($E S^{1/2} H S^(1/2) \neq S^{1/2} H S^(1/2) E$)]][[BR]][[BR]]
     99This is obvious with for example, viscosity, in which the E operator raises temperature and lowers the velocity profile. The hyperbolic solver will have a different response to the data modified by E comparing to that of unmodified. [[BR]]
     100A symmetric operator splitting can be achieved if we do[[BR]][[BR]]
     101[[latex($E^{1/2} S^{1/2} H S^(1/2)E^{1/2}$)]][[BR]][[BR]]
     102Since the commutator of this operator with its transpose will be zero.[[BR]]
     103For any given grid, the external explicit solver requires two steps of updating. The tricky part of the solver is to figure out what to use at the grid boundaries. The three different boundary situations are summarized below:[[BR]]
     104(1)For any physical boundary, use the physical boundary condition.(outflow: impose a fixed velocity; and so on)[[BR]]
     105(2)For any internal boundary to direct neighbors, get the needed data directly by communication.[[BR]]
     106(3)For any internal boundary to parent level, we need the following ghosting scheme:[[BR]][[BR]]
     107[[Image(http://www.pas.rochester.edu/~shuleli/mp_scheme.png, 50%)]][[BR]][[BR]]
     108When advancing dt, we have 10 ghost zones, we also need to explicitly store [[latex($\dot{v}_a dt/2$)]], the time derivative of velocity advection to be used for adjacent child grids.[[BR]]
     109The steps are:[[BR]]
     1101) apply E(dt/2) to internal + ghost 1~8 using ghost 9 and 10. [[BR]]
     1112) apply H(dt/2) to internal + ghost 1~4 using ghost 5~8. [[BR]]
     1123) apply another H(dt/2) to internal using ghost 1~4. [[BR]]
     1134) manually update ghost 1~2 using [[latex($\dot{v}_a dt/2$)]]. [[BR]]
     1145) apply E(dt/2) to internal again using the updated ghost 1~2. [[BR]][[BR]]
    94115
    95 This integration can be done before any hyperbolic updates.
     116From here, we can see two problems of putting the explicit operator into the source term integration:[[BR]]
     1171) each complete update requires two more ghost zones on parent-child boundaries which does not fit into the source term subcyclilng. (N subcycling requires 2N ghost zones) [[BR]]
     1182) for internal boundary to direct neighbors, the two grids need to communicate in order to . This again does not fit into the source term subcycling. (there is no communications happening during subcycling in the current code)[[BR]]
    96119
    97120
    98121
     122
     123